When setting a cookie on a node with erlang:set_cookie/2
it is possible to set different cookies for different nodes. Is there any way to display, which cookie is set for which node?
Calling erlang:get_cookie/1
does not display this information, only the "default" cookie is displayed.
Example:
Start NodeA with cookie foo
and a NodeB with cookie bar
. At NodeA now set the cookie to use when communicating with NodeB to bar
by calling erlang:set_cookie(NodeB, bar)
. Pinging now works fine, no "Connection attempt from disallowed node..." errors. Calling erlang:get_cookie()
on NodeA however still shows the "default" cookie foo
. How can find which cookie is set for NodeB?
It doesn't seem to be documented, but
auth:get_cookie/1
does what you want. For your case, you can callauth:get_cookie(NodeB)
onNodeA
.You have to run the
get_cookie/0
function on NodeB to get the name for that node. Simple solution is to do (on NodeA):after you have connected the nodes.
Doing the
erlang:set_cookie(NodeB, bar)
call on NodeA just makes it possible for NodeA/NodeB to connect to each other, they still have their original cookies.But to be able to connect to the other node you must already know the cookie for that node :)