From ee2eadd1c61d4237ee4044260665c82edf559228 Mon Sep 17 00:00:00 2001 From: Micael Karlberg Date: Fri, 3 Aug 2018 18:55:30 +0200 Subject: [socket-nif] Add support for (recvmsg) control message ipv6_pktinfo Added support for (recvmsg) control message ipv6_pktinfo, for level = ipv6 and type = pktinfo. This is enabled by setting the socket option: recvpktinfo for level ipv6. Not yet tested! OTP-14831 --- erts/preloaded/ebin/socket.beam | Bin 64540 -> 64588 bytes erts/preloaded/src/socket.erl | 7 +++++++ 2 files changed, 7 insertions(+) (limited to 'erts/preloaded') diff --git a/erts/preloaded/ebin/socket.beam b/erts/preloaded/ebin/socket.beam index 125191c1d0..5b14af3ad8 100644 Binary files a/erts/preloaded/ebin/socket.beam and b/erts/preloaded/ebin/socket.beam differ diff --git a/erts/preloaded/src/socket.erl b/erts/preloaded/src/socket.erl index 3d65f52a2b..8af052e149 100644 --- a/erts/preloaded/src/socket.erl +++ b/erts/preloaded/src/socket.erl @@ -228,6 +228,12 @@ -type ipv6_pmtudisc() :: ip_pmtudisc(). +-type ipv6_pktinfo() :: #{ + addr := ip6_address(), + ifindex := integer() + }. + + -type sctp_assoc_id() :: int32(). -type sctp_sndrcvinfo() :: #{ stream := uint16(), @@ -560,6 +566,7 @@ integer(). -type cmsghdr_data() :: timeval() | % if level = socket and type = timstamp ip_pktinfo() | % if level = ip and type = pktinfo + ipv6_pktinfo() | % if level = ipv6 and type = pktinfo ip_tos() | % if level = ip and type = tos integer() | % if level = ip and type = ttl sockaddr_in4() | % if level = ip and type = origdstaddr -- cgit v1.2.3