diff --git a/ChangeLog b/ChangeLog index 9353205f7..f7ad8b2f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-10-09 Jean-Sébastien Pédron + + * src/ejabberd_c2s.erl: Fix handling of unauthenticated stanzas which + are not request IQ. Thanks to Pablo Polvorin! + 2008-10-08 Jean-Sébastien Pédron Merge from trunk (r1563 to r1613). diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index abf2cd75c..75779cc44 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -1285,7 +1285,7 @@ new_id() -> randoms:get_string(). -is_auth_packet(El) -> +is_auth_packet(El) when ?IS_IQ(El) -> case exmpp_iq:is_request(El) of true -> {auth, exmpp_stanza:get_id(El), exmpp_iq:get_type(El), @@ -1293,7 +1293,9 @@ is_auth_packet(El) -> undefined, undefined, undefined, undefined)}; false -> false - end. + end; +is_auth_packet(_El) -> + false. get_auth_tags([#xmlel{ns = ?NS_LEGACY_AUTH, name = Name, children = Els} | L], @@ -1828,7 +1830,7 @@ resend_subscription_requests(#state{user = User, end, PendingSubscriptions). -process_unauthenticated_stanza(StateData, El) -> +process_unauthenticated_stanza(StateData, El) when ?IS_IQ(El) -> case exmpp_iq:get_kind(El) of request -> IQ_Rec = exmpp_iq:xmlel_to_iq(El), @@ -1851,9 +1853,12 @@ process_unauthenticated_stanza(StateData, El) -> send_element(StateData, Res) end; _ -> - % Drop any stanza, which isn't IQ stanza + % Drop any stanza, which isn't an IQ request stanza ok - end. + end; +process_unauthenticated_stanza(_StateData,_El) -> + ok. + peerip(SockMod, Socket) -> IP = case SockMod of