diff options
author | Raimo Niskanen <[email protected]> | 2013-11-25 14:27:40 +0100 |
---|---|---|
committer | Raimo Niskanen <[email protected]> | 2013-11-25 14:35:21 +0100 |
commit | c4592b6941cf66cd89fb8f9664e021151dc11b8d (patch) | |
tree | 9b251bc01e00fa49279d3c3f33cb4cd83e759cd1 /lib/kernel/src | |
parent | 01529a8de0f17acb29dfe5beaa6ad62587ed8e18 (diff) | |
parent | b9278a19e1abdb80d93833773f4b9c431958bdcb (diff) | |
download | otp-c4592b6941cf66cd89fb8f9664e021151dc11b8d.tar.gz otp-c4592b6941cf66cd89fb8f9664e021151dc11b8d.tar.bz2 otp-c4592b6941cf66cd89fb8f9664e021151dc11b8d.zip |
Merge branch 'raimo/sctp-peernames/OTP-10229' into maint-r16
* raimo/sctp-peernames/OTP-10229:
Improve documentation
Suppress false valgrind warnings caused by sctp_getpaddrs
Document
Adjust test cases for SLES 10 SP 1
Clean up address family handling towards Erlang
Fix testcase indentation
Fix testcases for FreeBSD 9.1
Write testcases for inet:socknames and inet:peernames
Implement inet:socknames/1,2 and inet:peernames/1,2
Implement prim_inet:socknames/1,2 and prim_inet:peernames/1,2
Diffstat (limited to 'lib/kernel/src')
-rw-r--r-- | lib/kernel/src/inet.erl | 39 | ||||
-rw-r--r-- | lib/kernel/src/inet_int.hrl | 2 |
2 files changed, 41 insertions, 0 deletions
diff --git a/lib/kernel/src/inet.erl b/lib/kernel/src/inet.erl index 27f085c3aa..99373f3d9d 100644 --- a/lib/kernel/src/inet.erl +++ b/lib/kernel/src/inet.erl @@ -24,6 +24,7 @@ %% socket -export([peername/1, sockname/1, port/1, send/2, + peernames/1, peernames/2, socknames/1, socknames/2, setopts/2, getopts/2, getifaddrs/0, getifaddrs/1, getif/1, getif/0, getiflist/0, getiflist/1, @@ -146,6 +147,7 @@ close(Socket) -> ok end. + -spec peername(Socket) -> {ok, {Address, Port}} | {error, posix()} when Socket :: socket(), Address :: ip_address(), @@ -162,6 +164,24 @@ setpeername(Socket, {IP,Port}) -> setpeername(Socket, undefined) -> prim_inet:setpeername(Socket, undefined). +-spec peernames(Socket) -> {ok, [{Address, Port}]} | {error, posix()} when + Socket :: socket(), + Address :: ip_address(), + Port :: non_neg_integer(). + +peernames(Socket) -> + prim_inet:peernames(Socket). + +-spec peernames(Socket, Assoc) -> + {ok, [{Address, Port}]} | {error, posix()} when + Socket :: socket(), + Assoc :: #sctp_assoc_change{} | gen_sctp:assoc_id(), + Address :: ip_address(), + Port :: non_neg_integer(). + +peernames(Socket, Assoc) -> + prim_inet:peernames(Socket, Assoc). + -spec sockname(Socket) -> {ok, {Address, Port}} | {error, posix()} when Socket :: socket(), @@ -179,6 +199,25 @@ setsockname(Socket, {IP,Port}) -> setsockname(Socket, undefined) -> prim_inet:setsockname(Socket, undefined). +-spec socknames(Socket) -> {ok, [{Address, Port}]} | {error, posix()} when + Socket :: socket(), + Address :: ip_address(), + Port :: non_neg_integer(). + +socknames(Socket) -> + prim_inet:socknames(Socket). + +-spec socknames(Socket, Assoc) -> + {ok, [{Address, Port}]} | {error, posix()} when + Socket :: socket(), + Assoc :: #sctp_assoc_change{} | gen_sctp:assoc_id(), + Address :: ip_address(), + Port :: non_neg_integer(). + +socknames(Socket, Assoc) -> + prim_inet:socknames(Socket, Assoc). + + -spec port(Socket) -> {'ok', Port} | {'error', any()} when Socket :: socket(), Port :: port_number(). diff --git a/lib/kernel/src/inet_int.hrl b/lib/kernel/src/inet_int.hrl index 18a4a61b2f..641a8dc0ca 100644 --- a/lib/kernel/src/inet_int.hrl +++ b/lib/kernel/src/inet_int.hrl @@ -86,6 +86,8 @@ -define(INET_REQ_ACCEPT, 26). -define(INET_REQ_LISTEN, 27). -define(INET_REQ_IGNOREFD, 28). +-define(INET_REQ_GETLADDRS, 29). +-define(INET_REQ_GETPADDRS, 30). %% TCP requests %%-define(TCP_REQ_ACCEPT, 40). MOVED |