diff options
author | Lukas Larsson <[email protected]> | 2019-05-06 09:30:40 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2019-05-06 09:30:40 +0200 |
commit | 80ac43b4f3194fddf3f6c911cdf2d25125c56903 (patch) | |
tree | 6831cf43cd9dc090747fad8d78ad00494981798f | |
parent | e4c8e5a7997205ccc371415ae5c1caf544b025c6 (diff) | |
parent | 6944df6e540d57f5ddf04e01d44d3aefd9c4720d (diff) | |
download | otp-80ac43b4f3194fddf3f6c911cdf2d25125c56903.tar.gz otp-80ac43b4f3194fddf3f6c911cdf2d25125c56903.tar.bz2 otp-80ac43b4f3194fddf3f6c911cdf2d25125c56903.zip |
Merge pull request #2219 from josevalim/jv-auto-host/OTP-15794
Add hostname to -remsh if none is given
-rw-r--r-- | erts/doc/src/erl.xml | 5 | ||||
-rw-r--r-- | lib/kernel/src/user_drv.erl | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/erts/doc/src/erl.xml b/erts/doc/src/erl.xml index 471d7caa5a..ed1b0880b4 100644 --- a/erts/doc/src/erl.xml +++ b/erts/doc/src/erl.xml @@ -460,7 +460,10 @@ <tag><c><![CDATA[-remsh Node]]></c></tag> <item> <p>Starts Erlang with a remote shell connected to - <c><![CDATA[Node]]></c>.</p> + <c><![CDATA[Node]]></c>. Requires either <c><![CDATA[-name]]></c> + or <c><![CDATA[-sname]]></c> to be given. If <c><![CDATA[Node]]></c> + does not contain a hostname, one is automatically taken from + <c><![CDATA[-name]]></c> or <c><![CDATA[-sname]]></c></p> </item> <tag><c><![CDATA[-rsh Program]]></c></tag> <item> diff --git a/lib/kernel/src/user_drv.erl b/lib/kernel/src/user_drv.erl index 08286dd476..69ff8e7971 100644 --- a/lib/kernel/src/user_drv.erl +++ b/lib/kernel/src/user_drv.erl @@ -120,7 +120,7 @@ server1(Iport, Oport, Shell) -> {Curr,Shell1} = case init:get_argument(remsh) of {ok,[[Node]]} -> - ANode = list_to_atom(Node), + ANode = list_to_atom(append_hostname(Node)), RShell = {ANode,shell,start,[]}, RGr = group:start(self(), RShell, rem_sh_opts(ANode)), {RGr,RShell}; @@ -139,6 +139,12 @@ server1(Iport, Oport, Shell) -> %% Enter the server loop. server_loop(Iport, Oport, Curr, User, Gr, {false, queue:new()}). +append_hostname(Node) -> + case string:find(Node, "@") of + nomatch -> Node ++ string:find(atom_to_list(node()), "@"); + _ -> Node + end. + rem_sh_opts(Node) -> [{expand_fun,fun(B)-> rpc:call(Node,edlin_expand,expand,[B]) end}]. |