summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicael Karlberg <bmk@erlang.org>2019-11-22 14:25:30 +0100
committerMicael Karlberg <bmk@erlang.org>2019-11-25 18:30:40 +0100
commita90c99cb18bb82ea8531f43a65cdae3f175e5d86 (patch)
tree3dfad60fe5860a64d79bfaea1fd3263e24bdec24
parentd2a2057abd3ef9e743aff00d8654f0414cb4c2fa (diff)
downloaderlang-a90c99cb18bb82ea8531f43a65cdae3f175e5d86.tar.gz
[esock] Add new sockaddr "type" for family packet
Added the sockaddr_ll used by family packet. And also documentation for same. OTP-16212
-rw-r--r--erts/doc/src/socket.xml6
-rw-r--r--erts/preloaded/ebin/prim_net.beambin1860 -> 5192 bytes
-rw-r--r--erts/preloaded/ebin/socket.beambin78612 -> 78736 bytes
-rw-r--r--erts/preloaded/src/socket.erl13
4 files changed, 18 insertions, 1 deletions
diff --git a/erts/doc/src/socket.xml b/erts/doc/src/socket.xml
index 889c35bf10..08a9889146 100644
--- a/erts/doc/src/socket.xml
+++ b/erts/doc/src/socket.xml
@@ -144,6 +144,12 @@
<name name="sockaddr_un"/>
</datatype>
<datatype>
+ <name name="sockaddr_ll"/>
+ </datatype>
+ <datatype>
+ <name name="packet_type"/>
+ </datatype>
+ <datatype>
<name name="port_number"/>
</datatype>
<datatype>
diff --git a/erts/preloaded/ebin/prim_net.beam b/erts/preloaded/ebin/prim_net.beam
index bbaf916152..b9481777e5 100644
--- a/erts/preloaded/ebin/prim_net.beam
+++ b/erts/preloaded/ebin/prim_net.beam
Binary files differ
diff --git a/erts/preloaded/ebin/socket.beam b/erts/preloaded/ebin/socket.beam
index ba07fc9831..8e45b1373c 100644
--- a/erts/preloaded/ebin/socket.beam
+++ b/erts/preloaded/ebin/socket.beam
Binary files differ
diff --git a/erts/preloaded/src/socket.erl b/erts/preloaded/src/socket.erl
index 8a6641c030..5984b5bda9 100644
--- a/erts/preloaded/src/socket.erl
+++ b/erts/preloaded/src/socket.erl
@@ -86,6 +86,7 @@
sockaddr_in4/0,
sockaddr_in6/0,
sockaddr_un/0,
+ sockaddr_ll/0,
send_flags/0,
send_flag/0,
@@ -322,9 +323,19 @@
addr := any | loopback | ip6_address(),
flowinfo := in6_flow_info(),
scope_id := in6_scope_id()}.
+-type sockaddr_ll() :: #{family := packet,
+ protocol := non_neg_integer(),
+ ifindex := integer(),
+ pkttype := packet_type(),
+ hatype := non_neg_integer(),
+ addr := binary()}.
+-type packet_type() :: host | broadcast | multicast | otherhost |
+ outgoing | loopback | user | kernel | fastroute |
+ non_neg_integer().
-type sockaddr() :: sockaddr_in4() |
sockaddr_in6() |
- sockaddr_un().
+ sockaddr_un() |
+ sockaddr_ll().
-define(SOCKADDR_IN4_DEFAULTS(A), #{port => 0,
addr => A}).