If available use user-privded ip address for listener metadata. close #6852

This commit is contained in:
Iliia Khaprov 2023-05-25 22:19:49 +02:00
parent e78427b226
commit 9dfaa5afb7
3 changed files with 39 additions and 10 deletions

View File

@ -157,8 +157,17 @@ listener_info(Listener) ->
P
end,
Port = pget(port, Listener),
[{IPAddress, _Port, _Family} | _]
= rabbit_networking:tcp_listener_addresses(Port),
IPAddress = case rabbit_misc:pget(ip, Listener) of
undefined ->
[{AutoIPAddress, _Port, _Family} | _]
= rabbit_networking:tcp_listener_addresses(Port),
AutoIPAddress;
IP when is_tuple(IP) ->
IP;
IP when is_list(IP) ->
{ok, ParsedIP} = inet_parse:address(IP),
ParsedIP
end,
[{Protocol, IPAddress, Port}].
lookup_dispatch(Lsnr) ->

View File

@ -143,10 +143,20 @@ start_tls_listener(TLSConf0, CowboyOpts) ->
listener_started(Protocol, Listener) ->
Port = rabbit_misc:pget(port, Listener),
[rabbit_networking:tcp_listener_started(Protocol, Listener,
IPAddress, Port)
|| {IPAddress, _Port, _Family}
<- rabbit_networking:tcp_listener_addresses(Port)],
case rabbit_misc:pget(ip, Listener) of
undefined ->
[rabbit_networking:tcp_listener_started(Protocol, Listener,
IPAddress, Port)
|| {IPAddress, _Port, _Family}
<- rabbit_networking:tcp_listener_addresses(Port)];
IP when is_tuple(IP) ->
rabbit_networking:tcp_listener_started(Protocol, Listener,
IP, Port);
IP when is_list(IP) ->
{ok, ParsedIP} = inet_parse:address(IP),
rabbit_networking:tcp_listener_started(Protocol, Listener,
ParsedIP, Port)
end,
ok.
get_tcp_conf(TCPConf0) ->

View File

@ -165,10 +165,20 @@ start_tls_listener(TLSConf0, CowboyOpts0, Routes) ->
listener_started(Protocol, Listener) ->
Port = rabbit_misc:pget(port, Listener),
[rabbit_networking:tcp_listener_started(Protocol, Listener,
IPAddress, Port)
|| {IPAddress, _Port, _Family}
<- rabbit_networking:tcp_listener_addresses(Port)],
case rabbit_misc:pget(ip, Listener) of
undefined ->
[rabbit_networking:tcp_listener_started(Protocol, Listener,
IPAddress, Port)
|| {IPAddress, _Port, _Family}
<- rabbit_networking:tcp_listener_addresses(Port)];
IP when is_tuple(IP) ->
rabbit_networking:tcp_listener_started(Protocol, Listener,
IP, Port);
IP when is_list(IP) ->
{ok, ParsedIP} = inet_parse:address(IP),
rabbit_networking:tcp_listener_started(Protocol, Listener,
ParsedIP, Port)
end,
ok.
get_env(Key, Default) ->