summaryrefslogtreecommitdiff
path: root/lib/kernel/src/gen_tcp.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/src/gen_tcp.erl')
-rw-r--r--lib/kernel/src/gen_tcp.erl23
1 files changed, 13 insertions, 10 deletions
diff --git a/lib/kernel/src/gen_tcp.erl b/lib/kernel/src/gen_tcp.erl
index f0204802e3..c69524daf6 100644
--- a/lib/kernel/src/gen_tcp.erl
+++ b/lib/kernel/src/gen_tcp.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 1997-2020. All Rights Reserved.
+%% Copyright Ericsson AB 1997-2021. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
@@ -30,6 +30,9 @@
-include("inet_int.hrl").
-include("file.hrl").
+-define(module_socket(Handler, Handle),
+ {'$inet', (Handler), (Handle)}).
+
-type option() ::
{active, true | false | once | -32768..32767} |
{buffer, non_neg_integer()} |
@@ -231,7 +234,7 @@ listen(Port, Opts0) ->
Socket :: socket(),
Reason :: closed | system_limit | inet:posix().
-accept({'$inet', GenTcpMod, _} = S) when is_atom(GenTcpMod) ->
+accept(?module_socket(GenTcpMod, _) = S) when is_atom(GenTcpMod) ->
GenTcpMod:?FUNCTION_NAME(S, infinity);
accept(S) when is_port(S) ->
case inet_db:lookup_socket(S) of
@@ -247,7 +250,7 @@ accept(S) when is_port(S) ->
Socket :: socket(),
Reason :: closed | timeout | system_limit | inet:posix().
-accept({'$inet', GenTcpMod, _} = S, Time) when is_atom(GenTcpMod) ->
+accept(?module_socket(GenTcpMod, _) = S, Time) when is_atom(GenTcpMod) ->
GenTcpMod:?FUNCTION_NAME(S, Time);
accept(S, Time) when is_port(S) ->
case inet_db:lookup_socket(S) of
@@ -266,7 +269,7 @@ accept(S, Time) when is_port(S) ->
How :: read | write | read_write,
Reason :: inet:posix().
-shutdown({'$inet', GenTcpMod, _} = S, How) when is_atom(GenTcpMod) ->
+shutdown(?module_socket(GenTcpMod, _) = S, How) when is_atom(GenTcpMod) ->
GenTcpMod:?FUNCTION_NAME(S, How);
shutdown(S, How) when is_port(S) ->
case inet_db:lookup_socket(S) of
@@ -283,7 +286,7 @@ shutdown(S, How) when is_port(S) ->
-spec close(Socket) -> ok when
Socket :: socket().
-close({'$inet', GenTcpMod, _} = S) when is_atom(GenTcpMod) ->
+close(?module_socket(GenTcpMod, _) = S) when is_atom(GenTcpMod) ->
GenTcpMod:?FUNCTION_NAME(S);
close(S) ->
inet:tcp_close(S).
@@ -298,7 +301,7 @@ close(S) ->
Reason :: closed | {timeout, RestData} | inet:posix(),
RestData :: binary().
-send({'$inet', GenTcpMod, _} = S, Packet) when is_atom(GenTcpMod) ->
+send(?module_socket(GenTcpMod, _) = S, Packet) when is_atom(GenTcpMod) ->
GenTcpMod:?FUNCTION_NAME(S, Packet);
send(S, Packet) when is_port(S) ->
case inet_db:lookup_socket(S) of
@@ -319,7 +322,7 @@ send(S, Packet) when is_port(S) ->
Reason :: closed | inet:posix(),
HttpPacket :: term().
-recv({'$inet', GenTcpMod, _} = S, Length) when is_atom(GenTcpMod) ->
+recv(?module_socket(GenTcpMod, _) = S, Length) when is_atom(GenTcpMod) ->
GenTcpMod:?FUNCTION_NAME(S, Length, infinity);
recv(S, Length) when is_port(S) ->
case inet_db:lookup_socket(S) of
@@ -337,7 +340,7 @@ recv(S, Length) when is_port(S) ->
Reason :: closed | timeout | inet:posix(),
HttpPacket :: term().
-recv({'$inet', GenTcpMod, _} = S, Length, Time) when is_atom(GenTcpMod) ->
+recv(?module_socket(GenTcpMod, _) = S, Length, Time) when is_atom(GenTcpMod) ->
GenTcpMod:?FUNCTION_NAME(S, Length, Time);
recv(S, Length, Time) when is_port(S) ->
case inet_db:lookup_socket(S) of
@@ -347,7 +350,7 @@ recv(S, Length, Time) when is_port(S) ->
Error
end.
-unrecv({'$inet', GenTcpMod, _} = S, Data) when is_atom(GenTcpMod) ->
+unrecv(?module_socket(GenTcpMod, _) = S, Data) when is_atom(GenTcpMod) ->
GenTcpMod:?FUNCTION_NAME(S, Data);
unrecv(S, Data) when is_port(S) ->
case inet_db:lookup_socket(S) of
@@ -366,7 +369,7 @@ unrecv(S, Data) when is_port(S) ->
Pid :: pid(),
Reason :: closed | not_owner | badarg | inet:posix().
-controlling_process({'$inet', GenTcpMod, _} = S, NewOwner)
+controlling_process(?module_socket(GenTcpMod, _) = S, NewOwner)
when is_atom(GenTcpMod) ->
GenTcpMod:?FUNCTION_NAME(S, NewOwner);
controlling_process(S, NewOwner) ->