From b2229bffcc8e5f7c4a919d2d2410d63e7718467e Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Wed, 27 Nov 2002 20:46:29 +0000 Subject: *** empty log message *** SVN Revision: 8 --- src/ejabberd_c2s.erl | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'src/ejabberd_c2s.erl') diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 6cce2f261..0fd3b36e2 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -21,7 +21,8 @@ % -export([init/1, wait_for_stream/2, wait_for_auth/2, terminate/3]). --record(state, {socket, sender, receiver, streamid}). +-record(state, {socket, sender, receiver, streamid, + user = "", server = "localhost", resource = ""}). -include("ejabberd.hrl"). @@ -101,18 +102,20 @@ wait_for_auth({xmlstreamelement, El}, StateData) -> case is_auth_packet(El) of {auth, ID, {U, P, D, R}} -> io:format("AUTH: ~p~n", [{U, P, D, R}]), + % TODO: digested password case ejabberd_auth:check_password(U, P) of true -> % TODO - {next_state, session_established, StateData}; + {next_state, session_established, + StateData#state{user = U, resource = R}}; _ -> - Err = xml:make_error_iq_reply(El, "404", "Unauthorized"), + Err = jlib:make_error_iq_reply(El, "404", "Unauthorized"), send_element(StateData#state.sender, Err), {next_state, wait_for_auth, StateData} end; _ -> {next_state, wait_for_auth, StateData} -end; + end; wait_for_auth({xmlstreamend, Name}, StateData) -> % TODO @@ -121,6 +124,14 @@ wait_for_auth({xmlstreamend, Name}, StateData) -> wait_for_auth(closed, StateData) -> {stop, normal, StateData}. +session_established({xmlstreamelement, El}, StateData) -> + {xmlelement, Name, Attrs, Els} = El, + % TODO + {next_state, session_established, StateData}; + +session_established(closed, StateData) -> + % TODO + {stop, normal, StateData}. @@ -213,7 +224,7 @@ send_element(Pid, El) -> send_text(Pid, xml:element_to_string(El)). new_id() -> - io_lib:format("~p", [random:uniform(65536*65536)]). + lists:flatten(io_lib:format("~p", [random:uniform(65536*65536)])). is_auth_packet({xmlelement, Name, Attrs, Els}) when Name == "iq" -> @@ -257,3 +268,5 @@ get_auth_tags([], U, P, D, R) -> {U, P, D, R}. + + -- cgit v1.2.3