On Wed, Mar 27, 2024 at 02:34:25PM +0000, Damien Claisse wrote: > When adding a server dynamically, we observe that when a backend has a > dynamic persistence cookie, the new server has no cookie as we receive > the following HTTP header: > set-cookie: test-cookie=; Expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/ > Whereas we were expecting to receive something like the following, which > is what we receive for a server added in the config file: > set-cookie: test-cookie=abcdef1234567890; path=/ > After investigating code path, srv_set_dyncookie() is never called when > adding a server through CLI, it is only called when parsing config file > or using "set server bkd1/srv1 addr". > To fix this, call srv_set_dyncookie() inside cli_parse_add_server(). > This patch must be backported up to 2.4. > --- > src/server.c | 5 +++++ > 1 file changed, 5 insertions(+) > diff --git a/src/server.c b/src/server.c > index 555cae82c..a93798f03 100644 > --- a/src/server.c > +++ b/src/server.c > @@ -5732,6 +5732,11 @@ static int cli_parse_add_server(char **args, char > *payload, struct appctx *appct > */ > srv->rid = (srv_id_reuse_cnt) ? (srv_id_reuse_cnt / 2) : 0; > > + /* generate new server's dynamic cookie if enabled on backend */ > + if (be->ck_opts & PR_CK_DYNAMIC) { > + srv_set_dyncookie(srv); > + } > + > /* adding server cannot fail when we reach this: > * publishing EVENT_HDL_SUB_SERVER_ADD > */ > -- > 2.34.1 >
Thank you very much. This was merged in our development tree. In the meantime, I also enabled "cookie" keyword for dynamic servers as nothing prevented it. -- Amaury Denoyelle