aboutsummaryrefslogtreecommitdiff
path: root/src/mod_mix_pam.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_mix_pam.erl')
-rw-r--r--src/mod_mix_pam.erl17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/mod_mix_pam.erl b/src/mod_mix_pam.erl
index ca3b4e6ea..08b9125cc 100644
--- a/src/mod_mix_pam.erl
+++ b/src/mod_mix_pam.erl
@@ -70,8 +70,8 @@ start(Host, Opts) ->
ejabberd_hooks:add(roster_get, Host, ?MODULE, get_mix_roster_items, 50),
ejabberd_hooks:add(webadmin_user, Host, ?MODULE, webadmin_user, 50),
ejabberd_hooks:add(webadmin_page_host, Host, ?MODULE, webadmin_page, 50),
- gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_MIX_PAM_0,
- ?MODULE, process_iq);
+ gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_MIX_PAM_0, ?MODULE, process_iq),
+ gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_MIX_PAM_2, ?MODULE, process_iq);
Err ->
Err
end.
@@ -83,7 +83,8 @@ stop(Host) ->
ejabberd_hooks:delete(roster_get, Host, ?MODULE, get_mix_roster_items, 50),
ejabberd_hooks:delete(webadmin_user, Host, ?MODULE, webadmin_user, 50),
ejabberd_hooks:delete(webadmin_page_host, Host, ?MODULE, webadmin_page, 50),
- gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_MIX_PAM_0).
+ gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_MIX_PAM_0),
+ gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_MIX_PAM_2).
reload(Host, NewOpts, OldOpts) ->
NewMod = gen_mod:db_mod(NewOpts, ?MODULE),
@@ -263,7 +264,7 @@ remove_user(LUser, LServer) ->
-spec process_join(iq()) -> ignore.
process_join(#iq{from = From,
sub_els = [#mix_client_join{channel = Channel,
- join = Join}]} = IQ) ->
+ join = Join}]} = IQ) ->
ejabberd_router:route_iq(
#iq{from = jid:remove_resource(From),
to = Channel, type = set, sub_els = [Join]},
@@ -287,7 +288,7 @@ process_leave(#iq{from = From,
-spec process_join_result(iq(), iq()) -> ok.
process_join_result(#iq{from = #jid{} = Channel,
- type = result, sub_els = [#mix_join{id = ID} = Join]},
+ type = result, sub_els = [#mix_join{id = ID, xmlns = XmlNs} = Join]},
#iq{to = To} = IQ) ->
case add_channel(To, Channel, ID) of
ok ->
@@ -303,7 +304,7 @@ process_join_result(#iq{from = #jid{} = Channel,
% send IQ result
ChanID = make_channel_id(Channel, ID),
Join1 = Join#mix_join{id = <<"">>, jid = ChanID},
- ResIQ = xmpp:make_iq_result(IQ, #mix_client_join{join = Join1}),
+ ResIQ = xmpp:make_iq_result(IQ, #mix_client_join{join = Join1, xmlns = XmlNs}),
ejabberd_router:route(ResIQ);
{error, db_failure} ->
ejabberd_router:route_error(IQ, db_error(IQ))
@@ -312,14 +313,14 @@ process_join_result(Err, IQ) ->
process_iq_error(Err, IQ).
-spec process_leave_result(iq(), iq()) -> ok.
-process_leave_result(#iq{from = Channel, type = result, sub_els = [#mix_leave{} = Leave]},
+process_leave_result(#iq{from = Channel, type = result, sub_els = [#mix_leave{xmlns = XmlNs} = Leave]},
#iq{to = User} = IQ) ->
% Do roster push
mod_roster:push_item(User,
#roster_item{jid = Channel, subscription = none},
#roster_item{jid = Channel, subscription = remove}),
% send iq result
- ResIQ = xmpp:make_iq_result(IQ, #mix_client_leave{leave = Leave}),
+ ResIQ = xmpp:make_iq_result(IQ, #mix_client_leave{leave = Leave, xmlns = XmlNs}),
ejabberd_router:route(ResIQ);
process_leave_result(Err, IQ) ->
process_iq_error(Err, IQ).