@@ -372,28 +372,31 @@ query_node_props(Nodes) when Nodes =/= [] ->
372372 % % By using a temporary intermediate hidden node, we ask Erlang not to
373373 % % connect everyone automatically.
374374 Context = rabbit_prelaunch :get_context (),
375- VMArgs0 = [" -hidden" ],
375+ VMArgs0 = [" -boot " , " no_dot_erlang " , " - hidden" ],
376376 VMArgs1 = case Context of
377377 #{erlang_cookie := ErlangCookie ,
378378 var_origins := #{erlang_cookie := environment }} ->
379379 [" -setcookie" , atom_to_list (ErlangCookie ) | VMArgs0 ];
380380 _ ->
381381 VMArgs0
382382 end ,
383+ VMArgs2 = maybe_add_tls_arguments (VMArgs1 ),
383384 PeerStartArg = case Context of
384385 #{nodename_type := longnames } ->
385386 #{name => PeerName ,
386387 host => Suffix ,
387388 longnames => true ,
388- args => VMArgs1 };
389+ args => VMArgs2 };
389390 _ ->
390391 #{name => PeerName ,
391- args => VMArgs1 }
392+ args => VMArgs2 }
392393 end ,
394+ ? LOG_DEBUG (" Peer discovery: peer node arguments: ~tp " ,
395+ [PeerStartArg ]),
393396 case peer :start (PeerStartArg ) of
394397 {ok , Pid , Peer } ->
395398 ? LOG_DEBUG (
396- " Peer discovery: use temporary hidden node '~ts ' to query "
399+ " Peer discovery: using temporary hidden node '~ts ' to query "
397400 " discovered peers properties" ,
398401 [Peer ],
399402 #{domain => ? RMQLOG_DOMAIN_PEER_DISC }),
@@ -412,6 +415,41 @@ query_node_props(Nodes) when Nodes =/= [] ->
412415query_node_props ([]) ->
413416 [].
414417
418+ maybe_add_tls_arguments (VMArgs0 ) ->
419+ case init :get_argument (proto_dist ) of
420+ {ok , [[" inet_tls" ]]} ->
421+ add_tls_arguments (inet_tls , VMArgs0 );
422+ {ok , [[" inet6_tls" ]]} ->
423+ add_tls_arguments (inet6_tls , VMArgs0 );
424+ error ->
425+ VMArgs0
426+ end .
427+
428+ add_tls_arguments (InetDistModule , VMArgs0 ) ->
429+ VMArgs1 = case InetDistModule of
430+ inet_tls ->
431+ ProtoDistArg = [" -proto_dist" , " inet_tls" | VMArgs0 ],
432+ [" -pa" , filename :dirname (code :which (inet_tls_dist )) | ProtoDistArg ];
433+ inet6_tls ->
434+ ProtoDistArg = [" -proto_dist" , " inet6_tls" | VMArgs0 ],
435+ [" -pa" , filename :dirname (code :which (inet6_tls_dist )) | ProtoDistArg ]
436+ end ,
437+ VMArgs2 = case init :get_argument (ssl_dist_opt ) of
438+ {ok , SslDistOpts0 } ->
439+ SslDistOpts1 = [[" -ssl_dist_opt" | SslDistOpt ] || SslDistOpt <- SslDistOpts0 ],
440+ SslDistOpts2 = lists :concat (SslDistOpts1 ),
441+ SslDistOpts2 ++ VMArgs1 ;
442+ error ->
443+ VMArgs1
444+ end ,
445+ VMArgs3 = case init :get_argument (ssl_dist_optfile ) of
446+ {ok , [[SslDistOptfileArg ]]} ->
447+ [" -ssl_dist_optfile" , SslDistOptfileArg | VMArgs2 ];
448+ error ->
449+ VMArgs2
450+ end ,
451+ VMArgs3 .
452+
415453do_query_node_props (Nodes ) when Nodes =/= [] ->
416454 % % Make sure all log messages are forwarded from this temporary hidden
417455 % % node to the upstream node, regardless of their level.
0 commit comments