From: Thierry FOURNIER Date: Thu, 23 Jul 2015 16:33:41 +0000 (+0200) Subject: MEDIUM: cli: rely on the map's output type instead of the sample type X-Git-Tag: v1.6-dev4~71 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=03d0e45dbb4b749314e29b1ed4e0386bbb24dcee;p=thirdparty%2Fhaproxy.git MEDIUM: cli: rely on the map's output type instead of the sample type Next patch will remove sample_storage->type, and the only user is the "show map" feature on the CLI which can use the map's output type instead. Let's do that first. --- diff --git a/src/dumpstats.c b/src/dumpstats.c index 812f3d5bb4..a779f4783d 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -5619,6 +5619,11 @@ static int stats_map_lookup(struct stream_interface *si) appctx->ctx.map.expr = LIST_ELEM(&appctx->ctx.map.ref->pat, struct pattern_expr *, list); appctx->ctx.map.expr = pat_expr_get_next(appctx->ctx.map.expr, &appctx->ctx.map.ref->pat); appctx->st2 = STAT_ST_LIST; + + /* retrieve one of the compatible map descriptor for learnig the type. */ + if (appctx->ctx.map.display_flags == PAT_REF_MAP) + appctx->ctx.map.desc = container_of(appctx->ctx.map.expr->pat_head, + struct map_descriptor, pat); /* fall through */ case STAT_ST_LIST: @@ -5692,8 +5697,8 @@ static int stats_map_lookup(struct stream_interface *si) /* display return value */ if (appctx->ctx.map.display_flags == PAT_REF_MAP) { if (pat->smp && pat->ref && pat->ref->sample) - chunk_appendf(&trash, ", value=\"%s\", type=\"%s\"", - pat->ref->sample, smp_to_type[pat->smp->type]); + chunk_appendf(&trash, ", value=\"%s\", type=\"%s\"", pat->ref->sample, + smp_to_type[appctx->ctx.map.desc->conv->out_type]); else chunk_appendf(&trash, ", value=none"); }