File 3142-kernel-Allow-1-as-unknown-creation-returned-from-erl.patch of Package erlang

From b72b5ba9e6da87df02bcf78669313719cd49f3a3 Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Tue, 17 Dec 2019 15:00:39 +0100
Subject: [PATCH 02/11] kernel: Allow -1 as unknown creation returned from
 erl_epmd callback

---
 lib/kernel/src/erl_epmd.erl   | 10 +++++-----
 lib/kernel/src/net_kernel.erl |  2 ++
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/lib/kernel/src/erl_epmd.erl b/lib/kernel/src/erl_epmd.erl
index 489fbf3d76..2317d9e7de 100644
--- a/lib/kernel/src/erl_epmd.erl
+++ b/lib/kernel/src/erl_epmd.erl
@@ -94,10 +94,10 @@ port_please(Node, Host) ->
 	  Port :: non_neg_integer(),
 	  Version :: non_neg_integer().
 
-port_please(Node,HostName, Timeout) when is_atom(HostName) ->
-  port_please1(Node,atom_to_list(HostName), Timeout);
-port_please(Node,HostName, Timeout) when is_list(HostName) ->
-  port_please1(Node,HostName, Timeout);
+port_please(Node, HostName, Timeout) when is_atom(HostName) ->
+  port_please1(Node, atom_to_list(HostName), Timeout);
+port_please(Node, HostName, Timeout) when is_list(HostName) ->
+  port_please1(Node, HostName, Timeout);
 port_please(Node, EpmdAddr, Timeout) ->
   get_port(Node, EpmdAddr, Timeout).
 
@@ -156,7 +156,7 @@ register_node(Name, PortNo) ->
 	  Name :: string(),
 	  Port :: non_neg_integer(),
 	  Driver :: inet_tcp | inet6_tcp | inet | inet6,
-	  Creation :: non_neg_integer(),
+	  Creation :: non_neg_integer() | -1,
 	  Result :: {ok, Creation} | {error, already_registered} | term().
 
 register_node(Name, PortNo, inet_tcp) ->
diff --git a/lib/kernel/src/net_kernel.erl b/lib/kernel/src/net_kernel.erl
index ce4966684a..0394e45031 100644
--- a/lib/kernel/src/net_kernel.erl
+++ b/lib/kernel/src/net_kernel.erl
@@ -1667,6 +1667,8 @@ proto_error(CleanHalt, Proto, String) ->
 	    erlang:display_string(S)
     end.
 
+set_node(Node, Creation) when Creation < 0 ->
+    set_node(Node, create_creation());
 set_node(Node, Creation) when node() =:= nonode@nohost ->
     case catch erlang:setnode(Node, Creation) of
 	true ->
-- 
2.16.4

openSUSE Build Service is sponsored by