@@ -372,28 +372,31 @@ query_node_props(Nodes) when Nodes =/= [] ->
372
372
% % By using a temporary intermediate hidden node, we ask Erlang not to
373
373
% % connect everyone automatically.
374
374
Context = rabbit_prelaunch :get_context (),
375
- VMArgs0 = [" -hidden" ],
375
+ VMArgs0 = [" -boot " , " no_dot_erlang " , " - hidden" ],
376
376
VMArgs1 = case Context of
377
377
#{erlang_cookie := ErlangCookie ,
378
378
var_origins := #{erlang_cookie := environment }} ->
379
379
[" -setcookie" , atom_to_list (ErlangCookie ) | VMArgs0 ];
380
380
_ ->
381
381
VMArgs0
382
382
end ,
383
+ VMArgs2 = maybe_add_tls_arguments (VMArgs1 ),
383
384
PeerStartArg = case Context of
384
385
#{nodename_type := longnames } ->
385
386
#{name => PeerName ,
386
387
host => Suffix ,
387
388
longnames => true ,
388
- args => VMArgs1 };
389
+ args => VMArgs2 };
389
390
_ ->
390
391
#{name => PeerName ,
391
- args => VMArgs1 }
392
+ args => VMArgs2 }
392
393
end ,
394
+ ? LOG_DEBUG (" Peer discovery: peer node arguments: ~tp " ,
395
+ [PeerStartArg ]),
393
396
case peer :start (PeerStartArg ) of
394
397
{ok , Pid , Peer } ->
395
398
? LOG_DEBUG (
396
- " Peer discovery: use temporary hidden node '~ts ' to query "
399
+ " Peer discovery: using temporary hidden node '~ts ' to query "
397
400
" discovered peers properties" ,
398
401
[Peer ],
399
402
#{domain => ? RMQLOG_DOMAIN_PEER_DISC }),
@@ -412,6 +415,41 @@ query_node_props(Nodes) when Nodes =/= [] ->
412
415
query_node_props ([]) ->
413
416
[].
414
417
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
+
415
453
do_query_node_props (Nodes ) when Nodes =/= [] ->
416
454
% % Make sure all log messages are forwarded from this temporary hidden
417
455
% % node to the upstream node, regardless of their level.
0 commit comments