From 8e2a94b71d79f376913ce5fd34927ac2ae90002c Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Wed, 25 Dec 2002 19:41:25 +0000 Subject: [PATCH] *** empty log message *** SVN Revision: 22 --- src/ejabberd_c2s.erl | 13 ++++++++++--- src/jlib.erl | 4 ++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index 5ac2eb863..3fb5e2c0a 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -181,10 +181,9 @@ session_established({xmlstreamelement, El}, StateData) -> [FromJID, El, StateData]), presence_update(FromJID, El, StateData); _ -> - ejabberd_router:route({StateData#state.user, - Server, ""}, - ToJID, El), presence_track(FromJID, ToJID, El, StateData) + %ejabberd_router:route(FrJID, ToJID, El), + %NewSt end; _ -> ejabberd_router:route(FromJID, ToJID, El), @@ -490,30 +489,38 @@ presence_track(From, To, Packet, StateData) -> User = StateData#state.user, case xml:get_attr_s("type", Attrs) of "unavailable" -> + ejabberd_router:route(From, To, Packet), I = remove_element(LTo, StateData#state.pres_i), A = remove_element(LTo, StateData#state.pres_a), StateData#state{pres_i = I, pres_a = A}; "invisible" -> + ejabberd_router:route(From, To, Packet), I = ?SETS:add_element(LTo, StateData#state.pres_i), A = remove_element(LTo, StateData#state.pres_a), StateData#state{pres_i = I, pres_a = A}; "subscribe" -> + ejabberd_router:route(jlib:jid_remove_resource(From), To, Packet), mod_roster:out_subscription(User, To, subscribe), StateData; "subscribed" -> + ejabberd_router:route(jlib:jid_remove_resource(From), To, Packet), mod_roster:out_subscription(User, To, subscribed), StateData; "unsubscribe" -> + ejabberd_router:route(jlib:jid_remove_resource(From), To, Packet), mod_roster:out_subscription(User, To, unsubscribe), StateData; "unsubscribed" -> + ejabberd_router:route(jlib:jid_remove_resource(From), To, Packet), mod_roster:out_subscription(User, To, unsubscribed), StateData; "error" -> + ejabberd_router:route(From, To, Packet), StateData; _ -> + ejabberd_router:route(From, To, Packet), I = remove_element(LTo, StateData#state.pres_i), A = ?SETS:add_element(LTo, StateData#state.pres_a), StateData#state{pres_i = I, diff --git a/src/jlib.erl b/src/jlib.erl index e450b80bb..974117fde 100644 --- a/src/jlib.erl +++ b/src/jlib.erl @@ -21,6 +21,7 @@ jid_to_string/1, tolower/1, jid_tolower/1, + jid_remove_resource/1, get_iq_namespace/1, iq_query_info/1, is_iq_request_type/1, @@ -183,6 +184,9 @@ tolower(S) -> jid_tolower({U, S, R}) -> {tolower(U), tolower(S), R}. +jid_remove_resource({U, S, R}) -> + {U, S, ""}. + get_iq_namespace({xmlelement, Name, Attrs, Els}) when Name == "iq" -> case xml:remove_cdata(Els) of [{xmlelement, Name2, Attrs2, Els2}] ->