]> git.proxmox.com Git - mirror_frr.git/commitdiff
ospf6d: ifindex should not be a pointer for ospf6_sendmsg
authorDonald Sharp <sharpd@nvidia.com>
Thu, 29 Oct 2020 10:59:42 +0000 (06:59 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Thu, 29 Oct 2020 11:01:40 +0000 (07:01 -0400)
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 <sharpd@nvidia.com>
ospf6d/ospf6_message.c
ospf6d/ospf6_network.c
ospf6d/ospf6_network.h

index 07089d8774bab5bd529989391c391a414cc83b7e..853e2714cbfd375f6bcf61239068366abd418020 100644 (file)
@@ -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,
index 6c83881bf44e623b8b3e43f288b5f4d8ed866c74..43b6d08b544ece2f735b0589f8bd52f709c32d10 100644 (file)
@@ -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;
index ebd8271175afe12b8ba4f854b1a592cdc9ad46cd..0ec7975e14dd98347ec1f41a72f39e5affed00d4 100644 (file)
@@ -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,