code_change/3
]).
--record(irc_state, {instance, host, port, nick}).
+-record(irc_state, {instance, host, port, nick, socket}).
-start_link(Instance, Host, Port, Nick) ->
+start_link(Instance, Config) ->
gen_server:start_link(?MODULE,
- {Instance, Host, Port, Nick}, []).
+ {Instance, Config}, []).
-init({Instance, Host, Port, Nick}) ->
+init({Instance, {Host, Port, Nick}}) ->
+ {ok, Socket} = gen_tcp:connect(Host, Port, [list]),
State = #irc_state{
instance=Instance, host=Host,
- port=Port, nick=Nick},
+ port=Port, nick=Nick, socket=Socket},
{ok, State}.
handle_call(_Request, _From, _State) ->
]).
-export([init/1]).
-start_link(Instance, Host, Port, Nick) ->
+start_link(Instance, Config) ->
supervisor:start_link(?MODULE,
- {Instance, Host, Port, Nick}).
+ {Instance, Config}).
-init({Instance, Host, Port, Nick}) ->
+init({Instance, Config}) ->
Connection = {connection,
- {irc_conn, start_link, [Instance, Host, Port, Nick]},
+ {irc_conn, start_link, [Instance, Config]},
permanent, % persistence type ("Restart" in the manual)
5, % shutdown [sends signal, with timeout for response]
worker, % it's not a supervisor itself