mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-26 16:26:24 +01:00
API renaming : ldomain -> prep_domain
SVN Revision: 2123
This commit is contained in:
parent
526dc54173
commit
19d7d79229
@ -180,7 +180,7 @@ remove_connection(SID, LUser, LServer) when is_list(LUser), is_list(LServer) ->
|
|||||||
|
|
||||||
register_connection(SID, JID, Info) when ?IS_JID(JID) ->
|
register_connection(SID, JID, Info) when ?IS_JID(JID) ->
|
||||||
LUser = exmpp_jid:lnode(JID),
|
LUser = exmpp_jid:lnode(JID),
|
||||||
LServer = exmpp_jid:ldomain(JID),
|
LServer = exmpp_jid:prep_domain(JID),
|
||||||
case proplists:get_value(auth_module, Info) of
|
case proplists:get_value(auth_module, Info) of
|
||||||
undefined ->
|
undefined ->
|
||||||
ok;
|
ok;
|
||||||
@ -201,7 +201,7 @@ register_connection(SID, JID, Info) when ?IS_JID(JID) ->
|
|||||||
|
|
||||||
unregister_connection(SID, JID, _) when ?IS_JID(JID) ->
|
unregister_connection(SID, JID, _) when ?IS_JID(JID) ->
|
||||||
LUser = exmpp_jid:lnode(JID),
|
LUser = exmpp_jid:lnode(JID),
|
||||||
LServer = exmpp_jid:ldomain(JID),
|
LServer = exmpp_jid:prep_domain(JID),
|
||||||
purge_hook(anonymous_user_exist(LUser, LServer),
|
purge_hook(anonymous_user_exist(LUser, LServer),
|
||||||
LUser, LServer),
|
LUser, LServer),
|
||||||
remove_connection(SID, LUser, LServer).
|
remove_connection(SID, LUser, LServer).
|
||||||
|
@ -1574,7 +1574,7 @@ check_privacy_route(From, StateData, FromRoute, To, Packet) ->
|
|||||||
%% Check if privacy rules allow this delivery
|
%% Check if privacy rules allow this delivery
|
||||||
is_privacy_allow(From, To, Packet, PrivacyList) ->
|
is_privacy_allow(From, To, Packet, PrivacyList) ->
|
||||||
User = exmpp_jid:lnode(To),
|
User = exmpp_jid:lnode(To),
|
||||||
Server = exmpp_jid:ldomain(To),
|
Server = exmpp_jid:prep_domain(To),
|
||||||
allow == ejabberd_hooks:run_fold(
|
allow == ejabberd_hooks:run_fold(
|
||||||
privacy_check_packet, Server,
|
privacy_check_packet, Server,
|
||||||
allow,
|
allow,
|
||||||
|
@ -76,7 +76,7 @@ start_link() ->
|
|||||||
process_iq(From, To, Packet) ->
|
process_iq(From, To, Packet) ->
|
||||||
case exmpp_iq:xmlel_to_iq(Packet) of
|
case exmpp_iq:xmlel_to_iq(Packet) of
|
||||||
#iq{kind = request, ns = XMLNS} = IQ_Rec ->
|
#iq{kind = request, ns = XMLNS} = IQ_Rec ->
|
||||||
Host = exmpp_jid:ldomain(To),
|
Host = exmpp_jid:prep_domain(To),
|
||||||
case ets:lookup(?IQTABLE, {XMLNS, Host}) of
|
case ets:lookup(?IQTABLE, {XMLNS, Host}) of
|
||||||
[{_, Module, Function}] ->
|
[{_, Module, Function}] ->
|
||||||
ResIQ = Module:Function(From, To, IQ_Rec),
|
ResIQ = Module:Function(From, To, IQ_Rec),
|
||||||
@ -325,7 +325,7 @@ do_route(From, To, Packet) ->
|
|||||||
<<"result">> -> ok;
|
<<"result">> -> ok;
|
||||||
_ ->
|
_ ->
|
||||||
ejabberd_hooks:run(local_send_to_resource_hook,
|
ejabberd_hooks:run(local_send_to_resource_hook,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
[From, To, Packet])
|
[From, To, Packet])
|
||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
@ -332,7 +332,7 @@ do_route(OrigFrom, OrigTo, OrigPacket) ->
|
|||||||
case ejabberd_hooks:run_fold(filter_packet,
|
case ejabberd_hooks:run_fold(filter_packet,
|
||||||
{OrigFrom, OrigTo, OrigPacket}, []) of
|
{OrigFrom, OrigTo, OrigPacket}, []) of
|
||||||
{From, To, Packet} ->
|
{From, To, Packet} ->
|
||||||
LDomain = exmpp_jid:ldomain(To),
|
LDomain = exmpp_jid:prep_domain(To),
|
||||||
case mnesia:dirty_read(route, LDomain) of
|
case mnesia:dirty_read(route, LDomain) of
|
||||||
[] ->
|
[] ->
|
||||||
ejabberd_s2s:route(From, To, Packet);
|
ejabberd_s2s:route(From, To, Packet);
|
||||||
|
@ -283,7 +283,7 @@ do_route(From, To, Packet) ->
|
|||||||
?DEBUG("sending to process ~p~n", [Pid]),
|
?DEBUG("sending to process ~p~n", [Pid]),
|
||||||
NewPacket1 = exmpp_stanza:set_sender(Packet, From),
|
NewPacket1 = exmpp_stanza:set_sender(Packet, From),
|
||||||
NewPacket = exmpp_stanza:set_recipient(NewPacket1, To),
|
NewPacket = exmpp_stanza:set_recipient(NewPacket1, To),
|
||||||
MyServer = exmpp_jid:ldomain(From),
|
MyServer = exmpp_jid:prep_domain(From),
|
||||||
ejabberd_hooks:run(
|
ejabberd_hooks:run(
|
||||||
s2s_send_packet,
|
s2s_send_packet,
|
||||||
MyServer,
|
MyServer,
|
||||||
|
@ -406,7 +406,7 @@ stream_established({xmlstreamelement, El}, StateData) ->
|
|||||||
(Name == 'presence')) ->
|
(Name == 'presence')) ->
|
||||||
ejabberd_hooks:run(
|
ejabberd_hooks:run(
|
||||||
s2s_receive_packet,
|
s2s_receive_packet,
|
||||||
exmpp_jid:ldomain(From),
|
exmpp_jid:prep_domain(From),
|
||||||
[From, To, El]),
|
[From, To, El]),
|
||||||
ejabberd_router:route(
|
ejabberd_router:route(
|
||||||
From, To, El);
|
From, To, El);
|
||||||
@ -426,7 +426,7 @@ stream_established({xmlstreamelement, El}, StateData) ->
|
|||||||
(Name == 'presence')) ->
|
(Name == 'presence')) ->
|
||||||
ejabberd_hooks:run(
|
ejabberd_hooks:run(
|
||||||
s2s_receive_packet,
|
s2s_receive_packet,
|
||||||
exmpp_jid:ldomain(From),
|
exmpp_jid:prep_domain(From),
|
||||||
[From, To, El]),
|
[From, To, El]),
|
||||||
ejabberd_router:route(
|
ejabberd_router:route(
|
||||||
From, To, El);
|
From, To, El);
|
||||||
|
@ -231,7 +231,7 @@ stream_established({xmlstreamelement, El}, StateData) ->
|
|||||||
%% The default is the standard behaviour in XEP-0114
|
%% The default is the standard behaviour in XEP-0114
|
||||||
_ ->
|
_ ->
|
||||||
FromJID1 = exmpp_jid:parse(From),
|
FromJID1 = exmpp_jid:parse(From),
|
||||||
Server = exmpp_jid:ldomain(FromJID1),
|
Server = exmpp_jid:prep_domain(FromJID1),
|
||||||
case lists:member(Server, StateData#state.hosts) of
|
case lists:member(Server, StateData#state.hosts) of
|
||||||
true -> FromJID1;
|
true -> FromJID1;
|
||||||
false -> error
|
false -> error
|
||||||
|
@ -112,7 +112,7 @@ route(From, To, Packet) ->
|
|||||||
open_session(SID, JID, Info) when ?IS_JID(JID) ->
|
open_session(SID, JID, Info) when ?IS_JID(JID) ->
|
||||||
set_session(SID, JID, undefined, Info),
|
set_session(SID, JID, undefined, Info),
|
||||||
check_for_sessions_to_replace(JID),
|
check_for_sessions_to_replace(JID),
|
||||||
ejabberd_hooks:run(sm_register_connection_hook, exmpp_jid:ldomain(JID),
|
ejabberd_hooks:run(sm_register_connection_hook, exmpp_jid:prep_domain(JID),
|
||||||
[SID, JID, Info]).
|
[SID, JID, Info]).
|
||||||
|
|
||||||
close_session(SID, JID ) when ?IS_JID(JID)->
|
close_session(SID, JID ) when ?IS_JID(JID)->
|
||||||
@ -124,7 +124,7 @@ close_session(SID, JID ) when ?IS_JID(JID)->
|
|||||||
mnesia:delete({session, SID})
|
mnesia:delete({session, SID})
|
||||||
end,
|
end,
|
||||||
mnesia:sync_dirty(F),
|
mnesia:sync_dirty(F),
|
||||||
ejabberd_hooks:run(sm_remove_connection_hook, exmpp_jid:ldomain(JID),
|
ejabberd_hooks:run(sm_remove_connection_hook, exmpp_jid:prep_domain(JID),
|
||||||
[SID, JID, Info]).
|
[SID, JID, Info]).
|
||||||
|
|
||||||
check_in_subscription(Acc, User, Server, _JID, _Type, _Reason)
|
check_in_subscription(Acc, User, Server, _JID, _Type, _Reason)
|
||||||
@ -160,7 +160,7 @@ get_user_resources(User, Server)
|
|||||||
|
|
||||||
get_user_ip(JID) when ?IS_JID(JID) ->
|
get_user_ip(JID) when ?IS_JID(JID) ->
|
||||||
USR = {exmpp_jid:lnode(JID),
|
USR = {exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
exmpp_jid:lresource(JID)},
|
exmpp_jid:lresource(JID)},
|
||||||
case mnesia:dirty_index_read(session, USR, #session.usr) of
|
case mnesia:dirty_index_read(session, USR, #session.usr) of
|
||||||
[] ->
|
[] ->
|
||||||
@ -194,33 +194,33 @@ get_user_info(User, Server, Resource)
|
|||||||
set_presence(SID, JID, Priority, Presence, Info) when ?IS_JID(JID) ->
|
set_presence(SID, JID, Priority, Presence, Info) when ?IS_JID(JID) ->
|
||||||
set_session(SID, JID, Priority, Info),
|
set_session(SID, JID, Priority, Info),
|
||||||
ejabberd_hooks:run(set_presence_hook,
|
ejabberd_hooks:run(set_presence_hook,
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
[exmpp_jid:lnode(JID),
|
[exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
exmpp_jid:lresource(JID),
|
exmpp_jid:lresource(JID),
|
||||||
Presence]).
|
Presence]).
|
||||||
|
|
||||||
unset_presence(SID, JID, Status, Info) when ?IS_JID(JID)->
|
unset_presence(SID, JID, Status, Info) when ?IS_JID(JID)->
|
||||||
set_session(SID, JID, undefined, Info),
|
set_session(SID, JID, undefined, Info),
|
||||||
ejabberd_hooks:run(unset_presence_hook,
|
ejabberd_hooks:run(unset_presence_hook,
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
[exmpp_jid:lnode(JID),
|
[exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
exmpp_jid:lresource(JID),
|
exmpp_jid:lresource(JID),
|
||||||
Status]).
|
Status]).
|
||||||
|
|
||||||
close_session_unset_presence(SID, JID, Status) when ?IS_JID(JID) ->
|
close_session_unset_presence(SID, JID, Status) when ?IS_JID(JID) ->
|
||||||
close_session(SID, JID),
|
close_session(SID, JID),
|
||||||
ejabberd_hooks:run(unset_presence_hook,
|
ejabberd_hooks:run(unset_presence_hook,
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
[exmpp_jid:lnode(JID),
|
[exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
exmpp_jid:lresource(JID),
|
exmpp_jid:lresource(JID),
|
||||||
Status]).
|
Status]).
|
||||||
|
|
||||||
get_session_pid(JID) when ?IS_JID(JID) ->
|
get_session_pid(JID) when ?IS_JID(JID) ->
|
||||||
USR = {exmpp_jid:lnode(JID),
|
USR = {exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
exmpp_jid:lresource(JID)},
|
exmpp_jid:lresource(JID)},
|
||||||
case catch mnesia:dirty_index_read(session, USR, #session.usr) of
|
case catch mnesia:dirty_index_read(session, USR, #session.usr) of
|
||||||
[#session{sid = {_, Pid}}] -> Pid;
|
[#session{sid = {_, Pid}}] -> Pid;
|
||||||
@ -385,9 +385,9 @@ code_change(_OldVsn, State, _Extra) ->
|
|||||||
%%--------------------------------------------------------------------
|
%%--------------------------------------------------------------------
|
||||||
|
|
||||||
set_session(SID, JID, Priority, Info) ->
|
set_session(SID, JID, Priority, Info) ->
|
||||||
US = {exmpp_jid:lnode(JID), exmpp_jid:ldomain(JID)},
|
US = {exmpp_jid:lnode(JID), exmpp_jid:prep_domain(JID)},
|
||||||
USR = {exmpp_jid:lnode(JID),
|
USR = {exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
exmpp_jid:lresource(JID)},
|
exmpp_jid:lresource(JID)},
|
||||||
F = fun() ->
|
F = fun() ->
|
||||||
mnesia:write(#session{sid = SID,
|
mnesia:write(#session{sid = SID,
|
||||||
@ -427,40 +427,40 @@ do_route(From, To, Packet) ->
|
|||||||
{is_privacy_allow(From, To, Packet) andalso
|
{is_privacy_allow(From, To, Packet) andalso
|
||||||
ejabberd_hooks:run_fold(
|
ejabberd_hooks:run_fold(
|
||||||
roster_in_subscription,
|
roster_in_subscription,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
false,
|
false,
|
||||||
[exmpp_jid:lnode(To), exmpp_jid:ldomain(To), From, subscribe, Reason]),
|
[exmpp_jid:lnode(To), exmpp_jid:prep_domain(To), From, subscribe, Reason]),
|
||||||
true};
|
true};
|
||||||
'subscribed' ->
|
'subscribed' ->
|
||||||
{is_privacy_allow(From, To, Packet) andalso
|
{is_privacy_allow(From, To, Packet) andalso
|
||||||
ejabberd_hooks:run_fold(
|
ejabberd_hooks:run_fold(
|
||||||
roster_in_subscription,
|
roster_in_subscription,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
false,
|
false,
|
||||||
[exmpp_jid:lnode(To), exmpp_jid:ldomain(To), From, subscribed, <<>>]),
|
[exmpp_jid:lnode(To), exmpp_jid:prep_domain(To), From, subscribed, <<>>]),
|
||||||
true};
|
true};
|
||||||
'unsubscribe' ->
|
'unsubscribe' ->
|
||||||
{is_privacy_allow(From, To, Packet) andalso
|
{is_privacy_allow(From, To, Packet) andalso
|
||||||
ejabberd_hooks:run_fold(
|
ejabberd_hooks:run_fold(
|
||||||
roster_in_subscription,
|
roster_in_subscription,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
false,
|
false,
|
||||||
[exmpp_jid:lnode(To), exmpp_jid:ldomain(To), From, unsubscribe, <<>>]),
|
[exmpp_jid:lnode(To), exmpp_jid:prep_domain(To), From, unsubscribe, <<>>]),
|
||||||
true};
|
true};
|
||||||
'unsubscribed' ->
|
'unsubscribed' ->
|
||||||
{is_privacy_allow(From, To, Packet) andalso
|
{is_privacy_allow(From, To, Packet) andalso
|
||||||
ejabberd_hooks:run_fold(
|
ejabberd_hooks:run_fold(
|
||||||
roster_in_subscription,
|
roster_in_subscription,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
false,
|
false,
|
||||||
[exmpp_jid:lnode(To), exmpp_jid:ldomain(To), From, unsubscribed, <<>>]),
|
[exmpp_jid:lnode(To), exmpp_jid:prep_domain(To), From, unsubscribed, <<>>]),
|
||||||
true};
|
true};
|
||||||
_ ->
|
_ ->
|
||||||
{true, false}
|
{true, false}
|
||||||
end,
|
end,
|
||||||
if Pass ->
|
if Pass ->
|
||||||
PResources = get_user_present_resources(
|
PResources = get_user_present_resources(
|
||||||
exmpp_jid:lnode(To), exmpp_jid:ldomain(To)),
|
exmpp_jid:lnode(To), exmpp_jid:prep_domain(To)),
|
||||||
lists:foreach(
|
lists:foreach(
|
||||||
fun({_, R}) ->
|
fun({_, R}) ->
|
||||||
do_route(
|
do_route(
|
||||||
@ -482,13 +482,13 @@ do_route(From, To, Packet) ->
|
|||||||
exmpp_jid:full(To, R),
|
exmpp_jid:full(To, R),
|
||||||
Packet)
|
Packet)
|
||||||
end, get_user_resources(exmpp_jid:lnode(To),
|
end, get_user_resources(exmpp_jid:lnode(To),
|
||||||
exmpp_jid:ldomain(To)));
|
exmpp_jid:prep_domain(To)));
|
||||||
_ ->
|
_ ->
|
||||||
ok
|
ok
|
||||||
end;
|
end;
|
||||||
_ ->
|
_ ->
|
||||||
USR = {exmpp_jid:lnode(To),
|
USR = {exmpp_jid:lnode(To),
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
exmpp_jid:lresource(To)},
|
exmpp_jid:lresource(To)},
|
||||||
case mnesia:dirty_index_read(session, USR, #session.usr) of
|
case mnesia:dirty_index_read(session, USR, #session.usr) of
|
||||||
[] ->
|
[] ->
|
||||||
@ -522,7 +522,7 @@ do_route(From, To, Packet) ->
|
|||||||
%% or if there are no current sessions for the user.
|
%% or if there are no current sessions for the user.
|
||||||
is_privacy_allow(From, To, Packet) ->
|
is_privacy_allow(From, To, Packet) ->
|
||||||
User = exmpp_jid:lnode(To),
|
User = exmpp_jid:lnode(To),
|
||||||
Server = exmpp_jid:ldomain(To),
|
Server = exmpp_jid:prep_domain(To),
|
||||||
PrivacyList = ejabberd_hooks:run_fold(privacy_get_user_list, Server,
|
PrivacyList = ejabberd_hooks:run_fold(privacy_get_user_list, Server,
|
||||||
#userlist{}, [User, Server]),
|
#userlist{}, [User, Server]),
|
||||||
is_privacy_allow(From, To, Packet, PrivacyList).
|
is_privacy_allow(From, To, Packet, PrivacyList).
|
||||||
@ -531,7 +531,7 @@ is_privacy_allow(From, To, Packet) ->
|
|||||||
%% Function copied from ejabberd_c2s.erl
|
%% Function copied from ejabberd_c2s.erl
|
||||||
is_privacy_allow(From, To, Packet, PrivacyList) ->
|
is_privacy_allow(From, To, Packet, PrivacyList) ->
|
||||||
User = exmpp_jid:lnode(To),
|
User = exmpp_jid:lnode(To),
|
||||||
Server = exmpp_jid:ldomain(To),
|
Server = exmpp_jid:prep_domain(To),
|
||||||
allow == ejabberd_hooks:run_fold(
|
allow == ejabberd_hooks:run_fold(
|
||||||
privacy_check_packet, Server,
|
privacy_check_packet, Server,
|
||||||
allow,
|
allow,
|
||||||
@ -543,7 +543,7 @@ is_privacy_allow(From, To, Packet, PrivacyList) ->
|
|||||||
|
|
||||||
route_message(From, To, Packet) ->
|
route_message(From, To, Packet) ->
|
||||||
LUser = exmpp_jid:lnode(To),
|
LUser = exmpp_jid:lnode(To),
|
||||||
LServer = exmpp_jid:ldomain(To),
|
LServer = exmpp_jid:prep_domain(To),
|
||||||
PrioRes = get_user_present_resources(LUser, LServer),
|
PrioRes = get_user_present_resources(LUser, LServer),
|
||||||
case catch lists:max(PrioRes) of
|
case catch lists:max(PrioRes) of
|
||||||
{Priority, _R} when is_integer(Priority), Priority >= 0 ->
|
{Priority, _R} when is_integer(Priority), Priority >= 0 ->
|
||||||
@ -579,7 +579,7 @@ route_message(From, To, Packet) ->
|
|||||||
exmpp_jid:ldomain_as_list(To)) of
|
exmpp_jid:ldomain_as_list(To)) of
|
||||||
true ->
|
true ->
|
||||||
ejabberd_hooks:run(offline_message_hook,
|
ejabberd_hooks:run(offline_message_hook,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
[From, To, Packet]);
|
[From, To, Packet]);
|
||||||
_ ->
|
_ ->
|
||||||
Err = exmpp_stanza:reply_with_error(
|
Err = exmpp_stanza:reply_with_error(
|
||||||
@ -636,7 +636,7 @@ check_for_sessions_to_replace(JID) ->
|
|||||||
|
|
||||||
check_existing_resources(JID) ->
|
check_existing_resources(JID) ->
|
||||||
USR = {exmpp_jid:lnode(JID),
|
USR = {exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
exmpp_jid:lresource(JID)},
|
exmpp_jid:lresource(JID)},
|
||||||
%% A connection exist with the same resource. We replace it:
|
%% A connection exist with the same resource. We replace it:
|
||||||
SIDs = mnesia:dirty_select(
|
SIDs = mnesia:dirty_select(
|
||||||
@ -659,7 +659,7 @@ check_max_sessions(JID) ->
|
|||||||
SIDs = mnesia:dirty_select(
|
SIDs = mnesia:dirty_select(
|
||||||
session,
|
session,
|
||||||
[{#session{sid = '$1',
|
[{#session{sid = '$1',
|
||||||
us = {exmpp_jid:lnode(JID), exmpp_jid:ldomain(JID)},
|
us = {exmpp_jid:lnode(JID), exmpp_jid:prep_domain(JID)},
|
||||||
_ = '_'}, [],
|
_ = '_'}, [],
|
||||||
['$1']}]),
|
['$1']}]),
|
||||||
MaxSessions = get_max_user_sessions(JID),
|
MaxSessions = get_max_user_sessions(JID),
|
||||||
@ -690,7 +690,7 @@ get_max_user_sessions(JID) ->
|
|||||||
process_iq(From, To, Packet) ->
|
process_iq(From, To, Packet) ->
|
||||||
case exmpp_iq:xmlel_to_iq(Packet) of
|
case exmpp_iq:xmlel_to_iq(Packet) of
|
||||||
#iq{kind = request, ns = XMLNS} = IQ_Rec ->
|
#iq{kind = request, ns = XMLNS} = IQ_Rec ->
|
||||||
LServer = exmpp_jid:ldomain(To),
|
LServer = exmpp_jid:prep_domain(To),
|
||||||
case ets:lookup(sm_iqtable, {XMLNS, LServer}) of
|
case ets:lookup(sm_iqtable, {XMLNS, LServer}) of
|
||||||
[{_, Module, Function}] ->
|
[{_, Module, Function}] ->
|
||||||
ResIQ = Module:Function(From, To, IQ_Rec),
|
ResIQ = Module:Function(From, To, IQ_Rec),
|
||||||
|
@ -218,7 +218,7 @@ get_admin_jids() ->
|
|||||||
try
|
try
|
||||||
JID = exmpp_jid:parse(S),
|
JID = exmpp_jid:parse(S),
|
||||||
[{exmpp_jid:lnode(JID),
|
[{exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
exmpp_jid:lresource(JID)}]
|
exmpp_jid:lresource(JID)}]
|
||||||
catch
|
catch
|
||||||
_ ->
|
_ ->
|
||||||
|
@ -383,7 +383,7 @@ short_bare_jid(JID) ->
|
|||||||
|
|
||||||
short_prepd_jid(JID) ->
|
short_prepd_jid(JID) ->
|
||||||
{exmpp_jid:lnode(JID),
|
{exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
exmpp_jid:lresource(JID)}.
|
exmpp_jid:lresource(JID)}.
|
||||||
|
|
||||||
short_prepd_bare_jid(JID) ->
|
short_prepd_bare_jid(JID) ->
|
||||||
|
@ -103,7 +103,7 @@ get_local_commands(Acc, _From, To, <<>>, Lang) ->
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
get_local_commands(_Acc, From, To, ?NS_ADHOC_b, Lang) ->
|
get_local_commands(_Acc, From, To, ?NS_ADHOC_b, Lang) ->
|
||||||
ejabberd_hooks:run_fold(adhoc_local_items, exmpp_jid:ldomain(To), {result, []}, [From, To, Lang]);
|
ejabberd_hooks:run_fold(adhoc_local_items, exmpp_jid:prep_domain(To), {result, []}, [From, To, Lang]);
|
||||||
|
|
||||||
get_local_commands(_Acc, _From, _To, <<"ping">>, _Lang) ->
|
get_local_commands(_Acc, _From, _To, <<"ping">>, _Lang) ->
|
||||||
{result, []};
|
{result, []};
|
||||||
@ -134,7 +134,7 @@ get_sm_commands(Acc, _From, To, <<>>, Lang) ->
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
get_sm_commands(_Acc, From, To, ?NS_ADHOC_b, Lang) ->
|
get_sm_commands(_Acc, From, To, ?NS_ADHOC_b, Lang) ->
|
||||||
ejabberd_hooks:run_fold(adhoc_sm_items, exmpp_jid:ldomain(To), {result, []}, [From, To, Lang]);
|
ejabberd_hooks:run_fold(adhoc_sm_items, exmpp_jid:prep_domain(To), {result, []}, [From, To, Lang]);
|
||||||
|
|
||||||
get_sm_commands(Acc, _From, _To, _Node, _Lang) ->
|
get_sm_commands(Acc, _From, _To, _Node, _Lang) ->
|
||||||
Acc.
|
Acc.
|
||||||
@ -221,7 +221,7 @@ process_adhoc_request(From, To, IQ_Rec, Hook) ->
|
|||||||
{error, Error} ->
|
{error, Error} ->
|
||||||
exmpp_iq:error(IQ_Rec, Error);
|
exmpp_iq:error(IQ_Rec, Error);
|
||||||
#adhoc_request{} = AdhocRequest ->
|
#adhoc_request{} = AdhocRequest ->
|
||||||
case ejabberd_hooks:run_fold(Hook, exmpp_jid:ldomain(To), empty,
|
case ejabberd_hooks:run_fold(Hook, exmpp_jid:prep_domain(To), empty,
|
||||||
[From, To, AdhocRequest]) of
|
[From, To, AdhocRequest]) of
|
||||||
ignore ->
|
ignore ->
|
||||||
ignore;
|
ignore;
|
||||||
|
@ -702,7 +702,7 @@ announce_online(From, To, Packet) ->
|
|||||||
Err = exmpp_stanza:reply_with_error(Packet, 'forbidden'),
|
Err = exmpp_stanza:reply_with_error(Packet, 'forbidden'),
|
||||||
ejabberd_router:route(To, From, Err);
|
ejabberd_router:route(To, From, Err);
|
||||||
allow ->
|
allow ->
|
||||||
announce_online1(ejabberd_sm:get_vh_session_list(exmpp_jid:ldomain(To)),
|
announce_online1(ejabberd_sm:get_vh_session_list(exmpp_jid:prep_domain(To)),
|
||||||
exmpp_jid:domain_as_list(To),
|
exmpp_jid:domain_as_list(To),
|
||||||
Packet)
|
Packet)
|
||||||
end.
|
end.
|
||||||
@ -837,7 +837,7 @@ send_motd(JID) ->
|
|||||||
[#motd_users{}] ->
|
[#motd_users{}] ->
|
||||||
ok;
|
ok;
|
||||||
_ ->
|
_ ->
|
||||||
Local = exmpp_jid:make(exmpp_jid:ldomain(JID)),
|
Local = exmpp_jid:make(exmpp_jid:prep_domain(JID)),
|
||||||
ejabberd_router:route(Local, JID, Packet),
|
ejabberd_router:route(Local, JID, Packet),
|
||||||
F = fun() ->
|
F = fun() ->
|
||||||
mnesia:write(#motd_users{us = US})
|
mnesia:write(#motd_users{us = US})
|
||||||
|
@ -315,7 +315,7 @@ handle_cast({note_caps, From,
|
|||||||
%% lots of caps disco requests.
|
%% lots of caps disco requests.
|
||||||
%#jid{node = U, domain = S, resource = R} = From,
|
%#jid{node = U, domain = S, resource = R} = From,
|
||||||
U = exmpp_jid:lnode(From),
|
U = exmpp_jid:lnode(From),
|
||||||
S = exmpp_jid:ldomain(From),
|
S = exmpp_jid:prep_domain(From),
|
||||||
R = exmpp_jid:resource(From),
|
R = exmpp_jid:resource(From),
|
||||||
BJID = exmpp_jid:jid_to_binary(From),
|
BJID = exmpp_jid:jid_to_binary(From),
|
||||||
mnesia:transaction(fun() ->
|
mnesia:transaction(fun() ->
|
||||||
|
@ -299,7 +299,7 @@ get_sm_items(Acc, From, To, Node, Lang) ->
|
|||||||
|
|
||||||
get_user_resources(BareJID) ->
|
get_user_resources(BareJID) ->
|
||||||
Rs = ejabberd_sm:get_user_resources(exmpp_jid:lnode(BareJID),
|
Rs = ejabberd_sm:get_user_resources(exmpp_jid:lnode(BareJID),
|
||||||
exmpp_jid:ldomain(BareJID)),
|
exmpp_jid:prep_domain(BareJID)),
|
||||||
lists:map(fun(R) ->
|
lists:map(fun(R) ->
|
||||||
#xmlel{ns = ?NS_DISCO_ITEMS, name = 'item', attrs =
|
#xmlel{ns = ?NS_DISCO_ITEMS, name = 'item', attrs =
|
||||||
[?XMLATTR('jid',
|
[?XMLATTR('jid',
|
||||||
@ -1641,7 +1641,7 @@ set_form(From, Host, ?NS_ADMINL("get-user-lastlogin"), Lang, XData) ->
|
|||||||
%% TODO: Update time format to XEP-0202: Entity Time
|
%% TODO: Update time format to XEP-0202: Entity Time
|
||||||
FLast =
|
FLast =
|
||||||
case ejabberd_sm:get_user_resources(exmpp_jid:lnode(User),
|
case ejabberd_sm:get_user_resources(exmpp_jid:lnode(User),
|
||||||
exmpp_jid:ldomain(Server)) of
|
exmpp_jid:prep_domain(Server)) of
|
||||||
[] ->
|
[] ->
|
||||||
_US = {User, Server},
|
_US = {User, Server},
|
||||||
case get_last_info(User, Server) of
|
case get_last_info(User, Server) of
|
||||||
@ -1676,13 +1676,13 @@ set_form(From, Host, ?NS_ADMINL("user-stats"), Lang, XData) ->
|
|||||||
true = (Server == Host) orelse (get_permission_level(From) == global),
|
true = (Server == Host) orelse (get_permission_level(From) == global),
|
||||||
|
|
||||||
Resources = ejabberd_sm:get_user_resources(exmpp_jid:lnode(JID),
|
Resources = ejabberd_sm:get_user_resources(exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID)),
|
exmpp_jid:prep_domain(JID)),
|
||||||
IPs1 = [ejabberd_sm:get_user_ip(exmpp_jid:full(JID,Resource))
|
IPs1 = [ejabberd_sm:get_user_ip(exmpp_jid:full(JID,Resource))
|
||||||
|| Resource <- Resources],
|
|| Resource <- Resources],
|
||||||
IPs = [inet_parse:ntoa(IP)++":"++integer_to_list(Port) || {IP, Port} <- IPs1],
|
IPs = [inet_parse:ntoa(IP)++":"++integer_to_list(Port) || {IP, Port} <- IPs1],
|
||||||
|
|
||||||
Items = ejabberd_hooks:run_fold(roster_get,
|
Items = ejabberd_hooks:run_fold(roster_get,
|
||||||
exmpp_jid:ldomain(JID),
|
exmpp_jid:prep_domain(JID),
|
||||||
[],
|
[],
|
||||||
[{list_to_binary(User), list_to_binary(Server)}]),
|
[{list_to_binary(User), list_to_binary(Server)}]),
|
||||||
Rostersize = integer_to_list(erlang:length(Items)),
|
Rostersize = integer_to_list(erlang:length(Items)),
|
||||||
|
@ -133,7 +133,7 @@ process_local_iq_items(From, To, #iq{type = get, payload = SubEl,
|
|||||||
Node = exmpp_xml:get_attribute_as_binary(SubEl, 'node', <<>>),
|
Node = exmpp_xml:get_attribute_as_binary(SubEl, 'node', <<>>),
|
||||||
|
|
||||||
case ejabberd_hooks:run_fold(disco_local_items,
|
case ejabberd_hooks:run_fold(disco_local_items,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
empty,
|
empty,
|
||||||
[From, To, Node, Lang]) of
|
[From, To, Node, Lang]) of
|
||||||
{result, Items} ->
|
{result, Items} ->
|
||||||
@ -155,11 +155,11 @@ process_local_iq_info(From, To, #iq{type = get, payload = SubEl,
|
|||||||
lang = Lang} = IQ_Rec) ->
|
lang = Lang} = IQ_Rec) ->
|
||||||
Node = exmpp_xml:get_attribute_as_binary(SubEl, 'node', <<>>),
|
Node = exmpp_xml:get_attribute_as_binary(SubEl, 'node', <<>>),
|
||||||
Identity = ejabberd_hooks:run_fold(disco_local_identity,
|
Identity = ejabberd_hooks:run_fold(disco_local_identity,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
[],
|
[],
|
||||||
[From, To, Node, Lang]),
|
[From, To, Node, Lang]),
|
||||||
case ejabberd_hooks:run_fold(disco_local_features,
|
case ejabberd_hooks:run_fold(disco_local_features,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
empty,
|
empty,
|
||||||
[From, To, Node, Lang]) of
|
[From, To, Node, Lang]) of
|
||||||
{result, Features} ->
|
{result, Features} ->
|
||||||
@ -274,7 +274,7 @@ process_sm_iq_items(From, To, #iq{type = get, payload = SubEl,
|
|||||||
lang = Lang} = IQ_Rec) ->
|
lang = Lang} = IQ_Rec) ->
|
||||||
Node = exmpp_xml:get_attribute_as_binary(SubEl, 'node', <<>>),
|
Node = exmpp_xml:get_attribute_as_binary(SubEl, 'node', <<>>),
|
||||||
case ejabberd_hooks:run_fold(disco_sm_items,
|
case ejabberd_hooks:run_fold(disco_sm_items,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
empty,
|
empty,
|
||||||
[From, To, Node, Lang]) of
|
[From, To, Node, Lang]) of
|
||||||
{result, Items} ->
|
{result, Items} ->
|
||||||
@ -348,11 +348,11 @@ process_sm_iq_info(From, To, #iq{type = get, payload = SubEl,
|
|||||||
lang = Lang} = IQ_Rec) ->
|
lang = Lang} = IQ_Rec) ->
|
||||||
Node = exmpp_xml:get_attribute_as_binary(SubEl, 'node', <<>>),
|
Node = exmpp_xml:get_attribute_as_binary(SubEl, 'node', <<>>),
|
||||||
Identity = ejabberd_hooks:run_fold(disco_sm_identity,
|
Identity = ejabberd_hooks:run_fold(disco_sm_identity,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
[],
|
[],
|
||||||
[From, To, Node, Lang]),
|
[From, To, Node, Lang]),
|
||||||
case ejabberd_hooks:run_fold(disco_sm_features,
|
case ejabberd_hooks:run_fold(disco_sm_features,
|
||||||
exmpp_jid:ldomain(To),
|
exmpp_jid:prep_domain(To),
|
||||||
empty,
|
empty,
|
||||||
[From, To, Node, Lang]) of
|
[From, To, Node, Lang]) of
|
||||||
{result, Features} ->
|
{result, Features} ->
|
||||||
@ -393,7 +393,7 @@ get_sm_features(Acc, _From, _To, _Node, _Lang) ->
|
|||||||
|
|
||||||
get_user_resources(JID) ->
|
get_user_resources(JID) ->
|
||||||
Rs = ejabberd_sm:get_user_resources(exmpp_jid:lnode(JID),
|
Rs = ejabberd_sm:get_user_resources(exmpp_jid:lnode(JID),
|
||||||
exmpp_jid:ldomain(JID)),
|
exmpp_jid:prep_domain(JID)),
|
||||||
lists:map(fun(R) ->
|
lists:map(fun(R) ->
|
||||||
#xmlel{ns = ?NS_DISCO_ITEMS, name = 'item', attrs = [
|
#xmlel{ns = ?NS_DISCO_ITEMS, name = 'item', attrs = [
|
||||||
?XMLATTR('jid',
|
?XMLATTR('jid',
|
||||||
|
@ -105,23 +105,23 @@ now_to_seconds({MegaSecs, Secs, _MicroSecs}) ->
|
|||||||
process_sm_iq(From, To, #iq{type = get} = IQ_Rec) ->
|
process_sm_iq(From, To, #iq{type = get} = IQ_Rec) ->
|
||||||
{Subscription, _Groups} =
|
{Subscription, _Groups} =
|
||||||
ejabberd_hooks:run_fold(
|
ejabberd_hooks:run_fold(
|
||||||
roster_get_jid_info, exmpp_jid:ldomain(To),
|
roster_get_jid_info, exmpp_jid:prep_domain(To),
|
||||||
{none, []}, [exmpp_jid:lnode(To), exmpp_jid:ldomain(To), From]),
|
{none, []}, [exmpp_jid:lnode(To), exmpp_jid:prep_domain(To), From]),
|
||||||
if
|
if
|
||||||
(Subscription == both) or (Subscription == from) ->
|
(Subscription == both) or (Subscription == from) ->
|
||||||
UserListRecord = ejabberd_hooks:run_fold(
|
UserListRecord = ejabberd_hooks:run_fold(
|
||||||
privacy_get_user_list, exmpp_jid:ldomain(To),
|
privacy_get_user_list, exmpp_jid:prep_domain(To),
|
||||||
#userlist{},
|
#userlist{},
|
||||||
[exmpp_jid:lnode(To), exmpp_jid:ldomain(To)]),
|
[exmpp_jid:lnode(To), exmpp_jid:prep_domain(To)]),
|
||||||
case ejabberd_hooks:run_fold(
|
case ejabberd_hooks:run_fold(
|
||||||
privacy_check_packet, exmpp_jid:ldomain(To),
|
privacy_check_packet, exmpp_jid:prep_domain(To),
|
||||||
allow,
|
allow,
|
||||||
[exmpp_jid:lnode(To), exmpp_jid:ldomain(To), UserListRecord,
|
[exmpp_jid:lnode(To), exmpp_jid:prep_domain(To), UserListRecord,
|
||||||
{From, To,
|
{From, To,
|
||||||
exmpp_presence:available()},
|
exmpp_presence:available()},
|
||||||
out]) of
|
out]) of
|
||||||
allow ->
|
allow ->
|
||||||
get_last(IQ_Rec, exmpp_jid:lnode(To), exmpp_jid:ldomain(To));
|
get_last(IQ_Rec, exmpp_jid:lnode(To), exmpp_jid:prep_domain(To));
|
||||||
deny ->
|
deny ->
|
||||||
exmpp_iq:error(IQ_Rec, 'not-allowed')
|
exmpp_iq:error(IQ_Rec, 'not-allowed')
|
||||||
end;
|
end;
|
||||||
|
@ -99,18 +99,18 @@ process_sm_iq(From, To, #iq{type = get} = IQ_Rec) ->
|
|||||||
Server = exmpp_jid:ldomain_as_list(To),
|
Server = exmpp_jid:ldomain_as_list(To),
|
||||||
{Subscription, _Groups} =
|
{Subscription, _Groups} =
|
||||||
ejabberd_hooks:run_fold(
|
ejabberd_hooks:run_fold(
|
||||||
roster_get_jid_info, exmpp_jid:ldomain(To),
|
roster_get_jid_info, exmpp_jid:prep_domain(To),
|
||||||
{none, []}, [exmpp_jid:lnode(To), exmpp_jid:ldomain(To), From]),
|
{none, []}, [exmpp_jid:lnode(To), exmpp_jid:prep_domain(To), From]),
|
||||||
if
|
if
|
||||||
(Subscription == both) or (Subscription == from) ->
|
(Subscription == both) or (Subscription == from) ->
|
||||||
UserListRecord = ejabberd_hooks:run_fold(
|
UserListRecord = ejabberd_hooks:run_fold(
|
||||||
privacy_get_user_list, exmpp_jid:ldomain(To),
|
privacy_get_user_list, exmpp_jid:prep_domain(To),
|
||||||
#userlist{},
|
#userlist{},
|
||||||
[exmpp_jid:lnode(To), exmpp_jid:ldomain(To)]),
|
[exmpp_jid:lnode(To), exmpp_jid:prep_domain(To)]),
|
||||||
case ejabberd_hooks:run_fold(
|
case ejabberd_hooks:run_fold(
|
||||||
privacy_check_packet, exmpp_jid:ldomain(To),
|
privacy_check_packet, exmpp_jid:prep_domain(To),
|
||||||
allow,
|
allow,
|
||||||
[exmpp_jid:lnode(To), exmpp_jid:ldomain(To), UserListRecord,
|
[exmpp_jid:lnode(To), exmpp_jid:prep_domain(To), UserListRecord,
|
||||||
{From, To,
|
{From, To,
|
||||||
exmpp_presence:available()},
|
exmpp_presence:available()},
|
||||||
out]) of
|
out]) of
|
||||||
|
@ -146,7 +146,7 @@ process_iq_disco_items(Host, From, To, #iq{lang = Lang} = IQ) when is_binary(Hos
|
|||||||
can_use_nick(_Host, _JID, <<>>) ->
|
can_use_nick(_Host, _JID, <<>>) ->
|
||||||
false;
|
false;
|
||||||
can_use_nick(Host, JID, Nick) when is_binary(Host), is_binary(Nick) ->
|
can_use_nick(Host, JID, Nick) when is_binary(Host), is_binary(Nick) ->
|
||||||
LUS = {exmpp_jid:lnode(JID), exmpp_jid:ldomain(JID)},
|
LUS = {exmpp_jid:lnode(JID), exmpp_jid:prep_domain(JID)},
|
||||||
case catch mnesia:dirty_select(
|
case catch mnesia:dirty_select(
|
||||||
muc_registered,
|
muc_registered,
|
||||||
[{#muc_registered{us_host = '$1',
|
[{#muc_registered{us_host = '$1',
|
||||||
@ -662,7 +662,7 @@ flush() ->
|
|||||||
|
|
||||||
iq_get_register_info(Host, From, Lang) ->
|
iq_get_register_info(Host, From, Lang) ->
|
||||||
LUser = exmpp_jid:lnode(From),
|
LUser = exmpp_jid:lnode(From),
|
||||||
LServer = exmpp_jid:ldomain(From),
|
LServer = exmpp_jid:prep_domain(From),
|
||||||
LUS = {LUser, LServer},
|
LUS = {LUser, LServer},
|
||||||
{Nick, Registered} =
|
{Nick, Registered} =
|
||||||
case catch mnesia:dirty_read(muc_registered, {LUS, Host}) of
|
case catch mnesia:dirty_read(muc_registered, {LUS, Host}) of
|
||||||
@ -692,7 +692,7 @@ iq_get_register_info(Host, From, Lang) ->
|
|||||||
|
|
||||||
iq_set_register_info(Host, From, Nick, Lang) when is_binary(Host), is_binary(Nick) ->
|
iq_set_register_info(Host, From, Nick, Lang) when is_binary(Host), is_binary(Nick) ->
|
||||||
LUser = exmpp_jid:lnode(From),
|
LUser = exmpp_jid:lnode(From),
|
||||||
LServer = exmpp_jid:ldomain(From),
|
LServer = exmpp_jid:prep_domain(From),
|
||||||
LUS = {LUser, LServer},
|
LUS = {LUser, LServer},
|
||||||
F = fun() ->
|
F = fun() ->
|
||||||
case Nick of
|
case Nick of
|
||||||
|
@ -3495,7 +3495,7 @@ add_to_log(Type, Data, StateData) ->
|
|||||||
|
|
||||||
tab_add_online_user(JID, StateData) ->
|
tab_add_online_user(JID, StateData) ->
|
||||||
LUser = exmpp_jid:lnode(JID),
|
LUser = exmpp_jid:lnode(JID),
|
||||||
LServer = exmpp_jid:ldomain(JID),
|
LServer = exmpp_jid:prep_domain(JID),
|
||||||
US = {LUser, LServer},
|
US = {LUser, LServer},
|
||||||
Room = StateData#state.room,
|
Room = StateData#state.room,
|
||||||
Host = StateData#state.host,
|
Host = StateData#state.host,
|
||||||
@ -3507,7 +3507,7 @@ tab_add_online_user(JID, StateData) ->
|
|||||||
|
|
||||||
tab_remove_online_user(JID, StateData) when ?IS_JID(JID) ->
|
tab_remove_online_user(JID, StateData) when ?IS_JID(JID) ->
|
||||||
LUser = exmpp_jid:lnode(JID),
|
LUser = exmpp_jid:lnode(JID),
|
||||||
LServer = exmpp_jid:ldomain(JID),
|
LServer = exmpp_jid:prep_domain(JID),
|
||||||
tab_remove_online_user({LUser, LServer, none},StateData);
|
tab_remove_online_user({LUser, LServer, none},StateData);
|
||||||
|
|
||||||
tab_remove_online_user({LUser, LServer,_}, StateData) ->
|
tab_remove_online_user({LUser, LServer,_}, StateData) ->
|
||||||
@ -3520,7 +3520,7 @@ tab_remove_online_user({LUser, LServer,_}, StateData) ->
|
|||||||
|
|
||||||
tab_count_user(JID) ->
|
tab_count_user(JID) ->
|
||||||
LUser = exmpp_jid:lnode(JID),
|
LUser = exmpp_jid:lnode(JID),
|
||||||
LServer = exmpp_jid:ldomain(JID),
|
LServer = exmpp_jid:prep_domain(JID),
|
||||||
US = {LUser, LServer},
|
US = {LUser, LServer},
|
||||||
case catch ets:select(
|
case catch ets:select(
|
||||||
muc_online_users,
|
muc_online_users,
|
||||||
|
@ -661,7 +661,7 @@ is_type_match(Type, Value, JID, Subscription, Groups) ->
|
|||||||
jid ->
|
jid ->
|
||||||
{User, Server, Resource} = Value,
|
{User, Server, Resource} = Value,
|
||||||
((User == undefined) orelse (User == []) orelse (User == exmpp_jid:lnode(JID)))
|
((User == undefined) orelse (User == []) orelse (User == exmpp_jid:lnode(JID)))
|
||||||
andalso ((Server == undefined) orelse (Server == []) orelse (Server == exmpp_jid:ldomain(JID)))
|
andalso ((Server == undefined) orelse (Server == []) orelse (Server == exmpp_jid:prep_domain(JID)))
|
||||||
andalso ((Resource == undefined) orelse (Resource == []) orelse (Resource == exmpp_jid:lresource(JID)));
|
andalso ((Resource == undefined) orelse (Resource == []) orelse (Resource == exmpp_jid:lresource(JID)));
|
||||||
subscription ->
|
subscription ->
|
||||||
Value == Subscription;
|
Value == Subscription;
|
||||||
|
@ -660,7 +660,7 @@ is_type_match(Type, Value, JID, Subscription, Groups) ->
|
|||||||
jid ->
|
jid ->
|
||||||
{User, Server, Resource} = Value,
|
{User, Server, Resource} = Value,
|
||||||
((User == undefined) orelse (User == []) orelse (User == exmpp_jid:lnode(JID)))
|
((User == undefined) orelse (User == []) orelse (User == exmpp_jid:lnode(JID)))
|
||||||
andalso ((Server == undefined) orelse (Server == []) orelse (Server == exmpp_jid:ldomain(JID)))
|
andalso ((Server == undefined) orelse (Server == []) orelse (Server == exmpp_jid:prep_domain(JID)))
|
||||||
andalso ((Resource == undefined) orelse (Resource == []) orelse (Resource == exmpp_jid:lresource(JID)));
|
andalso ((Resource == undefined) orelse (Resource == []) orelse (Resource == exmpp_jid:lresource(JID)));
|
||||||
subscription ->
|
subscription ->
|
||||||
Value == Subscription;
|
Value == Subscription;
|
||||||
|
@ -74,7 +74,7 @@ process_sm_iq(From, To, #iq{type = Type} = IQ_Rec) ->
|
|||||||
|
|
||||||
process_iq_get(From, _To, #iq{payload = SubEl} = IQ_Rec) ->
|
process_iq_get(From, _To, #iq{payload = SubEl} = IQ_Rec) ->
|
||||||
LUser = exmpp_jid:lnode(From),
|
LUser = exmpp_jid:lnode(From),
|
||||||
LServer = exmpp_jid:ldomain(From),
|
LServer = exmpp_jid:prep_domain(From),
|
||||||
case catch get_data(LUser,
|
case catch get_data(LUser,
|
||||||
LServer,
|
LServer,
|
||||||
exmpp_xml:get_child_elements(SubEl)) of
|
exmpp_xml:get_child_elements(SubEl)) of
|
||||||
@ -89,7 +89,7 @@ process_iq_get(From, _To, #iq{payload = SubEl} = IQ_Rec) ->
|
|||||||
|
|
||||||
process_iq_set(From, _To, #iq{payload = SubEl} = IQ_Rec) ->
|
process_iq_set(From, _To, #iq{payload = SubEl} = IQ_Rec) ->
|
||||||
LUser = exmpp_jid:lnode(From),
|
LUser = exmpp_jid:lnode(From),
|
||||||
LServer = exmpp_jid:ldomain(From),
|
LServer = exmpp_jid:prep_domain(From),
|
||||||
F = fun() ->
|
F = fun() ->
|
||||||
lists:foreach(
|
lists:foreach(
|
||||||
fun(El) ->
|
fun(El) ->
|
||||||
|
@ -163,8 +163,8 @@ process_local_iq(From, To, #iq{type = set} = IQ_Rec)
|
|||||||
%% IQ_Result = exmpp_iq:iq()
|
%% IQ_Result = exmpp_iq:iq()
|
||||||
|
|
||||||
process_iq_get(From, To, IQ_Rec) ->
|
process_iq_get(From, To, IQ_Rec) ->
|
||||||
US = {exmpp_jid:lnode(From), exmpp_jid:ldomain(From)},
|
US = {exmpp_jid:lnode(From), exmpp_jid:prep_domain(From)},
|
||||||
case catch ejabberd_hooks:run_fold(roster_get, exmpp_jid:ldomain(To), [], [US]) of
|
case catch ejabberd_hooks:run_fold(roster_get, exmpp_jid:prep_domain(To), [], [US]) of
|
||||||
Items when is_list(Items) ->
|
Items when is_list(Items) ->
|
||||||
XItems = lists:map(fun item_to_xml/1, Items),
|
XItems = lists:map(fun item_to_xml/1, Items),
|
||||||
Result = #xmlel{ns = ?NS_ROSTER, name = 'query',
|
Result = #xmlel{ns = ?NS_ROSTER, name = 'query',
|
||||||
@ -251,7 +251,7 @@ process_item_set(From, To, #xmlel{} = El) ->
|
|||||||
JID1 = exmpp_jid:parse(exmpp_xml:get_attribute_as_binary(El, 'jid', <<>>)),
|
JID1 = exmpp_jid:parse(exmpp_xml:get_attribute_as_binary(El, 'jid', <<>>)),
|
||||||
User = exmpp_jid:node(From),
|
User = exmpp_jid:node(From),
|
||||||
LUser = exmpp_jid:lnode(From),
|
LUser = exmpp_jid:lnode(From),
|
||||||
LServer = exmpp_jid:ldomain(From),
|
LServer = exmpp_jid:prep_domain(From),
|
||||||
JID = jlib:short_jid(JID1),
|
JID = jlib:short_jid(JID1),
|
||||||
LJID = jlib:short_prepd_jid(JID1),
|
LJID = jlib:short_prepd_jid(JID1),
|
||||||
F = fun() ->
|
F = fun() ->
|
||||||
@ -279,7 +279,7 @@ process_item_set(From, To, #xmlel{} = El) ->
|
|||||||
%% If the item exist in shared roster, take the
|
%% If the item exist in shared roster, take the
|
||||||
%% subscription information from there:
|
%% subscription information from there:
|
||||||
Item3 = ejabberd_hooks:run_fold(roster_process_item,
|
Item3 = ejabberd_hooks:run_fold(roster_process_item,
|
||||||
exmpp_jid:ldomain(From), Item2, [exmpp_jid:ldomain(From)]),
|
exmpp_jid:prep_domain(From), Item2, [exmpp_jid:prep_domain(From)]),
|
||||||
{Item, Item3}
|
{Item, Item3}
|
||||||
end,
|
end,
|
||||||
case mnesia:transaction(F) of
|
case mnesia:transaction(F) of
|
||||||
@ -844,7 +844,7 @@ process_item_attrs_ws(Item, []) ->
|
|||||||
get_in_pending_subscriptions(Ls, User, Server)
|
get_in_pending_subscriptions(Ls, User, Server)
|
||||||
when is_binary(User), is_binary(Server) ->
|
when is_binary(User), is_binary(Server) ->
|
||||||
JID = exmpp_jid:make(User, Server),
|
JID = exmpp_jid:make(User, Server),
|
||||||
US = {exmpp_jid:lnode(JID), exmpp_jid:ldomain(JID)},
|
US = {exmpp_jid:lnode(JID), exmpp_jid:prep_domain(JID)},
|
||||||
case mnesia:dirty_index_read(roster, US, #roster.us) of
|
case mnesia:dirty_index_read(roster, US, #roster.us) of
|
||||||
Result when is_list(Result) ->
|
Result when is_list(Result) ->
|
||||||
Ls ++ lists:map(
|
Ls ++ lists:map(
|
||||||
@ -1185,7 +1185,7 @@ user_roster(User, Server, Query, Lang) ->
|
|||||||
build_contact_jid_td({U, S, R}) ->
|
build_contact_jid_td({U, S, R}) ->
|
||||||
%% Convert {U, S, R} into {jid, U, S, R, U, S, R}:
|
%% Convert {U, S, R} into {jid, U, S, R, U, S, R}:
|
||||||
ContactJID = exmpp_jid:make(U, S, R),
|
ContactJID = exmpp_jid:make(U, S, R),
|
||||||
JIDURI = case {exmpp_jid:lnode(ContactJID), exmpp_jid:ldomain(ContactJID)} of
|
JIDURI = case {exmpp_jid:lnode(ContactJID), exmpp_jid:prep_domain(ContactJID)} of
|
||||||
{undefined, _} -> "";
|
{undefined, _} -> "";
|
||||||
{CUser, CServer} ->
|
{CUser, CServer} ->
|
||||||
CUser_S = binary_to_list(CUser),
|
CUser_S = binary_to_list(CUser),
|
||||||
|
@ -119,8 +119,8 @@ process_local_iq(From, To, #iq{type = set} = IQ_Rec) ->
|
|||||||
|
|
||||||
|
|
||||||
process_iq_get(From, To, IQ_Rec) ->
|
process_iq_get(From, To, IQ_Rec) ->
|
||||||
US = {exmpp_jid:lnode(From), exmpp_jid:ldomain(From)},
|
US = {exmpp_jid:lnode(From), exmpp_jid:prep_domain(From)},
|
||||||
case catch ejabberd_hooks:run_fold(roster_get, exmpp_jid:ldomain(To), [], [US]) of
|
case catch ejabberd_hooks:run_fold(roster_get, exmpp_jid:prep_domain(To), [], [US]) of
|
||||||
Items when is_list(Items) ->
|
Items when is_list(Items) ->
|
||||||
XItems = lists:map(fun item_to_xml/1, Items),
|
XItems = lists:map(fun item_to_xml/1, Items),
|
||||||
Result = #xmlel{ns = ?NS_ROSTER, name = 'query',
|
Result = #xmlel{ns = ?NS_ROSTER, name = 'query',
|
||||||
@ -218,7 +218,7 @@ process_item_set(From, To, #xmlel{} = El) ->
|
|||||||
try
|
try
|
||||||
JID1 = exmpp_jid:parse(exmpp_xml:get_attribute_as_binary(El, 'jid', <<>>)),
|
JID1 = exmpp_jid:parse(exmpp_xml:get_attribute_as_binary(El, 'jid', <<>>)),
|
||||||
User = exmpp_jid:lnode(From),
|
User = exmpp_jid:lnode(From),
|
||||||
Server = exmpp_jid:ldomain(From),
|
Server = exmpp_jid:prep_domain(From),
|
||||||
LServer = binary_to_list(Server),
|
LServer = binary_to_list(Server),
|
||||||
{U0, S0, R0} = LJID = jlib:short_prepd_jid(JID1),
|
{U0, S0, R0} = LJID = jlib:short_prepd_jid(JID1),
|
||||||
Username = ejabberd_odbc:escape(User),
|
Username = ejabberd_odbc:escape(User),
|
||||||
@ -234,7 +234,7 @@ process_item_set(From, To, #xmlel{} = El) ->
|
|||||||
us = {User, Server},
|
us = {User, Server},
|
||||||
jid = LJID};
|
jid = LJID};
|
||||||
[I] ->
|
[I] ->
|
||||||
R = raw_to_record(exmpp_jid:ldomain(From), I),
|
R = raw_to_record(exmpp_jid:prep_domain(From), I),
|
||||||
case R of
|
case R of
|
||||||
%% Bad JID in database:
|
%% Bad JID in database:
|
||||||
error ->
|
error ->
|
||||||
@ -263,12 +263,12 @@ process_item_set(From, To, #xmlel{} = El) ->
|
|||||||
%% If the item exist in shared roster, take the
|
%% If the item exist in shared roster, take the
|
||||||
%% subscription information from there:
|
%% subscription information from there:
|
||||||
Item3 = ejabberd_hooks:run_fold(roster_process_item,
|
Item3 = ejabberd_hooks:run_fold(roster_process_item,
|
||||||
exmpp_jid:ldomain(From), Item2, [exmpp_jid:ldomain(From)]),
|
exmpp_jid:prep_domain(From), Item2, [exmpp_jid:prep_domain(From)]),
|
||||||
{Item, Item3}
|
{Item, Item3}
|
||||||
end,
|
end,
|
||||||
case odbc_queries:sql_transaction(LServer, F) of
|
case odbc_queries:sql_transaction(LServer, F) of
|
||||||
{atomic, {OldItem, Item}} ->
|
{atomic, {OldItem, Item}} ->
|
||||||
push_item(exmpp_jid:node(From), exmpp_jid:ldomain(From), To, Item),
|
push_item(exmpp_jid:node(From), exmpp_jid:prep_domain(From), To, Item),
|
||||||
case Item#roster.subscription of
|
case Item#roster.subscription of
|
||||||
remove ->
|
remove ->
|
||||||
IsTo = case OldItem#roster.subscription of
|
IsTo = case OldItem#roster.subscription of
|
||||||
@ -774,7 +774,7 @@ get_in_pending_subscriptions(Ls, User, Server)
|
|||||||
end,
|
end,
|
||||||
lists:flatmap(
|
lists:flatmap(
|
||||||
fun(I) ->
|
fun(I) ->
|
||||||
case raw_to_record(exmpp_jid:ldomain(JID), I) of
|
case raw_to_record(exmpp_jid:prep_domain(JID), I) of
|
||||||
%% Bad JID in database:
|
%% Bad JID in database:
|
||||||
error ->
|
error ->
|
||||||
[];
|
[];
|
||||||
@ -1020,7 +1020,7 @@ user_roster(User, Server, Query, Lang) ->
|
|||||||
build_contact_jid_td({U, S, R}) ->
|
build_contact_jid_td({U, S, R}) ->
|
||||||
%% Convert {U, S, R} into {jid, U, S, R, U, S, R}:
|
%% Convert {U, S, R} into {jid, U, S, R, U, S, R}:
|
||||||
ContactJID = exmpp_jid:make(U, S, R),
|
ContactJID = exmpp_jid:make(U, S, R),
|
||||||
JIDURI = case {exmpp_jid:lnode(ContactJID), exmpp_jid:ldomain(ContactJID)} of
|
JIDURI = case {exmpp_jid:lnode(ContactJID), exmpp_jid:prep_domain(ContactJID)} of
|
||||||
{undefined, _} -> "";
|
{undefined, _} -> "";
|
||||||
{CUser, CServer} ->
|
{CUser, CServer} ->
|
||||||
CUser_S = binary_to_list(CUser),
|
CUser_S = binary_to_list(CUser),
|
||||||
|
Loading…
Reference in New Issue
Block a user