mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 04:47:05 +00:00
2004-07-23 Paul Jakma <paul@dishone.st>
* irdp_main.c: use setsockopt_pktinfo_ipv4 * irdp_packet.c: use SOPT_SIZE_CMSG_PKTINFO_IPV4 and getsockopt_pktinfo_ifindex()
This commit is contained in:
parent
caa248198a
commit
1470bafb7a
@ -1,3 +1,9 @@
|
|||||||
|
2004-07-23 Paul Jakma <paul@dishone.st>
|
||||||
|
|
||||||
|
* irdp_main.c: use setsockopt_pktinfo_ipv4
|
||||||
|
* irdp_packet.c: use SOPT_SIZE_CMSG_PKTINFO_IPV4 and
|
||||||
|
getsockopt_pktinfo_ifindex()
|
||||||
|
|
||||||
2004-07-13 David Wiggins <dwiggins@bbn.com
|
2004-07-13 David Wiggins <dwiggins@bbn.com
|
||||||
|
|
||||||
* kernel_socket.c (rtm_flag_dump): terminate buffer with '\0', not '0'.
|
* kernel_socket.c (rtm_flag_dump): terminate buffer with '\0', not '0'.
|
||||||
|
@ -124,9 +124,7 @@ irdp_sock_init (void)
|
|||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
|
|
||||||
i = 1;
|
ret = setsockopt_pktinfo_ipv4 (irdp_sock, 1);
|
||||||
ret = setsockopt (irdp_sock, IPPROTO_IP, IP_PKTINFO,
|
|
||||||
(void *) &i, sizeof (i));
|
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
zlog_warn ("IRDP: can't do irdp sockopt %s", strerror(errno));
|
zlog_warn ("IRDP: can't do irdp sockopt %s", strerror(errno));
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -186,7 +186,7 @@ int irdp_recvmsg (int sock,
|
|||||||
struct msghdr msg;
|
struct msghdr msg;
|
||||||
struct iovec iov;
|
struct iovec iov;
|
||||||
struct cmsghdr *ptr;
|
struct cmsghdr *ptr;
|
||||||
char adata[1024];
|
char adata[CMSG_SPACE( SOPT_SIZE_CMSG_PKTINFO_IPV4() )];
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
msg.msg_name = (void *)0;
|
msg.msg_name = (void *)0;
|
||||||
@ -214,13 +214,8 @@ int irdp_recvmsg (int sock,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ptr = CMSG_FIRSTHDR(&msg); ptr ; ptr = CMSG_NXTHDR(&msg, ptr))
|
ifindex = getsockopt_pktinfo_ifindex (AF_INET, &msg);
|
||||||
if (ptr->cmsg_level == SOL_IP && ptr->cmsg_type == IP_PKTINFO)
|
|
||||||
{
|
|
||||||
struct in_pktinfo *pktinfo;
|
|
||||||
pktinfo = (struct in_pktinfo *) CMSG_DATA (ptr);
|
|
||||||
*ifindex = pktinfo->ipi_ifindex;
|
|
||||||
}
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user