From 08fa52a82648fe0fd00492ea68055ceab07319e8 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Mon, 17 Feb 2020 19:24:16 -0500 Subject: [PATCH] zebra: SO_BROADCAST needs a uint32_t instead of a uint8_t Using SO_BROADCAST, in the linux kernel, requires a uint32_t to be passed in for all SOL_SOCKET calls. Modify code to use it. Signed-off-by: Donald Sharp --- zebra/irdp_packet.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/zebra/irdp_packet.c b/zebra/irdp_packet.c index f6fe6bbf1e..ae11bc5a64 100644 --- a/zebra/irdp_packet.c +++ b/zebra/irdp_packet.c @@ -319,9 +319,10 @@ void send_packet(struct interface *ifp, struct stream *s, uint32_t dst, if (dst == INADDR_BROADCAST) { - on = 1; - if (setsockopt(irdp_sock, SOL_SOCKET, SO_BROADCAST, (char *)&on, - sizeof(on)) + uint32_t bon = 1; + + if (setsockopt(irdp_sock, SOL_SOCKET, SO_BROADCAST, &bon, + sizeof(bon)) < 0) zlog_debug("sendto %s", safe_strerror(errno)); }