mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 07:07:04 +02:00
MINOR: flags/stconn: use flag dumping for stconn and sedesc flags
The two new functions are se_show_flags() and sc_show_flags(). Maybe something could be done for SC_ST_* values but as it's a small enum, a simple switch/case should work fine.
This commit is contained in:
parent
9d9e101689
commit
4bab7d81b6
@ -66,61 +66,14 @@ void show_conn_flags(unsigned int f)
|
||||
|
||||
void show_sd_flags(unsigned int f)
|
||||
{
|
||||
printf("sd->flags = ");
|
||||
if (!f) {
|
||||
printf("0\n");
|
||||
return;
|
||||
}
|
||||
|
||||
SHOW_FLAG(f, SE_FL_APPLET_NEED_CONN);
|
||||
SHOW_FLAG(f, SE_FL_HAVE_NO_DATA);
|
||||
SHOW_FLAG(f, SE_FL_WONT_CONSUME);
|
||||
SHOW_FLAG(f, SE_FL_WAIT_DATA);
|
||||
SHOW_FLAG(f, SE_FL_KILL_CONN);
|
||||
SHOW_FLAG(f, SE_FL_WAIT_FOR_HS);
|
||||
SHOW_FLAG(f, SE_FL_WANT_ROOM);
|
||||
SHOW_FLAG(f, SE_FL_RCV_MORE);
|
||||
SHOW_FLAG(f, SE_FL_MAY_SPLICE);
|
||||
SHOW_FLAG(f, SE_FL_ERR_PENDING);
|
||||
SHOW_FLAG(f, SE_FL_ERROR);
|
||||
SHOW_FLAG(f, SE_FL_EOS);
|
||||
SHOW_FLAG(f, SE_FL_EOI);
|
||||
SHOW_FLAG(f, SE_FL_WEBSOCKET);
|
||||
SHOW_FLAG(f, SE_FL_NOT_FIRST);
|
||||
SHOW_FLAG(f, SE_FL_SHWS);
|
||||
SHOW_FLAG(f, SE_FL_SHWN);
|
||||
SHOW_FLAG(f, SE_FL_SHRR);
|
||||
SHOW_FLAG(f, SE_FL_SHRD);
|
||||
SHOW_FLAG(f, SE_FL_ORPHAN);
|
||||
SHOW_FLAG(f, SE_FL_DETACHED);
|
||||
SHOW_FLAG(f, SE_FL_T_APPLET);
|
||||
SHOW_FLAG(f, SE_FL_T_MUX);
|
||||
|
||||
if (f) {
|
||||
printf("EXTRA(0x%08x)", f);
|
||||
}
|
||||
putchar('\n');
|
||||
se_show_flags(tmpbuf, sizeof(tmpbuf), " | ", f);
|
||||
printf("sd->flags = %s\n", tmpbuf);
|
||||
}
|
||||
|
||||
void show_sc_flags(unsigned int f)
|
||||
{
|
||||
printf("sc->flags = ");
|
||||
if (!f) {
|
||||
printf("0\n");
|
||||
return;
|
||||
}
|
||||
SHOW_FLAG(f, SC_FL_NEED_ROOM);
|
||||
SHOW_FLAG(f, SC_FL_NEED_BUFF);
|
||||
SHOW_FLAG(f, SC_FL_WONT_READ);
|
||||
SHOW_FLAG(f, SC_FL_INDEP_STR);
|
||||
SHOW_FLAG(f, SC_FL_DONT_WAKE);
|
||||
SHOW_FLAG(f, SC_FL_NOHALF);
|
||||
SHOW_FLAG(f, SC_FL_NOLINGER);
|
||||
SHOW_FLAG(f, SC_FL_ISBACK);
|
||||
|
||||
if (f) {
|
||||
printf("EXTRA(0x%08x)", f);
|
||||
}
|
||||
putchar('\n');
|
||||
sc_show_flags(tmpbuf, sizeof(tmpbuf), " | ", f);
|
||||
printf("sc->flags = %s\n", tmpbuf);
|
||||
}
|
||||
|
||||
void show_strm_et(unsigned int f)
|
||||
|
@ -24,8 +24,11 @@
|
||||
|
||||
#include <haproxy/obj_type-t.h>
|
||||
#include <haproxy/connection-t.h>
|
||||
#include <haproxy/show_flags-t.h>
|
||||
|
||||
/* Stream Endpoint Flags */
|
||||
/* Stream Endpoint Flags.
|
||||
* Please also update the se_show_flags() function below in case of changes.
|
||||
*/
|
||||
enum se_flags {
|
||||
SE_FL_NONE = 0x00000000, /* For initialization purposes */
|
||||
|
||||
@ -81,7 +84,32 @@ enum se_flags {
|
||||
SE_FL_APPLET_NEED_CONN = 0x40000000, /* applet is waiting for the other side to (fail to) connect */
|
||||
};
|
||||
|
||||
/* stconn flags */
|
||||
/* This function is used to report flags in debugging tools. Please reflect
|
||||
* below any single-bit flag addition above in the same order via the
|
||||
* __APPEND_FLAG macro. The new end of the buffer is returned.
|
||||
*/
|
||||
static forceinline char *se_show_flags(char *buf, size_t len, const char *delim, uint flg)
|
||||
{
|
||||
#define _(f, ...) __APPEND_FLAG(buf, len, delim, flg, f, #f, __VA_ARGS__)
|
||||
/* prologue */
|
||||
_(0);
|
||||
/* flags */
|
||||
_(SE_FL_T_MUX, _(SE_FL_T_APPLET, _(SE_FL_DETACHED, _(SE_FL_ORPHAN,
|
||||
_(SE_FL_SHRD, _(SE_FL_SHRR, _(SE_FL_SHWN, _(SE_FL_SHWS,
|
||||
_(SE_FL_NOT_FIRST, _(SE_FL_WEBSOCKET, _(SE_FL_EOI, _(SE_FL_EOS,
|
||||
_(SE_FL_ERROR, _(SE_FL_ERR_PENDING, _(SE_FL_MAY_SPLICE,
|
||||
_(SE_FL_RCV_MORE, _(SE_FL_WANT_ROOM, _(SE_FL_WAIT_FOR_HS,
|
||||
_(SE_FL_KILL_CONN, _(SE_FL_WAIT_DATA, _(SE_FL_WONT_CONSUME,
|
||||
_(SE_FL_HAVE_NO_DATA, _(SE_FL_APPLET_NEED_CONN)))))))))))))))))))))));
|
||||
/* epilogue */
|
||||
_(~0U);
|
||||
return buf;
|
||||
#undef _
|
||||
}
|
||||
|
||||
/* stconn flags.
|
||||
* Please also update the sc_show_flags() function below in case of changes.
|
||||
*/
|
||||
enum sc_flags {
|
||||
SC_FL_NONE = 0x00000000, /* Just for initialization purposes */
|
||||
SC_FL_ISBACK = 0x00000001, /* Set for SC on back-side */
|
||||
@ -99,6 +127,25 @@ enum sc_flags {
|
||||
SC_FL_NEED_ROOM = 0x00000200, /* SC needs more room in the rx buffer to store incoming data */
|
||||
};
|
||||
|
||||
/* This function is used to report flags in debugging tools. Please reflect
|
||||
* below any single-bit flag addition above in the same order via the
|
||||
* __APPEND_FLAG macro. The new end of the buffer is returned.
|
||||
*/
|
||||
static forceinline char *sc_show_flags(char *buf, size_t len, const char *delim, uint flg)
|
||||
{
|
||||
#define _(f, ...) __APPEND_FLAG(buf, len, delim, flg, f, #f, __VA_ARGS__)
|
||||
/* prologue */
|
||||
_(0);
|
||||
/* flags */
|
||||
_(SC_FL_ISBACK, _(SC_FL_NOLINGER, _(SC_FL_NOHALF,
|
||||
_(SC_FL_DONT_WAKE, _(SC_FL_INDEP_STR, _(SC_FL_WONT_READ,
|
||||
_(SC_FL_NEED_BUFF, _(SC_FL_NEED_ROOM))))))));
|
||||
/* epilogue */
|
||||
_(~0U);
|
||||
return buf;
|
||||
#undef _
|
||||
}
|
||||
|
||||
/* A conn stream must have its own errors independently of the buffer's, so that
|
||||
* applications can rely on what the buffer reports while the conn stream is
|
||||
* performing some retries (eg: connection error). Some states are transient and
|
||||
|
Loading…
Reference in New Issue
Block a user