MINOR: cli: improve output format for show sess $ptr

This change removes pointers for known types (stream_interface, ...),
adds buffer pointers and sizes, and moves buffer information to their
own line. The output is cleaner with shorter lines and slightly more
lines.
diff --git a/src/dumpstats.c b/src/dumpstats.c
index ad54725..5df5eeb 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -3412,6 +3412,51 @@
 	}
 }
 
+static inline const char *get_conn_ctrl_name(const struct connection *conn)
+{
+	if (!conn->ctrl)
+		return "NONE";
+	return conn->ctrl->name;
+}
+
+static inline const char *get_conn_xprt_name(const struct connection *conn)
+{
+	static char ptr[17];
+
+	if (!conn->xprt)
+		return "NONE";
+
+	if (conn->xprt == &raw_sock)
+		return "RAW";
+
+#ifdef USE_OPENSSL
+	if (conn->xprt == &ssl_sock)
+		return "SSL";
+#endif
+	snprintf(ptr, sizeof(ptr), "%p", conn->xprt);
+	return ptr;
+}
+
+static inline const char *get_conn_data_name(const struct connection *conn)
+{
+	static char ptr[17];
+
+	if (!conn->data)
+		return "NONE";
+
+	if (conn->data == &sess_conn_cb)
+		return "SESS";
+
+	if (conn->data == &si_conn_cb)
+		return "STRM";
+
+	if (conn->data == &check_conn_cb)
+		return "CHCK";
+
+	snprintf(ptr, sizeof(ptr), "%p", conn->data);
+	return ptr;
+}
+
 /* This function dumps a complete session state onto the stream interface's
  * read buffer. The xprt_ctx must have been zeroed first, and the flags
  * properly set. The session has to be set in xprt_ctx.sess.target. It returns
@@ -3581,63 +3626,46 @@
 			     sess->si[1].err_type);
 
 		chunk_appendf(&trash,
-		              "  lconn=%p (ctrl=%p(%s) xprt=%p(%s) data=%p(%s) target=%d flags=0x%08x fd=%d fd_spec=%02x)\n",
-		              sess->si[0].conn,
-		              sess->si[0].conn->ctrl,
-		              sess->si[0].conn->ctrl ? sess->si[0].conn->ctrl->name : "NONE",
-		              sess->si[0].conn->xprt,
-		              (sess->si[0].conn->xprt == NULL) ? "NONE" :
-		              (sess->si[0].conn->xprt == &raw_sock) ? "RAW" :
-#ifdef USE_OPENSSL
-		              (sess->si[0].conn->xprt == &ssl_sock) ? "SSL" :
-#endif
-			      "????",
-		              sess->si[0].conn->data,
-		              (sess->si[0].conn->data == NULL) ? "NONE" :
-		              (sess->si[0].conn->data == &sess_conn_cb) ? "SESS" :
-		              (sess->si[0].conn->data == &si_conn_cb) ? "STRM" :
-		              (sess->si[0].conn->data == &check_conn_cb) ? "CHCK" : "????",
+		              "  lconn=%p ctrl=%s xprt=%s data=%s\n",
+			      sess->si[0].conn,
+			      get_conn_ctrl_name(sess->si[0].conn),
+			      get_conn_xprt_name(sess->si[0].conn),
+			      get_conn_data_name(sess->si[0].conn));
+
+		chunk_appendf(&trash,
+		              "       target=%d flags=0x%08x fd=%d fd_spec=%02x\n",
 		              sess->si[0].conn->target ? *sess->si[0].conn->target : 0,
 		              sess->si[0].conn->flags,
 		              sess->si[0].conn->t.sock.fd,
 		              sess->si[0].conn->t.sock.fd >= 0 ? fdtab[sess->si[0].conn->t.sock.fd].spec_e : 0);
 
 		chunk_appendf(&trash,
-		              "  rconn=%p (ctrl=%p(%s) xprt=%p(%s) data=%p(%s) target=%d flags=0x%08x fd=%d fd_spec=%02x)\n",
-		              sess->si[1].conn,
-		              sess->si[1].conn->ctrl,
-		              sess->si[1].conn->ctrl ? sess->si[1].conn->ctrl->name : "NONE",
-		              sess->si[1].conn->xprt,
-		              (sess->si[1].conn->xprt == NULL) ? "NONE" :
-		              (sess->si[1].conn->xprt == &raw_sock) ? "RAW" :
-#ifdef USE_OPENSSL
-		              (sess->si[1].conn->xprt == &ssl_sock) ? "SSL" :
-#endif
-			      "UNKNOWN",
-		              sess->si[1].conn->data,
-		              (sess->si[1].conn->data == NULL) ? "NONE" :
-		              (sess->si[1].conn->data == &sess_conn_cb) ? "SESS" :
-		              (sess->si[1].conn->data == &si_conn_cb) ? "STRM" :
-		              (sess->si[1].conn->data == &check_conn_cb) ? "CHCK" : "????",
+		              "  rconn=%p ctrl=%s xprt=%s data=%s\n",
+			      sess->si[1].conn,
+			      get_conn_ctrl_name(sess->si[1].conn),
+			      get_conn_xprt_name(sess->si[1].conn),
+			      get_conn_data_name(sess->si[1].conn));
+
+		chunk_appendf(&trash,
+		              "     target=%d flags=0x%08x fd=%d fd_spec=%02x\n",
 		              sess->si[1].conn->target ? *sess->si[1].conn->target : 0,
 		              sess->si[1].conn->flags,
 		              sess->si[1].conn->t.sock.fd,
 		              sess->si[1].conn->t.sock.fd >= 0 ? fdtab[sess->si[1].conn->t.sock.fd].spec_e : 0);
 
 		chunk_appendf(&trash,
-			     "  txn=%p (flags=0x%x meth=%d status=%d req.st=%s rsp.st=%s)\n",
+			     "  txn=%p flags=0x%x meth=%d status=%d req.st=%s rsp.st=%s\n",
 			     &sess->txn, sess->txn.flags, sess->txn.meth, sess->txn.status,
 			     http_msg_state_str(sess->txn.req.msg_state), http_msg_state_str(sess->txn.rsp.msg_state));
 
 
 		chunk_appendf(&trash,
-			     "  req=%p (f=0x%06x an=0x%x i=%d o=%d pipe=%d fwd=%d)\n"
+			     "  req=%p (f=0x%06x an=0x%x pipe=%d tofwd=%d total=%lld)\n"
 			     "      an_exp=%s",
 			     sess->req,
 			     sess->req->flags, sess->req->analysers,
-			     sess->req->buf->i, sess->req->buf->o,
 			     sess->req->pipe ? sess->req->pipe->data : 0,
-			     sess->req->to_forward,
+			     sess->req->to_forward, sess->req->total,
 			     sess->req->analyse_exp ?
 			     human_time(TICKS_TO_MS(sess->req->analyse_exp - now_ms),
 					TICKS_TO_MS(1000)) : "<NEVER>");
@@ -3650,23 +3678,23 @@
 
 		chunk_appendf(&trash,
 			     " wex=%s\n"
-			     "      data=%p p=%d next=%d total=%lld\n",
+			     "      buf=%p data=%p o=%d p=%d req.next=%d i=%d size=%d\n",
 			     sess->req->wex ?
 			     human_time(TICKS_TO_MS(sess->req->wex - now_ms),
 					TICKS_TO_MS(1000)) : "<NEVER>",
-			     sess->req->buf->data,
+			     sess->req->buf,
+			     sess->req->buf->data, sess->req->buf->o,
 			     (int)(sess->req->buf->p - sess->req->buf->data),
-			     sess->txn.req.next,
-			     sess->req->total);
+			     sess->txn.req.next, sess->req->buf->i,
+			     sess->req->buf->size);
 
 		chunk_appendf(&trash,
-			     "  res=%p (f=0x%06x an=0x%x i=%d o=%d pipe=%d fwd=%d)\n"
+			     "  res=%p (f=0x%06x an=0x%x pipe=%d tofwd=%d total=%lld)\n"
 			     "      an_exp=%s",
 			     sess->rep,
 			     sess->rep->flags, sess->rep->analysers,
-			     sess->rep->buf->i, sess->rep->buf->o,
 			     sess->rep->pipe ? sess->rep->pipe->data : 0,
-			     sess->rep->to_forward,
+			     sess->rep->to_forward, sess->rep->total,
 			     sess->rep->analyse_exp ?
 			     human_time(TICKS_TO_MS(sess->rep->analyse_exp - now_ms),
 					TICKS_TO_MS(1000)) : "<NEVER>");
@@ -3679,14 +3707,15 @@
 
 		chunk_appendf(&trash,
 			     " wex=%s\n"
-			     "      data=%p p=%d next=%d total=%lld\n",
+			     "      buf=%p data=%p o=%d p=%d rsp.next=%d i=%d size=%d\n",
 			     sess->rep->wex ?
 			     human_time(TICKS_TO_MS(sess->rep->wex - now_ms),
 					TICKS_TO_MS(1000)) : "<NEVER>",
-			     sess->rep->buf->data,
+			     sess->rep->buf,
+			     sess->rep->buf->data, sess->rep->buf->o,
 			     (int)(sess->rep->buf->p - sess->rep->buf->data),
-			     sess->txn.rsp.next,
-			     sess->rep->total);
+			     sess->txn.rsp.next, sess->rep->buf->i,
+			     sess->rep->buf->size);
 
 		if (bi_putchk(si->ib, &trash) == -1)
 			return 0;