Skip to content

Commit 1fec80e

Browse files
Merge pull request #8353 from rabbitmq/ik-fix-listener-ips-in-ets-6852
When available, use user-provided ip address for listener metadata
2 parents 8d41f86 + 9dfaa5a commit 1fec80e

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
@@ -143,10 +143,20 @@ start_tls_listener(TLSConf0, CowboyOpts) ->
143143

144144
listener_started(Protocol, Listener) ->
145145
Port = rabbit_misc:pget(port, Listener),
146-
[rabbit_networking:tcp_listener_started(Protocol, Listener,
147-
IPAddress, Port)
148-
|| {IPAddress, _Port, _Family}
149-
<- rabbit_networking:tcp_listener_addresses(Port)],
146+
case rabbit_misc:pget(ip, Listener) of
147+
undefined ->
148+
[rabbit_networking:tcp_listener_started(Protocol, Listener,
149+
IPAddress, Port)
150+
|| {IPAddress, _Port, _Family}
151+
<- rabbit_networking:tcp_listener_addresses(Port)];
152+
IP when is_tuple(IP) ->
153+
rabbit_networking:tcp_listener_started(Protocol, Listener,
154+
IP, Port);
155+
IP when is_list(IP) ->
156+
{ok, ParsedIP} = inet_parse:address(IP),
157+
rabbit_networking:tcp_listener_started(Protocol, Listener,
158+
ParsedIP, Port)
159+
end,
150160
ok.
151161

152162
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)