Skip to content

Commit 22f4471

Browse files
Include top-level port property for TLS listeners
This value is used at listener registration and will show up in `rabbitmq-diagnostics listeners' output. Closes #857
1 parent c2350b1 commit 22f4471

File tree

2 files changed

+34
-17
lines changed

2 files changed

+34
-17
lines changed

deps/rabbitmq_management/src/rabbit_mgmt_app.erl

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ stop(_State) ->
4848
%% about-to-disable apps from our new dispatcher.
4949
reset_dispatcher(IgnoreApps) ->
5050
unregister_all_contexts(),
51-
start_configured_listener(IgnoreApps, false).
51+
start_configured_listeners(IgnoreApps, false).
5252

53-
-spec start_configured_listener([atom()], boolean()) -> ok.
54-
start_configured_listener(IgnoreApps, NeedLogStartup) ->
53+
-spec start_configured_listeners([atom()], boolean()) -> ok.
54+
start_configured_listeners(IgnoreApps, NeedLogStartup) ->
5555
[start_listener(Listener, IgnoreApps, NeedLogStartup)
5656
|| Listener <- get_listeners_config()],
5757
ok.
@@ -118,31 +118,44 @@ has_configured_listener(Key) ->
118118
end.
119119

120120
get_legacy_listener() ->
121-
{ok, Listener} = application:get_env(rabbitmq_management, listener),
122-
Listener.
121+
{ok, Listener0} = application:get_env(rabbitmq_management, listener),
122+
{ok, Listener1} = ensure_port(tcp, Listener0),
123+
Listener1.
123124

124125
get_tls_listener() ->
125126
{ok, Listener0} = application:get_env(rabbitmq_management, ssl_config),
127+
{ok, Listener1} = ensure_port(tls, Listener0),
128+
Port = proplists:get_value(port, Listener1),
126129
case proplists:get_value(cowboy_opts, Listener0) of
127130
undefined ->
128-
[{ssl, true}, {ssl_opts, Listener0}];
131+
[
132+
{port, Port},
133+
{ssl, true},
134+
{ssl_opts, Listener0}
135+
];
129136
CowboyOpts ->
130137
Listener1 = lists:keydelete(cowboy_opts, 1, Listener0),
131-
[{ssl, true}, {ssl_opts, Listener1}, {cowboy_opts, CowboyOpts}]
138+
[
139+
{port, Port},
140+
{ssl, true},
141+
{ssl_opts, Listener1},
142+
{cowboy_opts, CowboyOpts}
143+
]
132144
end.
133145

134146
get_tcp_listener() ->
135-
application:get_env(rabbitmq_management, tcp_config, []).
147+
Listener0 = application:get_env(rabbitmq_management, tcp_config, []),
148+
{ok, Listener1} = ensure_port(tcp, Listener0),
149+
Listener1.
136150

137-
start_listener(Listener0, IgnoreApps, NeedLogStartup) ->
138-
{Type, ContextName} = case is_tls(Listener0) of
151+
start_listener(Listener, IgnoreApps, NeedLogStartup) ->
152+
{Type, ContextName} = case is_tls(Listener) of
139153
true -> {tls, ?TLS_CONTEXT};
140154
false -> {tcp, ?TCP_CONTEXT}
141155
end,
142-
{ok, Listener1} = ensure_port(Type, Listener0),
143-
{ok, _} = register_context(ContextName, Listener1, IgnoreApps),
156+
{ok, _} = register_context(ContextName, Listener, IgnoreApps),
144157
case NeedLogStartup of
145-
true -> log_startup(Type, Listener1);
158+
true -> log_startup(Type, Listener);
146159
false -> ok
147160
end,
148161
ok.
@@ -189,5 +202,5 @@ start() ->
189202
%% Modern TCP listener uses management.tcp.*.
190203
%% Legacy TCP (or TLS) listener uses management.listener.*.
191204
%% Modern TLS listener uses management.ssl.*
192-
start_configured_listener([], true),
205+
start_configured_listeners([], true),
193206
rabbit_mgmt_sup_sup:start_link().

deps/rabbitmq_management/test/listener_config_SUITE.erl

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,11 @@ end_per_testcase(_, Config) ->
5151

5252
no_config_defaults(_Config) ->
5353
?assertEqual([
54-
[{cowboy_opts,[
55-
{sendfile, false}
56-
]}]
54+
[
55+
{cowboy_opts,[
56+
{sendfile, false}
57+
]},
58+
{port, 15672}]
5759
], rabbit_mgmt_app:get_listeners_config()).
5860

5961

@@ -84,6 +86,7 @@ ssl_config_only(_Config) ->
8486
{cowboy_opts,[
8587
{sendfile,false}
8688
]},
89+
{port, 999},
8790
{ssl, true},
8891
{ssl_opts, [
8992
{port, 999},
@@ -116,6 +119,7 @@ multiple_listeners(_Config) ->
116119
{cowboy_opts,[
117120
{sendfile, false}
118121
]},
122+
{port, 999},
119123
{ssl, true},
120124
{ssl_opts, [
121125
{port, 999},

0 commit comments

Comments
 (0)