mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-22 14:49:45 -04:00
MINOR server: Restrict dynamic cookie check to the same proxy.
Each time we generate a dynamic cookie, we try to make sure the same cookie hasn't been generated for another server, it's very unlikely, but it may happen. We only have to check that for the servers in the same proxy, no, need to check in others, plus the code was buggy and would always check in the first proxy of the proxy list.
This commit is contained in:
parent
c28bb55cdc
commit
b4a2d5e19a
1 changed files with 10 additions and 11 deletions
21
src/server.c
21
src/server.c
|
|
@ -135,18 +135,17 @@ void srv_set_dyncookie(struct server *s)
|
|||
* Check that we did not get a hash collision.
|
||||
* Unlikely, but it can happen.
|
||||
*/
|
||||
for (p = proxy; p != NULL; p = p->next)
|
||||
for (tmpserv = proxy->srv; tmpserv != NULL;
|
||||
tmpserv = tmpserv->next) {
|
||||
if (tmpserv == s)
|
||||
continue;
|
||||
if (tmpserv->cookie &&
|
||||
strcmp(tmpserv->cookie, s->cookie) == 0) {
|
||||
Warning("We generated two equal cookies for two different servers.\n"
|
||||
"Please change the secret key for '%s'.\n",
|
||||
s->proxy->id);
|
||||
}
|
||||
for (tmpserv = p->srv; tmpserv != NULL;
|
||||
tmpserv = tmpserv->next) {
|
||||
if (tmpserv == s)
|
||||
continue;
|
||||
if (tmpserv->cookie &&
|
||||
strcmp(tmpserv->cookie, s->cookie) == 0) {
|
||||
Warning("We generated two equal cookies for two different servers.\n"
|
||||
"Please change the secret key for '%s'.\n",
|
||||
s->proxy->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue