summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMicael Karlberg <bmk@erlang.org>2021-07-09 18:26:12 +0200
committerMicael Karlberg <bmk@erlang.org>2021-07-29 12:50:18 +0200
commita481a7b70b9362c8dbd47e4519ceb8e94b27cfd2 (patch)
treebd5b398ebc51caeb32645f108073ddc91df4312b /lib
parentc2915a365fcded89895f0a93ca890dd08d3ec694 (diff)
downloaderlang-a481a7b70b9362c8dbd47e4519ceb8e94b27cfd2.tar.gz
[kernel] Add 'active' to info
Add 'active' to info for gen_tcp_socket and the old 'port' socket's. OTP-17410
Diffstat (limited to 'lib')
-rw-r--r--lib/kernel/src/gen_tcp_socket.erl4
-rw-r--r--lib/kernel/src/inet.erl7
2 files changed, 8 insertions, 3 deletions
diff --git a/lib/kernel/src/gen_tcp_socket.erl b/lib/kernel/src/gen_tcp_socket.erl
index 531e613778..1841623241 100644
--- a/lib/kernel/src/gen_tcp_socket.erl
+++ b/lib/kernel/src/gen_tcp_socket.erl
@@ -2639,7 +2639,7 @@ state_getopts(P, D, State, [Tag | Tags], Acc) ->
{error, einval}
end.
-handle_info(Socket, Owner, D) ->
+handle_info(Socket, Owner, #{active := Active} = D) ->
%% Read counters
Counters_1 = socket_info_counters(Socket),
%% Check for recent wraps
@@ -2653,7 +2653,7 @@ handle_info(Socket, Owner, D) ->
Counters_3 = maps:merge(Counters_1, maps:with(Wrapped, Counters_2)),
%% Go ahead with wrap updated counters
Counters_4 = maps:from_list(getstat_what(D_1, Counters_3)),
- {D_1, Info#{counters => Counters_4, owner => Owner}}.
+ {D_1, Info#{counters => Counters_4, owner => Owner, active => Active}}.
getstat(Socket, D, What) ->
%% Read counters
diff --git a/lib/kernel/src/inet.erl b/lib/kernel/src/inet.erl
index 6350257835..6efa6f108c 100644
--- a/lib/kernel/src/inet.erl
+++ b/lib/kernel/src/inet.erl
@@ -679,7 +679,12 @@ info({'$inet', GenSocketMod, _} = Socket)
info(Socket) when is_port(Socket) ->
case port_info(Socket) of
#{states := _} = PortInfo ->
- PortInfo;
+ case inet:getopts(Socket, [active]) of
+ {ok, [{active, Active}]} ->
+ PortInfo#{active => Active};
+ _ ->
+ PortInfo
+ end;
PortInfo0 ->
%% Its actually possible to call this function for non-socket ports,
%% but in that case we have no status or statistics.