MINOR: stats: provide some appctx information in "show sess all"
When dumping a session, it can be useful to know what applet it is
connected to instead of having just the appctx pointer. We also
report st0/st1/st2 to help debugging.
diff --git a/src/dumpstats.c b/src/dumpstats.c
index 6cc2bcd..d1518b8 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -3904,6 +3904,7 @@
extern const char *monthname[12];
char pn[INET6_ADDRSTRLEN];
struct connection *conn;
+ struct appctx *tmpctx;
chunk_reset(&trash);
@@ -4076,8 +4077,7 @@
TICKS_TO_MS(1000)) : "<NEVER>",
sess->si[1].err_type);
- conn = objt_conn(sess->si[0].end);
- if (conn) {
+ if ((conn = objt_conn(sess->si[0].end)) != NULL) {
chunk_appendf(&trash,
" co0=%p ctrl=%s xprt=%s data=%s target=%s:%p\n",
conn,
@@ -4095,9 +4095,17 @@
conn->t.sock.fd >= 0 ? fdtab[conn->t.sock.fd].spec_p : 0,
conn->t.sock.fd >= 0 ? fdtab[conn->t.sock.fd].updated : 0);
}
+ else if ((tmpctx = objt_appctx(sess->si[0].end)) != NULL) {
+ chunk_appendf(&trash,
+ " app0=%p st0=%d st1=%d st2=%d applet=%s\n",
+ tmpctx,
+ tmpctx->st0,
+ tmpctx->st1,
+ tmpctx->st2,
+ tmpctx->applet->name);
+ }
- conn = objt_conn(sess->si[1].end);
- if (conn) {
+ if ((conn = objt_conn(sess->si[1].end)) != NULL) {
chunk_appendf(&trash,
" co1=%p ctrl=%s xprt=%s data=%s target=%s:%p\n",
conn,
@@ -4115,6 +4123,15 @@
conn->t.sock.fd >= 0 ? fdtab[conn->t.sock.fd].spec_p : 0,
conn->t.sock.fd >= 0 ? fdtab[conn->t.sock.fd].updated : 0);
}
+ else if ((tmpctx = objt_appctx(sess->si[1].end)) != NULL) {
+ chunk_appendf(&trash,
+ " app1=%p st0=%d st1=%d st2=%d applet=%s\n",
+ tmpctx,
+ tmpctx->st0,
+ tmpctx->st1,
+ tmpctx->st2,
+ tmpctx->applet->name);
+ }
chunk_appendf(&trash,
" req=%p (f=0x%06x an=0x%x pipe=%d tofwd=%d total=%lld)\n"