File 0686-kernel-Multiple-sname-or-name-would-be-ignored.patch of Package erlang

From 4ffb28fa775daf7e157031654bcf7712cce6d0f1 Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Tue, 23 Apr 2019 12:14:08 +0200
Subject: [PATCH] kernel: Multiple -sname or -name would be ignored

If 'erl -sname 1 -sname 2' is run the node is not started
in distribution mode at all. This fix makes the last sname
be used.
---
 lib/kernel/src/erl_distribution.erl        | 6 ++++++
 lib/kernel/test/erl_distribution_SUITE.erl | 8 +++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/lib/kernel/src/erl_distribution.erl b/lib/kernel/src/erl_distribution.erl
index 0bec78e938..cdb2d2f1f6 100644
--- a/lib/kernel/src/erl_distribution.erl
+++ b/lib/kernel/src/erl_distribution.erl
@@ -83,6 +85,10 @@ do_start_link([{Arg,Flag}|T]) ->
     case init:get_argument(Arg) of
 	{ok,[[Name]]} ->
 	    start_link([list_to_atom(Name),Flag|ticktime()], true);
+        {ok,[[Name]|_Rest]} ->
+            error_logger:warning_msg("Multiple -~p given to erl, using the first, ~p",
+                         [Arg, Name]),
+	    start_link([list_to_atom(Name),Flag|ticktime()], true);
 	_ ->
 	    do_start_link(T)
     end;
diff --git a/lib/kernel/test/erl_distribution_SUITE.erl b/lib/kernel/test/erl_distribution_SUITE.erl
index 8dd4ef1987..c3a022df0a 100644
--- a/lib/kernel/test/erl_distribution_SUITE.erl
+++ b/lib/kernel/test/erl_distribution_SUITE.erl
@@ -192,6 +192,9 @@ nodenames(Config) when is_list(Config) ->
     legal("a-1@b"),
     legal("a_1@b"),
 
+    %% Test that giving two -sname works as it should
+    test_node("a_1@b", false, long_or_short() ++ "a_0@b"),
+
     illegal("cdé@a"),
     illegal("te欢st@a").
 
@@ -245,8 +248,11 @@ illegal(Name) ->
 test_node(Name) ->
     test_node(Name, false).
 test_node(Name, Illigal) ->
+    test_node(Name, Illigal, "").
+test_node(Name, Illigal, ExtraArgs) ->
     ProgName = atom_to_list(lib:progname()),
-    Command = ProgName ++ " -noinput " ++ long_or_short() ++ Name ++
+    Command = ProgName ++ " -noinput " ++ ExtraArgs ++
+        long_or_short() ++ Name ++
         " -eval \"net_adm:ping('" ++ atom_to_list(node()) ++ "')\"" ++
         case Illigal of
             true ->
-- 
2.16.4

openSUSE Build Service is sponsored by