aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src/inet_udp.erl
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2019-06-17 11:51:12 +0200
committerIngela Anderton Andin <[email protected]>2019-06-17 11:57:37 +0200
commit585b41ca6ffbecee4cc5617c41069edd9867c8e4 (patch)
tree1b67a2d17fa6bd21b7e3ea11287b6e7516697cb4 /lib/kernel/src/inet_udp.erl
parente233ca13bedc193ebee800f4bfe6c6afe2ffd1bc (diff)
parentabf6018726321a920948d9ba6dcea7f4047a4e4a (diff)
downloadotp-585b41ca6ffbecee4cc5617c41069edd9867c8e4.tar.gz
otp-585b41ca6ffbecee4cc5617c41069edd9867c8e4.tar.bz2
otp-585b41ca6ffbecee4cc5617c41069edd9867c8e4.zip
Merge branch 'ingela/raimo/udp-send-TOS/ERIERL-294/OTP-15747' into ingela/merge-294
* ingela/raimo/udp-send-TOS/ERIERL-294/OTP-15747: Introduce udp send ancillary data argument down to inet_drv Fix old warnings
Diffstat (limited to 'lib/kernel/src/inet_udp.erl')
-rw-r--r--lib/kernel/src/inet_udp.erl23
1 files changed, 16 insertions, 7 deletions
diff --git a/lib/kernel/src/inet_udp.erl b/lib/kernel/src/inet_udp.erl
index 1e624b9e90..083059a2dc 100644
--- a/lib/kernel/src/inet_udp.erl
+++ b/lib/kernel/src/inet_udp.erl
@@ -66,16 +66,25 @@ open(Port, Opts) ->
{ok, _} -> exit(badarg)
end.
-send(S, {A,B,C,D} = Addr, P, Data)
- when ?ip(A,B,C,D), ?port(P) ->
- prim_inet:sendto(S, Addr, P, Data).
+send(S, {A,B,C,D} = IP, Port, Data)
+ when ?ip(A,B,C,D), ?port(Port) ->
+ prim_inet:sendto(S, {IP, Port}, [], Data);
+send(S, {{A,B,C,D}, Port} = Addr, AncData, Data)
+ when ?ip(A,B,C,D), ?port(Port), is_list(AncData) ->
+ prim_inet:sendto(S, Addr, AncData, Data);
+send(S, {?FAMILY, {{A,B,C,D}, Port}} = Address, AncData, Data)
+ when ?ip(A,B,C,D), ?port(Port), is_list(AncData) ->
+ prim_inet:sendto(S, Address, AncData, Data);
+send(S, {?FAMILY, {loopback, Port}} = Address, AncData, Data)
+ when ?port(Port), is_list(AncData) ->
+ prim_inet:sendto(S, Address, AncData, Data).
send(S, Data) ->
- prim_inet:sendto(S, {0,0,0,0}, 0, Data).
+ prim_inet:sendto(S, {any, 0}, [], Data).
-connect(S, Addr = {A,B,C,D}, P)
- when ?ip(A,B,C,D), ?port(P) ->
- prim_inet:connect(S, Addr, P).
+connect(S, Addr = {A,B,C,D}, Port)
+ when ?ip(A,B,C,D), ?port(Port) ->
+ prim_inet:connect(S, Addr, Port).
recv(S, Len) ->
prim_inet:recvfrom(S, Len).