diff options
author | Micael Karlberg <[email protected]> | 2019-05-17 12:04:48 +0200 |
---|---|---|
committer | Micael Karlberg <[email protected]> | 2019-05-29 13:47:40 +0200 |
commit | 5345f3d6fcb78acbe65803109f035cc979ad2199 (patch) | |
tree | e6344393b0f48357b8e42d39a443812d5511a6b2 | |
parent | 3ec5549972b672b0d177fb1eeb89addf184c13ef (diff) | |
download | otp-5345f3d6fcb78acbe65803109f035cc979ad2199.tar.gz otp-5345f3d6fcb78acbe65803109f035cc979ad2199.tar.bz2 otp-5345f3d6fcb78acbe65803109f035cc979ad2199.zip |
[esock] Fixed check domain local and specs
Fixed the spec's for function open/3,4.
Also, corrected the test for retreiving resulting
protocol when performing open with proto = 0 (default)
and domain is not local. Local may not be defined
on all platforms.
OTP-15822
-rw-r--r-- | erts/emulator/nifs/common/socket_nif.c | 8 | ||||
-rw-r--r-- | erts/preloaded/ebin/socket.beam | bin | 70764 -> 70456 bytes | |||
-rw-r--r-- | erts/preloaded/src/socket.erl | 13 |
3 files changed, 6 insertions, 15 deletions
diff --git a/erts/emulator/nifs/common/socket_nif.c b/erts/emulator/nifs/common/socket_nif.c index c1c72e525f..340111f76c 100644 --- a/erts/emulator/nifs/common/socket_nif.c +++ b/erts/emulator/nifs/common/socket_nif.c @@ -4490,7 +4490,11 @@ ERL_NIF_TERM nopen(ErlNifEnv* env, * local (AF_LOCAL) we need to explicitly get the protocol here! */ - if ((proto != 0) && (domain != AF_LOCAL)) + if ((proto == 0) +#if defined(AF_LOCAL) + && (domain != AF_LOCAL) +#endif + ) if (!nopen_which_protocol(sock, &proto)) { if (proto == ESOCK_WHICH_PROTO_ERROR) { save_errno = sock_errno(); @@ -4501,7 +4505,7 @@ ERL_NIF_TERM nopen(ErlNifEnv* env, while ((sock_close(sock) == INVALID_SOCKET) && (sock_errno() == EINTR)); return esock_make_error(env, esock_atom_eafnosupport); - } + } } diff --git a/erts/preloaded/ebin/socket.beam b/erts/preloaded/ebin/socket.beam Binary files differindex 266adbd6f1..e37aa81b7c 100644 --- a/erts/preloaded/ebin/socket.beam +++ b/erts/preloaded/ebin/socket.beam diff --git a/erts/preloaded/src/socket.erl b/erts/preloaded/src/socket.erl index 03107d22b1..0f0d8f7a02 100644 --- a/erts/preloaded/src/socket.erl +++ b/erts/preloaded/src/socket.erl @@ -1016,12 +1016,6 @@ open(Domain, Type) -> open(Domain, Type, default). -spec open(Domain, Type, Protocol) -> {ok, Socket} | {error, Reason} when - Domain :: local, - Type :: stream | dgram, - Protocol :: default, - Socket :: socket(), - Reason :: term(); - (Domain, Type, Protocol) -> {ok, Socket} | {error, Reason} when Domain :: domain(), Type :: type(), Protocol :: default | protocol(), @@ -1032,13 +1026,6 @@ open(Domain, Type, Protocol) -> open(Domain, Type, Protocol, #{}). -spec open(Domain, Type, Protocol, Extra) -> {ok, Socket} | {error, Reason} when - Domain :: local, - Type :: stream | dgram, - Protocol :: default, - Extra :: map(), - Socket :: socket(), - Reason :: term(); - (Domain, Type, Protocol, Extra) -> {ok, Socket} | {error, Reason} when Domain :: domain(), Type :: type(), Protocol :: default | protocol(), |