From: Donald Sharp Date: Thu, 30 Jun 2022 12:03:02 +0000 (-0400) Subject: zebra: Realign SOL_NETLINK to warn when FRR does not have it X-Git-Tag: base_8.4~281^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=refs%2Fpull%2F11507%2Fhead;p=mirror%2Ffrr.git zebra: Realign SOL_NETLINK to warn when FRR does not have it There exists a possibility that an end operator has choosen to compile FRR on an extremely old KERNEL that does not support the SOL_NETLINK sockopt call. If so let's note it for them instead of stuff silently not working. Signed-off-by: Donald Sharp --- diff --git a/zebra/kernel_netlink.c b/zebra/kernel_netlink.c index e372eaf6a2..31d8294a0f 100644 --- a/zebra/kernel_netlink.c +++ b/zebra/kernel_netlink.c @@ -322,11 +322,11 @@ static int netlink_socket(struct nlsock *nl, unsigned long groups, snl.nl_family = AF_NETLINK; snl.nl_groups = groups; -#if defined SOL_NETLINK if (ext_group_size) { uint8_t i; for (i = 0; i < ext_group_size; i++) { +#if defined SOL_NETLINK ret = setsockopt(sock, SOL_NETLINK, NETLINK_ADD_MEMBERSHIP, &ext_groups[i], @@ -338,9 +338,14 @@ static int netlink_socket(struct nlsock *nl, unsigned long groups, ext_groups[i], safe_strerror(errno), errno); } +#else + zlog_notice( + "Unable to use NETLINK_ADD_MEMBERSHIP via SOL_NETLINK for %s(%u) since the linux kernel does not support the socket option", + group2str(ext_groups[i]), + ext_groups[i]); +#endif } } -#endif /* Bind the socket to the netlink structure for anything. */ ret = bind(sock, (struct sockaddr *)&snl, sizeof(snl));