From 6fb42e0694a253e1231b6699c544bef60649048a Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sun, 28 Oct 2007 17:02:33 +0100 Subject: [PATCH] [MINOR] add an options field to the listeners --- include/common/errors.h | 1 + include/types/protocols.h | 5 +++++ src/dumpstats.c | 1 + 3 files changed, 7 insertions(+) diff --git a/include/common/errors.h b/include/common/errors.h index 48773109c5..449f2a873c 100644 --- a/include/common/errors.h +++ b/include/common/errors.h @@ -35,6 +35,7 @@ #define ERR_WARN 0x08 /* a warning message has been returned */ #define ERR_ALERT 0x10 /* an alert message has been returned */ +#define ERR_CODE (ERR_RETRYABLE|ERR_FATAL|ERR_ABORT) /* mask */ #endif /* _COMMON_ERRORS_H */ diff --git a/include/types/protocols.h b/include/types/protocols.h index a2b522239d..aef780527e 100644 --- a/include/types/protocols.h +++ b/include/types/protocols.h @@ -40,6 +40,10 @@ #define LI_READY 3 /* started, listening and enabled */ #define LI_FULL 4 /* reached its connection limit */ +/* listener socket options */ +#define LI_O_NONE 0x0000 +#define LI_O_NOLINGER 0x0001 /* disable linger on this socket */ + /* The listener will be directly referenced by the fdtab[] which holds its * socket. The listener provides the protocol-specific accept() function to * the fdtab. @@ -47,6 +51,7 @@ struct listener { int fd; /* the listen socket */ int state; /* state: NEW, INIT, LISTEN, READY, FULL */ + int options; /* socket options : LI_O_* */ struct sockaddr_storage addr; /* the address we listen to */ struct protocol *proto; /* protocol this listener belongs to */ int nbconn; /* current number of connections on this listener */ diff --git a/src/dumpstats.c b/src/dumpstats.c index 4d34c474a1..7126de9c03 100644 --- a/src/dumpstats.c +++ b/src/dumpstats.c @@ -76,6 +76,7 @@ int stats_parse_global(const char **args, char *err, int errlen) memcpy(&global.stats_sock.addr, &su, sizeof(su)); // guaranteed to fit global.stats_sock.state = LI_INIT; + global.stats_sock.options = LI_O_NONE; global.stats_sock.accept = uxst_event_accept; global.stats_sock.handler = process_uxst_stats; global.stats_sock.private = NULL;