diff --git a/include/types/server.h b/include/types/server.h index d7e6da0b8..f6a7171bf 100644 --- a/include/types/server.h +++ b/include/types/server.h @@ -122,7 +122,7 @@ struct server { int curfd; /* file desc used for current test, or -1 if not in test */ char *id; /* just for identification */ - unsigned uweight, eweight; /* user-specified weight, and effective weight */ + unsigned iweight,uweight, eweight; /* initial weight, user-specified weight, and effective weight */ unsigned wscore; /* weight score, used during srv map computation */ unsigned prev_eweight; /* eweight before last change */ unsigned rweight; /* remainer of weight in the current LB tree */ diff --git a/src/cfgparse.c b/src/cfgparse.c index 4eade38e8..428d7b93a 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -2538,7 +2538,7 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm) newsrv->rise = DEF_RISETIME; newsrv->fall = DEF_FALLTIME; newsrv->health = newsrv->rise; /* up, but will fall down at first failure */ - newsrv->uweight = 1; + newsrv->uweight = newsrv->iweight = 1; newsrv->maxqueue = 0; newsrv->slowstart = 0; @@ -2695,7 +2695,7 @@ int cfg_parse_listen(const char *file, int linenum, char **args, int kwm) err_code |= ERR_ALERT | ERR_FATAL; goto out; } - newsrv->uweight = w; + newsrv->uweight = newsrv->iweight = w; cur_arg += 2; } else if (!strcmp(args[cur_arg], "minconn")) {