@@ -161,8 +161,7 @@ action(rotate_logs, [Suffix], RpcTimeout) ->
161161% % Running is a boolean exhibiting success at some moment
162162start_nodes (0 , _ , PNodePid , Running , _ , _ , _ ) -> {PNodePid , Running };
163163
164- start_nodes (N , Total , PNodePid , Running ,
165- NodeNameBase , {NodeIpAddress , NodePortBase }, RpcTimeout ) ->
164+ start_nodes (N , Total , PNodePid , Running , NodeNameBase , Listener , RpcTimeout ) ->
166165 {NodePre , NodeSuff } = NodeNameBase ,
167166 NodeNumber = Total - N ,
168167 NodePre1 = case NodeNumber of
@@ -171,14 +170,18 @@ start_nodes(N, Total, PNodePid, Running,
171170 _ -> NodePre ++ " _" ++ integer_to_list (NodeNumber )
172171 end ,
173172 Node = rabbit_misc :makenode ({NodePre1 , NodeSuff }),
174- NodePort = NodePortBase + NodeNumber ,
175173 os :putenv (" RABBITMQ_NODENAME" , atom_to_list (Node )),
176- os :putenv (" RABBITMQ_NODE_PORT" , integer_to_list (NodePort )),
177- os :putenv (" RABBITMQ_NODE_IP_ADDRESS" , NodeIpAddress ),
174+ case Listener of
175+ {NodeIpAddress , NodePortBase } ->
176+ NodePort = NodePortBase + NodeNumber ,
177+ os :putenv (" RABBITMQ_NODE_PORT" , integer_to_list (NodePort )),
178+ os :putenv (" RABBITMQ_NODE_IP_ADDRESS" , NodeIpAddress );
179+ undefined ->
180+ ok
181+ end ,
178182 {NodePid , Started } = start_node (Node , RpcTimeout ),
179183 start_nodes (N - 1 , Total , [NodePid | PNodePid ],
180- Started and Running , NodeNameBase ,
181- {NodeIpAddress , NodePortBase }, RpcTimeout ).
184+ Started and Running , NodeNameBase , Listener , RpcTimeout ).
182185
183186start_node (Node , RpcTimeout ) ->
184187 io :format (" Starting node ~s ...~n " , [Node ]),
@@ -333,6 +336,8 @@ get_node_tcp_listener() ->
333336 case application :get_env (rabbit , tcp_listeners ) of
334337 {ok , [{_IpAddy , _Port } = Listener ]} ->
335338 Listener ;
339+ {ok , []} ->
340+ undefined ;
336341 {ok , Other } ->
337342 throw ({cannot_start_multiple_nodes , multiple_tcp_listeners ,
338343 Other });
0 commit comments