4.9.1 questions/problems
Magnus Fröberg
magnus@REDACTED
Fri Nov 26 08:34:30 CET 1999
"Costel Vrinceanu [4692]" wrote:
>
> If starting two nodes on the same host, n1@REDACTED, n2@REDACTED:
>
> net_adm:world_list([somehost]).
>
> returns => []
>
> 'epmd -names' reports correctly:
> epmd: up and running on port 4369 with data:
> name n1 at port 40575
> name n2 at port 40571
>
> I tried to step through net_adm , erl_epmd , inet_tcp but the debugger will
> feed the macro definition of ?erlang_daemon_port (=4369) as the atom '4369'
> instead of the integer 4369, so inet_tcp:connect/3 will fail with badarg
>
> Is there another way to get to the bottom of this (other than sprinkling the
> code with printfs/error_logger)?
>
> (Trying the same thing on the 4.7.1 release on the same machine works correctly)
>
Hi,
it was a problem with usage of new syntax I guess ;-)
Wow, I like it, realy missed this syntax before.
change erl_epmd:parse_line/1 to:
parse_line("name " ++ Buf0) ->
case parse_name(Buf0, []) of
{Name, Buf1} ->
case Buf1 of
"at port " ++ Buf2 ->
case catch list_to_integer(Buf2) of
{'EXIT', _} -> error;
Port -> {ok, {Name, Port}}
end;
_ -> error
end;
error -> error
end;
parse_line(_) -> error.
I changed:
"name " ++ Buf0 was ["name " ++ Buf0]
"at port " ++ Buf2 was ["at port " ++ Buf2]
/Magnus
--
Magnus Fröberg Tel: +46 (0)8 692 22 06
Bluetail AB Email: magnus@REDACTED
Hantverkargatan 78 WWW: http://www.bluetail.com
SE-112 38 Stockholm, SWEDEN
More information about the erlang-questions
mailing list