]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[MEDIUM] in the request, always consider empty cookies as invalid.
authorwilly tarreau <willy@wtap.(none)>
Wed, 10 May 2006 02:27:21 +0000 (04:27 +0200)
committerwilly tarreau <willy@wtap.(none)>
Wed, 10 May 2006 02:27:21 +0000 (04:27 +0200)
This solves a problem of unwanted stickyness to backup servers when some
clients incidentely memorize an empty cookie.

haproxy.c

index 0ca75caba5c13379088efcfc0313d4a81f7ecb19..bdcb58232df06b86e72959578bd34627d640bead 100644 (file)
--- a/haproxy.c
+++ b/haproxy.c
@@ -4082,7 +4082,13 @@ int process_cli(struct session *t) {
                            /* Here, we'll look for the first running server which supports the cookie.
                             * This allows to share a same cookie between several servers, for example
                             * to dedicate backup servers to specific servers only.
+                            * However, to prevent clients from sticking to cookie-less backup server
+                            * when they have incidentely learned an empty cookie, we simply ignore
+                            * empty cookies and mark them as invalid.
                             */
+                           if (delim == p3)
+                               srv = NULL;
+
                            while (srv) {
                                if ((srv->cklen == delim - p3) && !memcmp(p3, srv->cookie, delim - p3)) {
                                    if (srv->state & SRV_RUNNING || t->proxy->options & PR_O_PERSIST) {