MINOR: dumpstats: display the reference for th key/pattern and value.

Before this patch, the "get map/acl" function try to convert and display
the sample. This behavior is not efficient because some type like the
regex cannot be reversed and displayed as string.

This patch display the original stored reference.
diff --git a/src/dumpstats.c b/src/dumpstats.c
index 4007fc4..62b24cc 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -4826,12 +4826,6 @@
 	struct sample sample;
 	struct pattern *pat;
 	int match_method;
-	struct sample_storage *smp;
-	struct sockaddr_storage addr;
-	char s_addr[INET_ADDRSTRLEN];
-	char s_mask[INET_ADDRSTRLEN];
-	char s_addr6[INET6_ADDRSTRLEN];
-	const char *keystr;
 
 	switch (appctx->st2) {
 	case STAT_ST_INIT:
@@ -4901,84 +4895,27 @@
 				else
 					chunk_appendf(&trash, ", src=conf");
 
-				if (appctx->ctx.map.display_flags == PAT_REF_MAP)
-					keystr = "key";
-				else
-					keystr = "pattern";
-
-				switch (match_method) {
-				case PAT_MATCH_STR:
-				case PAT_MATCH_BEG:
-				case PAT_MATCH_SUB:
-				case PAT_MATCH_DIR:
-				case PAT_MATCH_DOM:
-				case PAT_MATCH_END:
-					/* display string */
-					chunk_appendf(&trash, ", %s=\"%s\"", keystr, pat->ptr.str);
-					break;
-
-				case PAT_MATCH_IP:
-					/* display IPv4/v6 */
-					if (pat->type == SMP_T_IPV4) {
-						((struct sockaddr_in *)&addr)->sin_family = AF_INET;
-						memcpy(&((struct sockaddr_in *)&addr)->sin_addr, &pat->val.ipv4.addr,
-						       sizeof(pat->val.ipv4.addr));
-						if (addr_to_str(&addr, s_addr, INET_ADDRSTRLEN)) {
-							memcpy(&((struct sockaddr_in *)&addr)->sin_addr, &pat->val.ipv4.mask,
-							       sizeof(pat->val.ipv4.mask));
-							if (addr_to_str(&addr, s_mask, INET_ADDRSTRLEN))
-								chunk_appendf(&trash, ", %s=\"%s/%s\"", keystr, s_addr, s_mask);
-						}
-					}
-					else if (pat->type == SMP_T_IPV6) {
-						((struct sockaddr_in6 *)&addr)->sin6_family = AF_INET6;
-						memcpy(&((struct sockaddr_in6 *)&addr)->sin6_addr, &pat->val.ipv6.addr,
-						       sizeof(pat->val.ipv6.addr));
-						if (addr_to_str(&addr, s_addr6, INET6_ADDRSTRLEN))
-							chunk_appendf(&trash, ", %s=\"%s/%d\"", keystr, s_addr6, pat->val.ipv6.mask);
-					}
-					break;
-
-				case PAT_MATCH_INT:
-					/* display int */
-					chunk_appendf(&trash, ", %s=\"", keystr);
-					if (pat->val.range.min_set && pat->val.range.max_set &&
-					    pat->val.range.min == pat->val.range.max) {
-						chunk_appendf(&trash, "%lld", pat->val.range.min);
-					}
-					else {
-						if (pat->val.range.min_set)
-							chunk_appendf(&trash, "is >= %lld", pat->val.range.min);
-						if (pat->val.range.min_set && pat->val.range.max_set)
-							chunk_appendf(&trash, " and ");
-						if (pat->val.range.max_set)
-							chunk_appendf(&trash, "is <= %lld", pat->val.range.max);
-					}
-					chunk_appendf(&trash, "\"");
-					break;
-
-				/* Dont display other types. */
-				default:
-					break;
-				}
-			}
-
-			/* display return value */
-			if (appctx->ctx.map.display_flags == PAT_REF_MAP) {
-				if (!pat || !pat->smp) {
-					chunk_appendf(&trash, ", value=nothing");
+				/* display pattern */
+				if (appctx->ctx.map.display_flags == PAT_REF_MAP) {
+					if (pat->ref && pat->ref->pattern)
+						chunk_appendf(&trash, ", key=\"%s\"", pat->ref->pattern);
+					else
+						chunk_appendf(&trash, ", key=unknown");
 				}
 				else {
-					smp = pat->smp;
-					memcpy(&sample.data, &smp->data, sizeof(sample.data));
-					sample.type = smp->type;
-					if (sample_casts[sample.type][SMP_T_STR] &&
-					    sample_casts[sample.type][SMP_T_STR](&sample))
+					if (pat->ref && pat->ref->pattern)
+						chunk_appendf(&trash, ", pattern=\"%s\"", pat->ref->pattern);
+					else
+						chunk_appendf(&trash, ", pattern=unknown");
+				}
+
+				/* 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\"",
-						              sample.data.str.str, smp_to_type[smp->type]);
+						              pat->ref->sample, smp_to_type[pat->smp->type]);
 					else
-						chunk_appendf(&trash, ", value=cannot-display, type=\"%s\"",
-						              smp_to_type[smp->type]);
+						chunk_appendf(&trash, ", value=none");
 				}
 			}