]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CLEANUP: stream/cli: remove the now unneeded dump state from "show sess"
authorWilly Tarreau <w@1wt.eu>
Tue, 3 May 2022 09:17:35 +0000 (11:17 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 6 May 2022 16:13:35 +0000 (18:13 +0200)
The state was a constant, let's remove what remains of the switch/case.
The code from the "case" statement was only reindented as can be checked
with "git show -b".

src/stream.c

index 5a36a0357a460c88077c33993860648b996fe757..aaf42f39fa155becbd1b36e858527cc3aa9603dc 100644 (file)
@@ -3154,9 +3154,6 @@ struct show_sess_ctx {
        unsigned int uid;       /* if non-null, the uniq_id of the session being dumped */
        int section;            /* section of the session being dumped */
        int pos;                /* last position of the current session's buffer */
-       enum {
-               STATE_LIST = 0,
-       } state;                /* dump state */
 };
 
 /* This function dumps a complete stream state onto the conn-stream's
@@ -3562,193 +3559,191 @@ static int cli_io_handler_dump_sess(struct appctx *appctx)
 
        chunk_reset(&trash);
 
-       switch (ctx->state) {
-       default:
-               /* first, let's detach the back-ref from a possible previous stream */
-               if (!LIST_ISEMPTY(&ctx->bref.users)) {
-                       LIST_DELETE(&ctx->bref.users);
-                       LIST_INIT(&ctx->bref.users);
-               } else if (!ctx->bref.ref) {
-                       /* first call, start with first stream */
-                       ctx->bref.ref = ha_thread_ctx[ctx->thr].streams.n;
-               }
+       /* first, let's detach the back-ref from a possible previous stream */
+       if (!LIST_ISEMPTY(&ctx->bref.users)) {
+               LIST_DELETE(&ctx->bref.users);
+               LIST_INIT(&ctx->bref.users);
+       } else if (!ctx->bref.ref) {
+               /* first call, start with first stream */
+               ctx->bref.ref = ha_thread_ctx[ctx->thr].streams.n;
+       }
 
-               /* and start from where we stopped */
-               while (1) {
-                       char pn[INET6_ADDRSTRLEN];
-                       struct stream *curr_strm;
-                       int done= 0;
+       /* and start from where we stopped */
+       while (1) {
+               char pn[INET6_ADDRSTRLEN];
+               struct stream *curr_strm;
+               int done= 0;
 
-                       if (ctx->bref.ref == &ha_thread_ctx[ctx->thr].streams)
+               if (ctx->bref.ref == &ha_thread_ctx[ctx->thr].streams)
+                       done = 1;
+               else {
+                       /* check if we've found a stream created after issuing the "show sess" */
+                       curr_strm = LIST_ELEM(ctx->bref.ref, struct stream *, list);
+                       if ((int)(curr_strm->stream_epoch - __cs_strm(appctx->owner)->stream_epoch) > 0)
                                done = 1;
-                       else {
-                               /* check if we've found a stream created after issuing the "show sess" */
-                               curr_strm = LIST_ELEM(ctx->bref.ref, struct stream *, list);
-                               if ((int)(curr_strm->stream_epoch - __cs_strm(appctx->owner)->stream_epoch) > 0)
-                                       done = 1;
-                       }
-
-                       if (done) {
-                               ctx->thr++;
-                               if (ctx->thr >= global.nbthread)
-                                       break;
-                               ctx->bref.ref = ha_thread_ctx[ctx->thr].streams.n;
-                               continue;
-                       }
+               }
 
-                       if (ctx->target) {
-                               if (ctx->target != (void *)-1 && ctx->target != curr_strm)
-                                       goto next_sess;
+               if (done) {
+                       ctx->thr++;
+                       if (ctx->thr >= global.nbthread)
+                               break;
+                       ctx->bref.ref = ha_thread_ctx[ctx->thr].streams.n;
+                       continue;
+               }
 
-                               LIST_APPEND(&curr_strm->back_refs, &ctx->bref.users);
-                               /* call the proper dump() function and return if we're missing space */
-                               if (!stats_dump_full_strm_to_buffer(cs, curr_strm))
-                                       goto full;
+               if (ctx->target) {
+                       if (ctx->target != (void *)-1 && ctx->target != curr_strm)
+                               goto next_sess;
 
-                               /* stream dump complete */
-                               LIST_DELETE(&ctx->bref.users);
-                               LIST_INIT(&ctx->bref.users);
-                               if (ctx->target != (void *)-1) {
-                                       ctx->target = NULL;
-                                       break;
-                               }
-                               else
-                                       goto next_sess;
-                       }
+                       LIST_APPEND(&curr_strm->back_refs, &ctx->bref.users);
+                       /* call the proper dump() function and return if we're missing space */
+                       if (!stats_dump_full_strm_to_buffer(cs, curr_strm))
+                               goto full;
 
-                       chunk_appendf(&trash,
-                                    "%p: proto=%s",
-                                    curr_strm,
-                                    strm_li(curr_strm) ? strm_li(curr_strm)->rx.proto->name : "?");
-
-                       conn = objt_conn(strm_orig(curr_strm));
-                       switch (conn && conn_get_src(conn) ? addr_to_str(conn->src, pn, sizeof(pn)) : AF_UNSPEC) {
-                       case AF_INET:
-                       case AF_INET6:
-                               chunk_appendf(&trash,
-                                            " src=%s:%d fe=%s be=%s srv=%s",
-                                            pn,
-                                            get_host_port(conn->src),
-                                            strm_fe(curr_strm)->id,
-                                            (curr_strm->be->cap & PR_CAP_BE) ? curr_strm->be->id : "<NONE>",
-                                            objt_server(curr_strm->target) ? __objt_server(curr_strm->target)->id : "<none>"
-                                            );
-                               break;
-                       case AF_UNIX:
-                               chunk_appendf(&trash,
-                                            " src=unix:%d fe=%s be=%s srv=%s",
-                                            strm_li(curr_strm)->luid,
-                                            strm_fe(curr_strm)->id,
-                                            (curr_strm->be->cap & PR_CAP_BE) ? curr_strm->be->id : "<NONE>",
-                                            objt_server(curr_strm->target) ? __objt_server(curr_strm->target)->id : "<none>"
-                                            );
+                       /* stream dump complete */
+                       LIST_DELETE(&ctx->bref.users);
+                       LIST_INIT(&ctx->bref.users);
+                       if (ctx->target != (void *)-1) {
+                               ctx->target = NULL;
                                break;
                        }
+                       else
+                               goto next_sess;
+               }
 
-                       chunk_appendf(&trash,
-                                    " ts=%02x epoch=%#x age=%s calls=%u rate=%u cpu=%llu lat=%llu",
-                                    curr_strm->task->state, curr_strm->stream_epoch,
-                                    human_time(now.tv_sec - curr_strm->logs.tv_accept.tv_sec, 1),
-                                    curr_strm->task->calls, read_freq_ctr(&curr_strm->call_rate),
-                                    (unsigned long long)curr_strm->task->cpu_time, (unsigned long long)curr_strm->task->lat_time);
+               chunk_appendf(&trash,
+                            "%p: proto=%s",
+                            curr_strm,
+                            strm_li(curr_strm) ? strm_li(curr_strm)->rx.proto->name : "?");
 
+               conn = objt_conn(strm_orig(curr_strm));
+               switch (conn && conn_get_src(conn) ? addr_to_str(conn->src, pn, sizeof(pn)) : AF_UNSPEC) {
+               case AF_INET:
+               case AF_INET6:
                        chunk_appendf(&trash,
-                                    " rq[f=%06xh,i=%u,an=%02xh,rx=%s",
-                                    curr_strm->req.flags,
-                                    (unsigned int)ci_data(&curr_strm->req),
-                                    curr_strm->req.analysers,
-                                    curr_strm->req.rex ?
-                                    human_time(TICKS_TO_MS(curr_strm->req.rex - now_ms),
-                                               TICKS_TO_MS(1000)) : "");
-
+                                    " src=%s:%d fe=%s be=%s srv=%s",
+                                    pn,
+                                    get_host_port(conn->src),
+                                    strm_fe(curr_strm)->id,
+                                    (curr_strm->be->cap & PR_CAP_BE) ? curr_strm->be->id : "<NONE>",
+                                    objt_server(curr_strm->target) ? __objt_server(curr_strm->target)->id : "<none>"
+                                    );
+                       break;
+               case AF_UNIX:
                        chunk_appendf(&trash,
-                                    ",wx=%s",
-                                    curr_strm->req.wex ?
-                                    human_time(TICKS_TO_MS(curr_strm->req.wex - now_ms),
-                                               TICKS_TO_MS(1000)) : "");
+                                    " src=unix:%d fe=%s be=%s srv=%s",
+                                    strm_li(curr_strm)->luid,
+                                    strm_fe(curr_strm)->id,
+                                    (curr_strm->be->cap & PR_CAP_BE) ? curr_strm->be->id : "<NONE>",
+                                    objt_server(curr_strm->target) ? __objt_server(curr_strm->target)->id : "<none>"
+                                    );
+                       break;
+               }
 
-                       chunk_appendf(&trash,
-                                    ",ax=%s]",
-                                    curr_strm->req.analyse_exp ?
-                                    human_time(TICKS_TO_MS(curr_strm->req.analyse_exp - now_ms),
-                                               TICKS_TO_MS(1000)) : "");
+               chunk_appendf(&trash,
+                            " ts=%02x epoch=%#x age=%s calls=%u rate=%u cpu=%llu lat=%llu",
+                            curr_strm->task->state, curr_strm->stream_epoch,
+                            human_time(now.tv_sec - curr_strm->logs.tv_accept.tv_sec, 1),
+                            curr_strm->task->calls, read_freq_ctr(&curr_strm->call_rate),
+                            (unsigned long long)curr_strm->task->cpu_time, (unsigned long long)curr_strm->task->lat_time);
 
-                       chunk_appendf(&trash,
-                                    " rp[f=%06xh,i=%u,an=%02xh,rx=%s",
-                                    curr_strm->res.flags,
-                                    (unsigned int)ci_data(&curr_strm->res),
-                                    curr_strm->res.analysers,
-                                    curr_strm->res.rex ?
-                                    human_time(TICKS_TO_MS(curr_strm->res.rex - now_ms),
-                                               TICKS_TO_MS(1000)) : "");
+               chunk_appendf(&trash,
+                            " rq[f=%06xh,i=%u,an=%02xh,rx=%s",
+                            curr_strm->req.flags,
+                            (unsigned int)ci_data(&curr_strm->req),
+                            curr_strm->req.analysers,
+                            curr_strm->req.rex ?
+                            human_time(TICKS_TO_MS(curr_strm->req.rex - now_ms),
+                                       TICKS_TO_MS(1000)) : "");
 
-                       chunk_appendf(&trash,
-                                    ",wx=%s",
-                                    curr_strm->res.wex ?
-                                    human_time(TICKS_TO_MS(curr_strm->res.wex - now_ms),
-                                               TICKS_TO_MS(1000)) : "");
+               chunk_appendf(&trash,
+                            ",wx=%s",
+                            curr_strm->req.wex ?
+                            human_time(TICKS_TO_MS(curr_strm->req.wex - now_ms),
+                                       TICKS_TO_MS(1000)) : "");
 
-                       chunk_appendf(&trash,
-                                    ",ax=%s]",
-                                    curr_strm->res.analyse_exp ?
-                                    human_time(TICKS_TO_MS(curr_strm->res.analyse_exp - now_ms),
-                                               TICKS_TO_MS(1000)) : "");
+               chunk_appendf(&trash,
+                            ",ax=%s]",
+                            curr_strm->req.analyse_exp ?
+                            human_time(TICKS_TO_MS(curr_strm->req.analyse_exp - now_ms),
+                                       TICKS_TO_MS(1000)) : "");
 
-                       conn = cs_conn(curr_strm->csf);
-                       chunk_appendf(&trash,
-                                    " csf=[%d,%1xh,fd=%d]",
-                                     curr_strm->csf->state,
-                                    curr_strm->csf->flags,
-                                    conn_fd(conn));
+               chunk_appendf(&trash,
+                            " rp[f=%06xh,i=%u,an=%02xh,rx=%s",
+                            curr_strm->res.flags,
+                            (unsigned int)ci_data(&curr_strm->res),
+                            curr_strm->res.analysers,
+                            curr_strm->res.rex ?
+                            human_time(TICKS_TO_MS(curr_strm->res.rex - now_ms),
+                                       TICKS_TO_MS(1000)) : "");
 
-                       conn = cs_conn(curr_strm->csb);
-                       chunk_appendf(&trash,
-                                    " csb=[%d,%1xh,fd=%d]",
-                                     curr_strm->csb->state,
-                                    curr_strm->csb->flags,
-                                    conn_fd(conn));
+               chunk_appendf(&trash,
+                            ",wx=%s",
+                            curr_strm->res.wex ?
+                            human_time(TICKS_TO_MS(curr_strm->res.wex - now_ms),
+                                       TICKS_TO_MS(1000)) : "");
 
-                       chunk_appendf(&trash,
-                                    " exp=%s rc=%d c_exp=%s",
-                                    curr_strm->task->expire ?
-                                    human_time(TICKS_TO_MS(curr_strm->task->expire - now_ms),
-                                               TICKS_TO_MS(1000)) : "",
-                                    curr_strm->conn_retries,
-                                    curr_strm->conn_exp ?
-                                    human_time(TICKS_TO_MS(curr_strm->conn_exp - now_ms),
-                                               TICKS_TO_MS(1000)) : "");
-                       if (task_in_rq(curr_strm->task))
-                               chunk_appendf(&trash, " run(nice=%d)", curr_strm->task->nice);
+               chunk_appendf(&trash,
+                            ",ax=%s]",
+                            curr_strm->res.analyse_exp ?
+                            human_time(TICKS_TO_MS(curr_strm->res.analyse_exp - now_ms),
+                                       TICKS_TO_MS(1000)) : "");
 
-                       chunk_appendf(&trash, "\n");
+               conn = cs_conn(curr_strm->csf);
+               chunk_appendf(&trash,
+                            " csf=[%d,%1xh,fd=%d]",
+                             curr_strm->csf->state,
+                            curr_strm->csf->flags,
+                            conn_fd(conn));
 
-                       if (ci_putchk(cs_ic(cs), &trash) == -1) {
-                               /* let's try again later from this stream. We add ourselves into
-                                * this stream's users so that it can remove us upon termination.
-                                */
-                               LIST_APPEND(&curr_strm->back_refs, &ctx->bref.users);
-                               goto full;
-                       }
+               conn = cs_conn(curr_strm->csb);
+               chunk_appendf(&trash,
+                            " csb=[%d,%1xh,fd=%d]",
+                             curr_strm->csb->state,
+                            curr_strm->csb->flags,
+                            conn_fd(conn));
 
-               next_sess:
-                       ctx->bref.ref = curr_strm->list.n;
+               chunk_appendf(&trash,
+                            " exp=%s rc=%d c_exp=%s",
+                            curr_strm->task->expire ?
+                            human_time(TICKS_TO_MS(curr_strm->task->expire - now_ms),
+                                       TICKS_TO_MS(1000)) : "",
+                            curr_strm->conn_retries,
+                            curr_strm->conn_exp ?
+                            human_time(TICKS_TO_MS(curr_strm->conn_exp - now_ms),
+                                       TICKS_TO_MS(1000)) : "");
+               if (task_in_rq(curr_strm->task))
+                       chunk_appendf(&trash, " run(nice=%d)", curr_strm->task->nice);
+
+               chunk_appendf(&trash, "\n");
+
+               if (ci_putchk(cs_ic(cs), &trash) == -1) {
+                       /* let's try again later from this stream. We add ourselves into
+                        * this stream's users so that it can remove us upon termination.
+                        */
+                       LIST_APPEND(&curr_strm->back_refs, &ctx->bref.users);
+                       goto full;
                }
 
-               if (ctx->target && ctx->target != (void *)-1) {
-                       /* specified stream not found */
-                       if (ctx->section > 0)
-                               chunk_appendf(&trash, "  *** session terminated while we were watching it ***\n");
-                       else
-                               chunk_appendf(&trash, "Session not found.\n");
+       next_sess:
+               ctx->bref.ref = curr_strm->list.n;
+       }
 
-                       if (ci_putchk(cs_ic(cs), &trash) == -1)
-                               goto full;
+       if (ctx->target && ctx->target != (void *)-1) {
+               /* specified stream not found */
+               if (ctx->section > 0)
+                       chunk_appendf(&trash, "  *** session terminated while we were watching it ***\n");
+               else
+                       chunk_appendf(&trash, "Session not found.\n");
 
-                       ctx->target = NULL;
-                       ctx->uid = 0;
-                       goto done;
-               }
+               if (ci_putchk(cs_ic(cs), &trash) == -1)
+                       goto full;
+
+               ctx->target = NULL;
+               ctx->uid = 0;
+               goto done;
        }
+
  done:
        thread_release();
        return 1;