diff --git a/pimd/pim_autorp.c b/pimd/pim_autorp.c index f050397c4f..8f3b8de3cd 100644 --- a/pimd/pim_autorp.c +++ b/pimd/pim_autorp.c @@ -540,9 +540,13 @@ static void autorp_send_announcement(struct event *evt) inet_pton(PIM_AF, PIM_AUTORP_ANNOUNCEMENT_GRP, &announceGrp.sin_addr); if (autorp->annouce_pkt_sz >= MIN_AUTORP_PKT_SZ) { - setsockopt(autorp->sock, IPPROTO_IP, IP_MULTICAST_TTL, - &(autorp->announce_scope), - sizeof(autorp->announce_scope)); + if (setsockopt(autorp->sock, IPPROTO_IP, IP_MULTICAST_TTL, + &(autorp->announce_scope), + sizeof(autorp->announce_scope)) < 0) { + if (PIM_DEBUG_AUTORP) + zlog_err("%s: Failed to set Multicast TTL for sending AutoRP announcement message, errno=%d, %s", + __func__, errno, safe_strerror(errno)); + } FOR_ALL_INTERFACES (autorp->pim->vrf, ifp) { pim_ifp = ifp->info; @@ -553,10 +557,16 @@ static void autorp_send_announcement(struct event *evt) pim_ifp && pim_ifp->pim_enable && !pim_ifp->pim_passive_enable && !pim_addr_is_any(pim_ifp->primary_address)) { - setsockopt(autorp->sock, IPPROTO_IP, - IP_MULTICAST_IF, - &(pim_ifp->primary_address), - sizeof(pim_ifp->primary_address)); + if (setsockopt(autorp->sock, IPPROTO_IP, + IP_MULTICAST_IF, + &(pim_ifp->primary_address), + sizeof(pim_ifp->primary_address)) < + 0) { + if (PIM_DEBUG_AUTORP) + zlog_err("%s: Failed to set Multicast Interface for sending AutoRP announcement message, errno=%d, %s", + __func__, errno, + safe_strerror(errno)); + } if (sendto(autorp->sock, autorp->annouce_pkt, autorp->annouce_pkt_sz, 0, (struct sockaddr *)&announceGrp,