Browse Source

IPv6 socket requires IPv4 PKTINFO for setting source address correctly

git.mgm/mediaproxy-ng/2.1
Richard Fuchs 14 years ago
parent
commit
37013fd148
1 changed files with 4 additions and 0 deletions
  1. +4
    -0
      daemon/call.c

+ 4
- 0
daemon/call.c View File

@ -287,6 +287,7 @@ forward:
mh.msg_name = &sin;
mh.msg_namelen = sizeof(sin);
ipv4_src:
ch->cmsg_len = CMSG_LEN(sizeof(*pi));
ch->cmsg_level = IPPROTO_IP;
ch->cmsg_type = IP_PKTINFO;
@ -307,6 +308,9 @@ forward:
mh.msg_name = &sin6;
mh.msg_namelen = sizeof(sin6);
if (IN6_IS_ADDR_V4MAPPED(&sin6.sin6_addr))
goto ipv4_src;
ch->cmsg_len = CMSG_LEN(sizeof(*pi6));
ch->cmsg_level = IPPROTO_IPV6;
ch->cmsg_type = IPV6_PKTINFO;


Loading…
Cancel
Save