diff options
Diffstat (limited to 'src/plugins/ipmi_intf.c')
-rw-r--r-- | src/plugins/ipmi_intf.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/ipmi_intf.c b/src/plugins/ipmi_intf.c index 19ba5e3..6cf0553 100644 --- a/src/plugins/ipmi_intf.c +++ b/src/plugins/ipmi_intf.c @@ -31,6 +31,7 @@ */ #define _XOPEN_SOURCE 700 #define _GNU_SOURCE 1 +#define _DARWIN_C_SOURCE 1 #include <stdio.h> #include <stdlib.h> @@ -451,7 +452,7 @@ ipmi_intf_socket_connect(struct ipmi_intf * intf) } /* OK, now try to connect with the scope id from this interface address */ - if (addr6->sin6_scope_id != 0) { + if (addr6->sin6_scope_id != 0 || !IN6_IS_ADDR_LINKLOCAL(&tmp6->sin6_addr)) { if (connect(intf->fd, rp->ai_addr, rp->ai_addrlen) != -1) { hints.ai_family = rp->ai_family; lprintf(LOG_DEBUG, "Successful connected on %s interface with scope id %d", ifa->ifa_name, tmp6->sin6_scope_id); |