CLEANUP: stats/cli: stop using appctx->st2
Instead, let's have the state as an enum inside the context. It's much cleaner and safer as we know nobody else touches it.
This commit is contained in:
parent
91cefcaba4
commit
41f885241e
@ -122,7 +122,7 @@ enum {
|
||||
|
||||
|
||||
/* data transmission states for the stats responses */
|
||||
enum {
|
||||
enum stat_state {
|
||||
STAT_ST_INIT = 0,
|
||||
STAT_ST_HEAD,
|
||||
STAT_ST_INFO,
|
||||
@ -529,6 +529,7 @@ struct show_stat_ctx {
|
||||
unsigned int flags; /* STAT_* from stats-t.h */
|
||||
int iid, type, sid; /* proxy id, type and service id if bounding of stats is enabled */
|
||||
int st_code; /* the status code returned by an action */
|
||||
enum stat_state state; /* phase of output production */
|
||||
};
|
||||
|
||||
extern THREAD_LOCAL void *trash_counters;
|
||||
|
@ -3927,7 +3927,8 @@ static int http_handle_stats(struct stream *s, struct channel *req)
|
||||
struct htx *htx;
|
||||
struct htx_sl *sl;
|
||||
|
||||
appctx->st1 = appctx->st2 = 0;
|
||||
appctx->st1 = 0;
|
||||
ctx->state = STAT_ST_INIT;
|
||||
ctx->st_code = STAT_STATUS_INIT;
|
||||
ctx->flags |= uri_auth->flags;
|
||||
ctx->flags |= STAT_FMT_HTML; /* assume HTML mode by default */
|
||||
|
16
src/stats.c
16
src/stats.c
@ -3732,9 +3732,9 @@ static int stats_dump_stat_to_buffer(struct conn_stream *cs, struct htx *htx,
|
||||
|
||||
chunk_reset(&trash);
|
||||
|
||||
switch (appctx->st2) {
|
||||
switch (ctx->state) {
|
||||
case STAT_ST_INIT:
|
||||
appctx->st2 = STAT_ST_HEAD; /* let's start producing data */
|
||||
ctx->state = STAT_ST_HEAD; /* let's start producing data */
|
||||
/* fall through */
|
||||
|
||||
case STAT_ST_HEAD:
|
||||
@ -3751,10 +3751,10 @@ static int stats_dump_stat_to_buffer(struct conn_stream *cs, struct htx *htx,
|
||||
goto full;
|
||||
|
||||
if (ctx->flags & STAT_JSON_SCHM) {
|
||||
appctx->st2 = STAT_ST_FIN;
|
||||
ctx->state = STAT_ST_FIN;
|
||||
return 1;
|
||||
}
|
||||
appctx->st2 = STAT_ST_INFO;
|
||||
ctx->state = STAT_ST_INFO;
|
||||
/* fall through */
|
||||
|
||||
case STAT_ST_INFO:
|
||||
@ -3768,7 +3768,7 @@ static int stats_dump_stat_to_buffer(struct conn_stream *cs, struct htx *htx,
|
||||
ctx->obj1 = proxies_list;
|
||||
|
||||
ctx->px_st = STAT_PX_ST_INIT;
|
||||
appctx->st2 = STAT_ST_LIST;
|
||||
ctx->state = STAT_ST_LIST;
|
||||
/* fall through */
|
||||
|
||||
case STAT_ST_LIST:
|
||||
@ -3789,7 +3789,7 @@ static int stats_dump_stat_to_buffer(struct conn_stream *cs, struct htx *htx,
|
||||
break;
|
||||
}
|
||||
|
||||
appctx->st2 = STAT_ST_END;
|
||||
ctx->state = STAT_ST_END;
|
||||
/* fall through */
|
||||
|
||||
case STAT_ST_END:
|
||||
@ -3802,7 +3802,7 @@ static int stats_dump_stat_to_buffer(struct conn_stream *cs, struct htx *htx,
|
||||
goto full;
|
||||
}
|
||||
|
||||
appctx->st2 = STAT_ST_FIN;
|
||||
ctx->state = STAT_ST_FIN;
|
||||
/* fall through */
|
||||
|
||||
case STAT_ST_FIN:
|
||||
@ -3810,7 +3810,7 @@ static int stats_dump_stat_to_buffer(struct conn_stream *cs, struct htx *htx,
|
||||
|
||||
default:
|
||||
/* unknown state ! */
|
||||
appctx->st2 = STAT_ST_FIN;
|
||||
ctx->state = STAT_ST_FIN;
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user