{
struct openvpn_sockaddr sa;
CLEAR (sa);
+ sa.addr.in4.sin_family = AF_INET;
sa.addr.in4.sin_addr = act->pi.in4.ipi_spec_dst;
buf_printf (&out, " (via %s)", print_sockaddr_ex (&sa, separator, 0, gc));
}
struct openvpn_in4_pktinfo
{
struct cmsghdr cmsghdr;
- struct in_pktinfo pi;
+ struct in_pktinfo pi4;
};
#ifdef USE_PF_INET6
struct openvpn_in6_pktinfo
#endif
union openvpn_pktinfo {
- struct openvpn_in4_pktinfo cmsgpi;
+ struct openvpn_in4_pktinfo msgpi4;
#ifdef USE_PF_INET6
- struct openvpn_in6_pktinfo cmsgpi6;
+ struct openvpn_in6_pktinfo msgpi6;
#endif
};
#pragma pack()
mesg.msg_name = &from->dest.addr;
mesg.msg_namelen = fromlen;
mesg.msg_control = &opi;
- mesg.msg_controllen = sizeof (opi);
+ mesg.msg_controllen = sizeof opi;
buf->len = recvmsg (sock->sd, &mesg, 0);
if (buf->len >= 0)
{
&& CMSG_NXTHDR (&mesg, cmsg) == NULL
&& cmsg->cmsg_level == SOL_IP
&& cmsg->cmsg_type == IP_PKTINFO
- && cmsg->cmsg_len >= sizeof (opi))
+ && cmsg->cmsg_len >= sizeof (struct openvpn_in4_pktinfo))
{
struct in_pktinfo *pkti = (struct in_pktinfo *) CMSG_DATA (cmsg);
from->pi.in4.ipi_ifindex = pkti->ipi_ifindex;
{
case AF_INET:
{
- struct openvpn_in4_pktinfo opi;
+ struct openvpn_in4_pktinfo msgpi4;
struct in_pktinfo *pkti;
mesg.msg_name = &to->dest.addr.sa;
mesg.msg_namelen = sizeof (struct sockaddr_in);
- mesg.msg_control = &opi;
- mesg.msg_controllen = sizeof (opi);
+ mesg.msg_control = &msgpi4;
+ mesg.msg_controllen = sizeof msgpi4;
mesg.msg_flags = 0;
cmsg = CMSG_FIRSTHDR (&mesg);
- cmsg->cmsg_len = sizeof (opi);
+ cmsg->cmsg_len = sizeof (struct openvpn_in4_pktinfo);
cmsg->cmsg_level = SOL_IP;
cmsg->cmsg_type = IP_PKTINFO;
pkti = (struct in_pktinfo *) CMSG_DATA (cmsg);
#ifdef USE_PF_INET6
case AF_INET6:
{
- struct openvpn_in6_pktinfo opi6;
+ struct openvpn_in6_pktinfo msgpi6;
struct in6_pktinfo *pkti6;
mesg.msg_name = &to->dest.addr.sa;
mesg.msg_namelen = sizeof (struct sockaddr_in6);
- mesg.msg_control = &opi6;
- mesg.msg_controllen = sizeof (opi6);
+ mesg.msg_control = &msgpi6;
+ mesg.msg_controllen = sizeof msgpi6;
mesg.msg_flags = 0;
cmsg = CMSG_FIRSTHDR (&mesg);
- cmsg->cmsg_len = sizeof (opi6);
+ cmsg->cmsg_len = sizeof (struct openvpn_in6_pktinfo);
cmsg->cmsg_level = IPPROTO_IPV6;
cmsg->cmsg_type = IPV6_PKTINFO;
pkti6 = (struct in6_pktinfo *) CMSG_DATA (cmsg);