From: Donald Sharp Date: Thu, 29 Oct 2020 10:59:42 +0000 (-0400) Subject: ospf6d: ifindex should not be a pointer for ospf6_sendmsg X-Git-Tag: base_7.6~334^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=b66ec22ca9b227c4b7f78f71918be7eff30fb552;p=matthieu%2Ffrr.git ospf6d: ifindex should not be a pointer for ospf6_sendmsg Let's cleanup the ospf6_sendmsg api and not pass in a pointer to the ifindex to use. It's an integer. Also remove the assert(*ifindex); We never use ifindex of 0 Signed-off-by: Donald Sharp --- diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c index 07089d8774..853e2714cb 100644 --- a/ospf6d/ospf6_message.c +++ b/ospf6d/ospf6_message.c @@ -1701,7 +1701,7 @@ static void ospf6_send(struct in6_addr *src, struct in6_addr *dst, /* send message */ if (oi->area->ospf6->fd != -1) { - len = ospf6_sendmsg(src, dst, &oi->interface->ifindex, iovector, + len = ospf6_sendmsg(src, dst, oi->interface->ifindex, iovector, oi->area->ospf6->fd); if (len != ntohs(oh->length)) flog_err(EC_LIB_DEVELOPMENT, diff --git a/ospf6d/ospf6_network.c b/ospf6d/ospf6_network.c index 6c83881bf4..43b6d08b54 100644 --- a/ospf6d/ospf6_network.c +++ b/ospf6d/ospf6_network.c @@ -171,7 +171,7 @@ static int iov_totallen(struct iovec *iov) } int ospf6_sendmsg(struct in6_addr *src, struct in6_addr *dst, - ifindex_t *ifindex, struct iovec *message, int ospf6_sock) + ifindex_t ifindex, struct iovec *message, int ospf6_sock) { int retval; struct msghdr smsghdr; @@ -184,7 +184,6 @@ int ospf6_sendmsg(struct in6_addr *src, struct in6_addr *dst, struct sockaddr_in6 dst_sin6; assert(dst); - assert(*ifindex); memset(&cmsgbuf, 0, sizeof(cmsgbuf)); scmsgp = (struct cmsghdr *)&cmsgbuf; @@ -192,7 +191,7 @@ int ospf6_sendmsg(struct in6_addr *src, struct in6_addr *dst, memset(&dst_sin6, 0, sizeof(struct sockaddr_in6)); /* source address */ - pktinfo->ipi6_ifindex = *ifindex; + pktinfo->ipi6_ifindex = ifindex; if (src) memcpy(&pktinfo->ipi6_addr, src, sizeof(struct in6_addr)); else @@ -204,7 +203,7 @@ int ospf6_sendmsg(struct in6_addr *src, struct in6_addr *dst, dst_sin6.sin6_len = sizeof(struct sockaddr_in6); #endif /*SIN6_LEN*/ memcpy(&dst_sin6.sin6_addr, dst, sizeof(struct in6_addr)); - dst_sin6.sin6_scope_id = *ifindex; + dst_sin6.sin6_scope_id = ifindex; /* send control msg */ scmsgp->cmsg_level = IPPROTO_IPV6; @@ -223,7 +222,7 @@ int ospf6_sendmsg(struct in6_addr *src, struct in6_addr *dst, retval = sendmsg(ospf6_sock, &smsghdr, 0); if (retval != iov_totallen(message)) - zlog_warn("sendmsg failed: ifindex: %d: %s (%d)", *ifindex, + zlog_warn("sendmsg failed: ifindex: %d: %s (%d)", ifindex, safe_strerror(errno), errno); return retval; diff --git a/ospf6d/ospf6_network.h b/ospf6d/ospf6_network.h index ebd8271175..0ec7975e14 100644 --- a/ospf6d/ospf6_network.h +++ b/ospf6d/ospf6_network.h @@ -29,7 +29,7 @@ extern void ospf6_serv_close(int *ospf6_sock); extern int ospf6_sso(ifindex_t ifindex, struct in6_addr *group, int option); extern int ospf6_sendmsg(struct in6_addr *src, struct in6_addr *dst, - ifindex_t *ifindex, struct iovec *message, + ifindex_t ifindex, struct iovec *message, int ospf6_sock); extern int ospf6_recvmsg(struct in6_addr *src, struct in6_addr *dst, ifindex_t *ifindex, struct iovec *message,