diff --git a/include/types/server.h b/include/types/server.h index ee3179443..40b830839 100644 --- a/include/types/server.h +++ b/include/types/server.h @@ -75,8 +75,8 @@ enum srv_state { enum srv_admin { 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_MAINT = 0x03, /* mask to check if any maintenance flag is present */ 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 */ diff --git a/src/server.c b/src/server.c index 49ab68b0c..32a884f06 100644 --- a/src/server.c +++ b/src/server.c @@ -1278,6 +1278,7 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr } 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; newsrv->check.health = 0;