Skip to content

Commit da9fbba

Browse files
Merge pull request #8355 from rabbitmq/mergify/bp/v3.11.x/pr-8354
When available, use user-provided ip address for listener metadata (backport #8353) (backport #8354)
2 parents 6798467 + f71d894 commit da9fbba

File tree

3 files changed

+39
-10
lines changed

3 files changed

+39
-10
lines changed

deps/rabbitmq_web_dispatch/src/rabbit_web_dispatch_registry.erl

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,8 +157,17 @@ listener_info(Listener) ->
157157
P
158158
end,
159159
Port = pget(port, Listener),
160-
[{IPAddress, _Port, _Family} | _]
161-
= rabbit_networking:tcp_listener_addresses(Port),
160+
IPAddress = case rabbit_misc:pget(ip, Listener) of
161+
undefined ->
162+
[{AutoIPAddress, _Port, _Family} | _]
163+
= rabbit_networking:tcp_listener_addresses(Port),
164+
AutoIPAddress;
165+
IP when is_tuple(IP) ->
166+
IP;
167+
IP when is_list(IP) ->
168+
{ok, ParsedIP} = inet_parse:address(IP),
169+
ParsedIP
170+
end,
162171
[{Protocol, IPAddress, Port}].
163172

164173
lookup_dispatch(Lsnr) ->

deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,20 @@ start_tls_listener(TLSConf0, CowboyOpts) ->
155155

156156
listener_started(Protocol, Listener) ->
157157
Port = rabbit_misc:pget(port, Listener),
158-
[rabbit_networking:tcp_listener_started(Protocol, Listener,
159-
IPAddress, Port)
160-
|| {IPAddress, _Port, _Family}
161-
<- rabbit_networking:tcp_listener_addresses(Port)],
158+
case rabbit_misc:pget(ip, Listener) of
159+
undefined ->
160+
[rabbit_networking:tcp_listener_started(Protocol, Listener,
161+
IPAddress, Port)
162+
|| {IPAddress, _Port, _Family}
163+
<- rabbit_networking:tcp_listener_addresses(Port)];
164+
IP when is_tuple(IP) ->
165+
rabbit_networking:tcp_listener_started(Protocol, Listener,
166+
IP, Port);
167+
IP when is_list(IP) ->
168+
{ok, ParsedIP} = inet_parse:address(IP),
169+
rabbit_networking:tcp_listener_started(Protocol, Listener,
170+
ParsedIP, Port)
171+
end,
162172
ok.
163173

164174
get_tcp_conf(TCPConf0) ->

deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,10 +165,20 @@ start_tls_listener(TLSConf0, CowboyOpts0, Routes) ->
165165

166166
listener_started(Protocol, Listener) ->
167167
Port = rabbit_misc:pget(port, Listener),
168-
[rabbit_networking:tcp_listener_started(Protocol, Listener,
169-
IPAddress, Port)
170-
|| {IPAddress, _Port, _Family}
171-
<- rabbit_networking:tcp_listener_addresses(Port)],
168+
case rabbit_misc:pget(ip, Listener) of
169+
undefined ->
170+
[rabbit_networking:tcp_listener_started(Protocol, Listener,
171+
IPAddress, Port)
172+
|| {IPAddress, _Port, _Family}
173+
<- rabbit_networking:tcp_listener_addresses(Port)];
174+
IP when is_tuple(IP) ->
175+
rabbit_networking:tcp_listener_started(Protocol, Listener,
176+
IP, Port);
177+
IP when is_list(IP) ->
178+
{ok, ParsedIP} = inet_parse:address(IP),
179+
rabbit_networking:tcp_listener_started(Protocol, Listener,
180+
ParsedIP, Port)
181+
end,
172182
ok.
173183

174184
get_env(Key, Default) ->

0 commit comments

Comments
 (0)