From b62aa3d2dcf3298f221f01b8ffb02f839aabfb8b Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sat, 6 Aug 2016 13:36:27 +0200 Subject: [PATCH] mod_client_state: Let other modules filter stanzas Don't stop execution of the 'csi_filter_stanza' hook if mod_client_state won't queue the stanza. --- src/mod_client_state.erl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mod_client_state.erl b/src/mod_client_state.erl index da870f8ef..9d37d4f5b 100644 --- a/src/mod_client_state.erl +++ b/src/mod_client_state.erl @@ -205,7 +205,7 @@ filter_pep({C2SState, _OutStanzas} = Acc, Host, To, filter_pep(Acc, _Host, _To, _Stanza) -> Acc. -spec filter_other({term(), [xmlel()]}, binary(), jid(), xmlel()) - -> {stop, {term(), [xmlel()]}}. + -> {term(), [xmlel()]}. filter_other({C2SState, _OutStanzas}, Host, To, Stanza) -> ?DEBUG("Won't add stanza for ~s to CSI queue", [jid:to_string(To)]), @@ -250,7 +250,7 @@ queue_add(Type, Stanza, Host, C2SState) -> {stop, {NewState, []}} end. --spec queue_take(xmlel(), binary(), term()) -> {stop, {term(), [xmlel()]}}. +-spec queue_take(xmlel(), binary(), term()) -> {term(), [xmlel()]}. queue_take(Stanza, Host, C2SState) -> From = fxml:get_tag_attr_s(<<"from">>, Stanza), @@ -260,7 +260,7 @@ queue_take(Stanza, Host, C2SState) -> U == LUser andalso S == LServer end, get_queue(C2SState)), NewState = set_queue(Rest, C2SState), - {stop, {NewState, get_stanzas(Selected, Host) ++ [Stanza]}}. + {NewState, get_stanzas(Selected, Host) ++ [Stanza]}. -spec set_queue(csi_queue(), term()) -> term().