From: Baptiste Assmann Date: Sat, 8 Aug 2015 13:49:13 +0000 (+0200) Subject: MINOR: server: add new SRV_ADMF_CMAINT flag X-Git-Tag: v1.6-dev4~100 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f5ada32e44ae444c7eeb6961b08d1940106822f;p=thirdparty%2Fhaproxy.git MINOR: server: add new SRV_ADMF_CMAINT flag The purpose of SRV_ADMF_CMAINT flag is to keep in mind the server was forced to maintenance status because of the configuration file. --- diff --git a/include/types/server.h b/include/types/server.h index cbeead9bde..ee3179443c 100644 --- a/include/types/server.h +++ b/include/types/server.h @@ -73,12 +73,13 @@ enum srv_state { * state_str = (state & MAINT) ? "MAINT" : (state & DRAIN) : "DRAIN" : "READY" */ enum srv_admin { - SRV_ADMF_FMAINT = 0x1, /* the server was explicitly forced into maintenance */ - SRV_ADMF_IMAINT = 0x2, /* the server has inherited the maintenance status from a tracked server */ - SRV_ADMF_MAINT = 0x3, /* mask to check if any maintenance flag is present */ - SRV_ADMF_FDRAIN = 0x4, /* the server was explicitly forced into drain state */ - SRV_ADMF_IDRAIN = 0x8, /* the server has inherited the drain status from a tracked server */ - SRV_ADMF_DRAIN = 0xC, /* mask to check if any drain flag is present */ + SRV_ADMF_FMAINT = 0x01, /* the server was explicitly forced into maintenance */ + SRV_ADMF_IMAINT = 0x02, /* the server has inherited the maintenance status from a tracked server */ + SRV_ADMF_CMAINT = 0x04, /* the server is in maintenance because of the configuration */ + SRV_ADMF_MAINT = 0x07, /* mask to check if any maintenance flag is present */ + SRV_ADMF_FDRAIN = 0x08, /* the server was explicitly forced into drain state */ + SRV_ADMF_IDRAIN = 0x10, /* the server has inherited the drain status from a tracked server */ + SRV_ADMF_DRAIN = 0x18, /* mask to check if any drain flag is present */ }; /* server flags */ diff --git a/src/server.c b/src/server.c index b7a498c262..5a3f60ae75 100644 --- a/src/server.c +++ b/src/server.c @@ -1294,6 +1294,7 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr cur_arg += 1; } else if (!defsrv && !strcmp(args[cur_arg], "disabled")) { + newsrv->admin |= SRV_ADMF_CMAINT; newsrv->admin |= SRV_ADMF_FMAINT; newsrv->state = SRV_ST_STOPPED; newsrv->check.state |= CHK_ST_PAUSED;