]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MEDIUM: cli: rely on the map's output type instead of the sample type
authorThierry FOURNIER <tfournier@arpalert.org>
Thu, 23 Jul 2015 16:33:41 +0000 (18:33 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 11 Aug 2015 12:14:11 +0000 (14:14 +0200)
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

index 812f3d5bb4a9ffb30fa6c9730ddd20a9c47d6c5b..a779f4783d3c22a1d029da93cfc2f4b4d15f323d 100644 (file)
@@ -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");
                                }