BUG/MINOR: unix: Make sure we can transfer abns sockets on seamless reload.

When checking if a socket we got from the parent is suitable for a listener,
we just checked that the path matched sockname.tmp, however this is
unsuitable for abns sockets, where we don't have to create a temporary
file and rename it later.
To detect that, check that the first character of the sun_path is 0 for
both, and if so, that &sun_path[1] is the same too.

This should be backported to 1.8.
This commit is contained in:
Olivier Houchard 2018-06-06 18:34:34 +02:00 committed by Willy Tarreau
parent b1ca58b245
commit b4dd15bd6f

View File

@ -146,7 +146,12 @@ static int uxst_find_compatible_fd(struct listener *l)
after_sockname++;
if (!strcmp(after_sockname, ".tmp"))
break;
}
/* abns sockets sun_path starts with a \0 */
} else if (un1->sun_path[0] == 0
&& un2->sun_path[0] == 0
&& !memcmp(&un1->sun_path[1], &un2->sun_path[1],
sizeof(un1->sun_path) - 1))
break;
}
xfer_sock = xfer_sock->next;
}