MEDIUM: reload: stop passing listener options along with FDs
authorWilly Tarreau <w@1wt.eu>
Wed, 26 Aug 2020 08:30:09 +0000 (10:30 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 26 Aug 2020 09:04:33 +0000 (11:04 +0200)
commitcf1f193624acb9d5a52f40375bb445e5438dd89e
tree898c30975f8d257179d74dfc043673937b1792a3
parentbf3b06b03d115883714d9e45cccfe185de490c21
MEDIUM: reload: stop passing listener options along with FDs

During a reload operation, we used to send listener options associated
with each passed file descriptor. These were passed as binary contents
for the size of the "options" field in the struct listener. This means
that any flag value change or field size change would be problematic,
the former failing to properly grab certain options, the latter possibly
causing permanent failures during this operation.

Since these two previous commits:
  MINOR: reload: determine the foreing binding status from the socket
  BUG/MINOR: reload: detect the OS's v6only status before choosing an old socket

we don't need this anymore as the values are determined from the file
descriptor itself.

Let's just turn the previous 32 bits to vestigal space, send them as
zeroes and ignore them on receipt. The only possible side effect is if
someone would want to roll back from a 2.3 to 2.2 or earlier, such options
might be ignored during this reload. But other forthcoming changes might
make this fail as well anyway so that's not a reason for keeping this
behavior.
src/cli.c
src/haproxy.c