summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ospf6d/ospf6_message.c2
-rw-r--r--ospf6d/ospf6_network.c10
-rw-r--r--ospf6d/ospf6_network.h10
3 files changed, 12 insertions, 10 deletions
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..94e80b0f28 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,8 @@ 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: source: %pI6 Dest: %pI6 ifindex: %d: %s (%d)",
+ src, dst, ifindex,
safe_strerror(errno), errno);
return retval;
diff --git a/ospf6d/ospf6_network.h b/ospf6d/ospf6_network.h
index d11a611c49..0ec7975e14 100644
--- a/ospf6d/ospf6_network.h
+++ b/ospf6d/ospf6_network.h
@@ -28,9 +28,11 @@ extern int ospf6_serv_sock(struct ospf6 *ospf6);
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 *, struct in6_addr *, ifindex_t *,
- struct iovec *, int ospf6_sock);
-extern int ospf6_recvmsg(struct in6_addr *, struct in6_addr *, ifindex_t *,
- struct iovec *, int ospf6_sock);
+extern int ospf6_sendmsg(struct in6_addr *src, struct in6_addr *dst,
+ 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,
+ int ospf6_sock);
#endif /* OSPF6_NETWORK_H */