diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2010-10-14 02:56:32 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2010-10-14 02:56:32 +0200 |
commit | 9b5db7ab37a4a2527d523ff39bb0c5525553119e (patch) | |
tree | 8b89f91f02bc589e14a911f294513d4a351494a1 /server/client.erl | |
parent | b29dda5113a994d2ad18f9e6048d9b69c91a79c7 (diff) | |
download | erlang-9b5db7ab37a4a2527d523ff39bb0c5525553119e.tar.gz erlang-9b5db7ab37a4a2527d523ff39bb0c5525553119e.tar.xz erlang-9b5db7ab37a4a2527d523ff39bb0c5525553119e.zip |
progress
server is working somehow...
Diffstat (limited to '')
-rw-r--r-- | server/client.erl | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/server/client.erl b/server/client.erl index 9d778f0..31d382f 100644 --- a/server/client.erl +++ b/server/client.erl @@ -1,23 +1,32 @@ -module(client). -export([start/1, loop/1, register/2, login/2]). -start(Client) -> +start(Node) -> process_flag(trap_exit, true), - spawn(client, loop, [Client]). + {Client, Ref} = server:start_on_node(Node, client, undef), + link(Client), + Server = spawn_link(client, loop, [{Client, Ref}]), + + case server:rpc({Client, Ref}, {change_state, Server}) of + {ok} -> + {ok, {Client, Ref}}; + _ -> + {error, unknown_error} + end. loop(Client) -> receive - {list} -> - Client ! {ok, foo}, + list -> + server:send(Client, {ok, {foo}}), loop(Client); - true -> - Client ! {error, unknown_command}, + Cmd -> + server:send(Client, {error, {unknown_command, Cmd}}), loop(Client) end. register(Client, {Name, Password}) -> dis ! {Client, {register, {Name, Password}}}. -login(Client, {Name, Password}) -> - dis ! {Client, {login, {Name, Password}}}. +login(Client, {Node, Name, Password}) -> + dis ! {Client, {login, {Node, Name, Password}}}. |