summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatsuo Ishii2025-06-05 10:42:40 +0000
committerTatsuo Ishii2025-06-05 10:42:40 +0000
commitf0d0abb4c596c821fb81d8f47e12da75a89cb3fe (patch)
treee58bbfa2831c73b22b0635859be1788b4523f5cb
parentc15a1075a04d2c6089f2d4278d79e22b84500a87 (diff)
Fix heartbeat receiver not working.
65dbbe7a0 added IPv6 support for heartbeat in 4.6. However it mistakenly bound to only loopback addresses in heartbeat receive process. Thus heartbeat messages from other watchdog heartbeat sender were never received. To fix this add AI_PASSIVE flag to hints argument to getaddrinfo(), which results in binding all network interfaces. Note that before 4.6, heartbeat receive process uses INADDR_ANY for bind(), which resulted in binding all network interfaces too. So there's no big difference between 4.6 and pre-4.6. Reviewed-by: Bo Peng <pengbo@sraoss.co.jp> Backpatch-through: v4.6
-rw-r--r--src/watchdog/wd_heartbeat.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/watchdog/wd_heartbeat.c b/src/watchdog/wd_heartbeat.c
index c13e12b6c..561cdfccf 100644
--- a/src/watchdog/wd_heartbeat.c
+++ b/src/watchdog/wd_heartbeat.c
@@ -271,7 +271,7 @@ wd_create_hb_recv_socket(WdHbIf * hb_if)
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = 0;
- hints.ai_flags = AI_NUMERICSERV;
+ hints.ai_flags = AI_NUMERICSERV | AI_PASSIVE;
if ((gai_ret = getaddrinfo(NULL, portstr, &hints, &res)) != 0)
{