BUG/MINOR: server: incorrect report for tracking servers leaving drain

Report message for tracking servers completely leaving drain is wrong:

The check for "leaving drain .. via" never evaluates because the
condition !(s->next_admin & SRV_ADMF_FDRAIN) is always true in the
current block which is guarded by !(s->next_admin & SRV_ADMF_DRAIN).

For tracking servers that leave inherited drain mode, this results in the
following message being emitted:
  "Server x/b is UP (leaving forced drain)"

Instead of:
  "Server x/b is UP (leaving drain) via x/a"

To this fix: we check if FDRAIN is currently set, else it means that the
drain status is inherited from the tracked server (IDRAIN)

This regression was introduced with 64cc49cf ("MAJOR: servers: propagate server
status changes asynchronously."), thus it may be backported to every stable
versions.

(cherry picked from commit 9a1df02ccb0f40bf93ab7d654363e8706851a81e)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 97d9e7a39536581dfb635f70d021f890946a5700)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 68582b953c56ec4c808b022fe08f1a456580b312)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
1 file changed