From 03d0e45dbb4b749314e29b1ed4e0386bbb24dcee Mon Sep 17 00:00:00 2001 From: Thierry FOURNIER Date: Thu, 23 Jul 2015 18:33:41 +0200 Subject: [PATCH] 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. --- src/dumpstats.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/dumpstats.c b/src/dumpstats.c index 812f3d5bb..a779f4783 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"); }