diff options
author | Ingela Anderton Andin <[email protected]> | 2019-06-17 11:51:12 +0200 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2019-06-17 11:57:37 +0200 |
commit | 585b41ca6ffbecee4cc5617c41069edd9867c8e4 (patch) | |
tree | 1b67a2d17fa6bd21b7e3ea11287b6e7516697cb4 /lib/kernel/src/inet_udp.erl | |
parent | e233ca13bedc193ebee800f4bfe6c6afe2ffd1bc (diff) | |
parent | abf6018726321a920948d9ba6dcea7f4047a4e4a (diff) | |
download | otp-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.erl | 23 |
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). |