From 603ec9cb19ec8664ca75dd74b1cb3541878a27da Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Sat, 25 Feb 2017 10:01:01 +0300 Subject: [PATCH] Don't pass empty resource to jid:make() --- src/ejabberd_commands.erl | 6 +++--- src/ejabberd_oauth.erl | 4 ++-- src/ejabberd_piefxis.erl | 2 +- src/ejabberd_sm.erl | 4 ++-- src/ejabberd_web_admin.erl | 4 ++-- src/jlib.erl | 2 +- src/mod_admin_extra.erl | 2 +- src/mod_announce.erl | 4 ++-- src/mod_caps.erl | 2 +- src/mod_http_upload.erl | 2 +- src/mod_irc_mnesia.erl | 2 +- src/mod_irc_sql.erl | 2 +- src/mod_muc_admin.erl | 2 +- src/mod_muc_room.erl | 4 ++-- src/mod_muc_sql.erl | 2 +- src/mod_offline.erl | 4 ++-- src/mod_privacy.erl | 2 +- src/mod_pubsub.erl | 8 ++++---- src/mod_register.erl | 2 +- src/mod_register_web.erl | 4 ++-- src/mod_roster.erl | 8 ++++---- src/mod_shared_roster.erl | 14 ++++++-------- src/mod_shared_roster_sql.erl | 6 ++---- 23 files changed, 44 insertions(+), 48 deletions(-) diff --git a/src/ejabberd_commands.erl b/src/ejabberd_commands.erl index 9bfa94dd6..f56cfc146 100644 --- a/src/ejabberd_commands.erl +++ b/src/ejabberd_commands.erl @@ -731,7 +731,7 @@ check_access(Command, Access, Auth, CallerInfo) Command#ejabberd_commands.policy == user -> case check_auth(Command, Auth) of {ok, User, Server} -> - check_access2(Access, CallerInfo#{usr => jid:split(jid:make(User, Server, <<>>))}, Server); + check_access2(Access, CallerInfo#{usr => jid:split(jid:make(User, Server))}, Server); no_auth_provided -> case Command#ejabberd_commands.policy of user -> @@ -834,7 +834,7 @@ oauth_token_user(noauth) -> oauth_token_user(admin) -> undefined; oauth_token_user({User, Server, _, _}) -> - jid:make(User, Server, <<>>). + jid:make(User, Server). is_admin(_Name, admin, _Extra) -> true; @@ -845,7 +845,7 @@ is_admin(_Name, Map, _extra) when is_map(Map) -> is_admin(Name, Auth, Extra) -> {ACLInfo, Server} = case Auth of {U, S, _, _} -> - {Extra#{usr=>jid:split(jid:make(U, S, <<>>))}, S}; + {Extra#{usr=>jid:split(jid:make(U, S))}, S}; _ -> {Extra, global} end, diff --git a/src/ejabberd_oauth.erl b/src/ejabberd_oauth.erl index a4e8bb6ca..bda38fc07 100644 --- a/src/ejabberd_oauth.erl +++ b/src/ejabberd_oauth.erl @@ -127,7 +127,7 @@ oauth_list_tokens() -> Tokens = mnesia:dirty_match_object(#oauth_token{_ = '_'}), {MegaSecs, Secs, _MiniSecs} = os:timestamp(), TS = 1000000 * MegaSecs + Secs, - [{Token, jid:to_string(jid:make(U,S,<<>>)), Scope, integer_to_list(Expires - TS) ++ " seconds"} || + [{Token, jid:to_string(jid:make(U,S)), Scope, integer_to_list(Expires - TS) ++ " seconds"} || #oauth_token{token=Token, scope=Scope, us= {U,S},expire=Expires} <- Tokens]. @@ -193,7 +193,7 @@ get_client_identity(Client, Ctx) -> {ok, {Ctx, {client, Client}}}. verify_redirection_uri(_, _, Ctx) -> {ok, Ctx}. authenticate_user({User, Server}, Ctx) -> - case jid:make(User, Server, <<"">>) of + case jid:make(User, Server) of #jid{} = JID -> Access = ejabberd_config:get_option( diff --git a/src/ejabberd_piefxis.erl b/src/ejabberd_piefxis.erl index 59d75ff0d..6ce8a1ae3 100644 --- a/src/ejabberd_piefxis.erl +++ b/src/ejabberd_piefxis.erl @@ -246,7 +246,7 @@ get_privacy(User, Server) -> -spec get_roster(binary(), binary()) -> [xmlel()]. get_roster(User, Server) -> - JID = jid:make(User, Server, <<>>), + JID = jid:make(User, Server), case mod_roster:get_roster(User, Server) of [_|_] = Items -> Subs = diff --git a/src/ejabberd_sm.erl b/src/ejabberd_sm.erl index 5f7d9740c..747434405 100644 --- a/src/ejabberd_sm.erl +++ b/src/ejabberd_sm.erl @@ -189,7 +189,7 @@ bounce_offline_message(Acc) -> -spec disconnect_removed_user(binary(), binary()) -> ok. disconnect_removed_user(User, Server) -> - route(jid:make(User, Server, <<"">>), {exit, <<"User removed">>}). + route(jid:make(User, Server), {exit, <<"User removed">>}). get_user_resources(User, Server) -> LUser = jid:nodeprep(User), @@ -739,7 +739,7 @@ check_max_sessions(LUser, LServer) -> -spec get_max_user_sessions(binary(), binary()) -> infinity | non_neg_integer(). get_max_user_sessions(LUser, Host) -> case acl:match_rule(Host, max_user_sessions, - jid:make(LUser, Host, <<"">>)) + jid:make(LUser, Host)) of Max when is_integer(Max) -> Max; infinity -> infinity; diff --git a/src/ejabberd_web_admin.erl b/src/ejabberd_web_admin.erl index 7ab5451c7..968a122bc 100644 --- a/src/ejabberd_web_admin.erl +++ b/src/ejabberd_web_admin.erl @@ -102,7 +102,7 @@ get_acl_rule(_RPath, 'POST') -> get_jid(Auth, HostHTTP, Method) -> case get_auth_admin(Auth, HostHTTP, [], Method) of {ok, {User, Server}} -> - jid:make(User, Server, <<"">>); + jid:make(User, Server); {unauthorized, Error} -> ?ERROR_MSG("Unauthorized ~p: ~p", [Auth, Error]), throw({unauthorized, Auth}) @@ -274,7 +274,7 @@ get_auth_account(HostOfRule, AccessRule, User, Server, case ejabberd_auth:check_password(User, <<"">>, Server, Pass) of true -> case acl:any_rules_allowed(HostOfRule, AccessRule, - jid:make(User, Server, <<"">>)) + jid:make(User, Server)) of false -> {unauthorized, <<"unprivileged-account">>}; true -> {ok, {User, Server}} diff --git a/src/jlib.erl b/src/jlib.erl index 33fc7d6bb..227838f27 100644 --- a/src/jlib.erl +++ b/src/jlib.erl @@ -638,7 +638,7 @@ create_delay_tag(TimeStamp, FromJID, Desc) when is_tuple(FromJID) -> {<<"stamp">>, Stamp}], children = Children}; create_delay_tag(DateTime, Host, Desc) when is_binary(Host) -> - FromJID = jid:make(<<"">>, Host, <<"">>), + FromJID = jid:make(Host), create_delay_tag(DateTime, FromJID, Desc). -type tz() :: {binary(), {integer(), integer()}} | {integer(), integer()} | utc. diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index 680184e3c..3130d66c5 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -1418,7 +1418,7 @@ btl(B) -> binary_to_list(B). srg_get_members(Group, Host) -> Members = mod_shared_roster:get_group_explicit_users(Host,Group), - [jid:to_string(jid:make(MUser, MServer, <<>>)) + [jid:to_string(jid:make(MUser, MServer)) || {MUser, MServer} <- Members]. srg_user_add(User, Host, Group, GroupHost) -> diff --git a/src/mod_announce.erl b/src/mod_announce.erl index f1da3802b..522be8936 100644 --- a/src/mod_announce.erl +++ b/src/mod_announce.erl @@ -630,7 +630,7 @@ announce_all(#message{to = To} = Packet) -> Local = jid:make(To#jid.server), lists:foreach( fun({User, Server}) -> - Dest = jid:make(User, Server, <<>>), + Dest = jid:make(User, Server), ejabberd_router:route( xmpp:set_from_to(add_store_hint(Packet), Local, Dest)) end, ejabberd_auth:get_vh_registered_users(To#jid.lserver)). @@ -639,7 +639,7 @@ announce_all_hosts_all(#message{to = To} = Packet) -> Local = jid:make(To#jid.server), lists:foreach( fun({User, Server}) -> - Dest = jid:make(User, Server, <<>>), + Dest = jid:make(User, Server), ejabberd_router:route( xmpp:set_from_to(add_store_hint(Packet), Local, Dest)) end, ejabberd_auth:dirty_get_registered_users()). diff --git a/src/mod_caps.erl b/src/mod_caps.erl index 42a5d94df..f8c8e3a30 100644 --- a/src/mod_caps.erl +++ b/src/mod_caps.erl @@ -395,7 +395,7 @@ caps_write_fun(Host, Node, Features) -> -spec make_my_disco_hash(binary()) -> binary(). make_my_disco_hash(Host) -> - JID = jid:make(<<"">>, Host, <<"">>), + JID = jid:make(Host), case {ejabberd_hooks:run_fold(disco_local_features, Host, empty, [JID, JID, <<"">>, <<"">>]), ejabberd_hooks:run_fold(disco_local_identity, Host, [], diff --git a/src/mod_http_upload.erl b/src/mod_http_upload.erl index 97f7c9128..88982839c 100644 --- a/src/mod_http_upload.erl +++ b/src/mod_http_upload.erl @@ -928,7 +928,7 @@ remove_user(User, Server) -> end, sha1), DocRoot1 = expand_host(expand_home(DocRoot), ServerHost), - UserStr = make_user_string(jid:make(User, Server, <<"">>), JIDinURL), + UserStr = make_user_string(jid:make(User, Server), JIDinURL), UserDir = str:join([DocRoot1, UserStr], <<$/>>), case del_tree(UserDir) of ok -> diff --git a/src/mod_irc_mnesia.erl b/src/mod_irc_mnesia.erl index ecbe41bb3..25cdd6d4d 100644 --- a/src/mod_irc_mnesia.erl +++ b/src/mod_irc_mnesia.erl @@ -73,7 +73,7 @@ update_table() -> fun(#irc_custom{us_host = {_, H}}) -> H end, fun(#irc_custom{us_host = {{U, S}, H}, data = Data} = R) -> - JID = jid:make(U, S, <<"">>), + JID = jid:make(U, S), R#irc_custom{us_host = {{iolist_to_binary(U), iolist_to_binary(S)}, iolist_to_binary(H)}, diff --git a/src/mod_irc_sql.erl b/src/mod_irc_sql.erl index f27b05f6c..dd419875d 100644 --- a/src/mod_irc_sql.erl +++ b/src/mod_irc_sql.erl @@ -72,7 +72,7 @@ export(_Server) -> data = Data}) -> case str:suffix(Host, IRCHost) of true -> - SJID = jid:to_string(jid:make(U, S, <<"">>)), + SJID = jid:to_string(jid:make(U, S)), SData = jlib:term_to_expr(Data), [?SQL("delete from irc_custom" " where jid=%(SJID)s and host=%(IRCHost)s;"), diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index 21a1d90c6..714e3dd3a 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -732,7 +732,7 @@ get_room_occupants_number(Room, Host) -> %% http://xmpp.org/extensions/xep-0249.html send_direct_invitation(RoomName, RoomService, Password, Reason, UsersString) -> - RoomJid = jid:make(RoomName, RoomService, <<"">>), + RoomJid = jid:make(RoomName, RoomService), XmlEl = build_invitation(Password, Reason, RoomJid), UsersStrings = get_users_to_invite(RoomJid, UsersString), [send_direct_invitation(RoomJid, UserStrings, XmlEl) diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index d3984e1c6..3f3208b68 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -126,7 +126,7 @@ init([Host, ServerHost, Access, Room, HistorySize, #state{host = Host, server_host = ServerHost, access = Access, room = Room, history = lqueue_new(HistorySize), - jid = jid:make(Room, Host, <<"">>), + jid = jid:make(Room, Host), just_created = true, room_shaper = Shaper}), State1 = set_opts(DefRoomOpts, State), @@ -144,7 +144,7 @@ init([Host, ServerHost, Access, Room, HistorySize, RoomShaper, Opts]) -> access = Access, room = Room, history = lqueue_new(HistorySize), - jid = jid:make(Room, Host, <<"">>), + jid = jid:make(Room, Host), room_shaper = Shaper}), add_to_log(room_existence, started, State), {ok, normal_state, State}. diff --git a/src/mod_muc_sql.erl b/src/mod_muc_sql.erl index f02cc77a8..d242eb9b7 100644 --- a/src/mod_muc_sql.erl +++ b/src/mod_muc_sql.erl @@ -215,7 +215,7 @@ export(_Server) -> nick = Nick}) -> case str:suffix(Host, RoomHost) of true -> - SJID = jid:to_string(jid:make(U, S, <<"">>)), + SJID = jid:to_string(jid:make(U, S)), [?SQL("delete from muc_registered where" " jid=%(SJID)s and host=%(RoomHost)s;"), ?SQL("insert into muc_registered(jid, host, " diff --git a/src/mod_offline.erl b/src/mod_offline.erl index f19ec1d50..0a11864db 100644 --- a/src/mod_offline.erl +++ b/src/mod_offline.erl @@ -251,7 +251,7 @@ store_offline_msg(Host, US, Msgs, Len, MaxOfflineMsgs) -> get_max_user_messages(AccessRule, {User, Server}, Host) -> case acl:match_rule( - Host, AccessRule, jid:make(User, Server, <<"">>)) of + Host, AccessRule, jid:make(User, Server)) of Max when is_integer(Max) -> Max; infinity -> infinity; _ -> ?MAX_USER_MESSAGES @@ -817,7 +817,7 @@ get_messages_subset2(Max, Length, MsgsAll) -> {MsgsFirstN, Msgs2} = lists:split(FirstN, MsgsAll), MsgsLastN = lists:nthtail(Length - FirstN - FirstN, Msgs2), - NoJID = jid:make(<<"...">>, <<"...">>, <<"">>), + NoJID = jid:make(<<"...">>, <<"...">>), Seq = <<"0">>, IntermediateMsg = #xmlel{name = <<"...">>, attrs = [], children = []}, diff --git a/src/mod_privacy.erl b/src/mod_privacy.erl index 5aa816975..836dfe66d 100644 --- a/src/mod_privacy.erl +++ b/src/mod_privacy.erl @@ -414,7 +414,7 @@ user_receive_packet({#iq{type = set, meta = #{privacy_updated_list := New}} = IQ true -> State end, - From = jid:make(U, S, <<"">>), + From = jid:make(U, S), To = jid:make(U, S, R), {xmpp:set_from_to(IQ, From, To), State1}; user_receive_packet(Acc) -> diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index e512afa09..970ef5226 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -723,7 +723,7 @@ presence(ServerHost, Presence) -> binary(), binary(), jid(), subscribed | unsubscribed | subscribe | unsubscribe) -> boolean(). out_subscription(User, Server, JID, subscribed) -> - Owner = jid:make(User, Server, <<>>), + Owner = jid:make(User, Server), {PUser, PServer, PResource} = jid:tolower(JID), PResources = case PResource of <<>> -> user_resources(PUser, PServer); @@ -738,7 +738,7 @@ out_subscription(_, _, _, _) -> subscribe | subscribed | unsubscribe | unsubscribed, binary()) -> true. in_subscription(_, User, Server, Owner, unsubscribed, _) -> - unsubscribe_user(jid:make(User, Server, <<>>), Owner), + unsubscribe_user(jid:make(User, Server), Owner), true; in_subscription(_, _, _, _, _, _) -> true. @@ -789,7 +789,7 @@ unsubscribe_user(Host, Entity, Owner) -> remove_user(User, Server) -> LUser = jid:nodeprep(User), LServer = jid:nameprep(Server), - Entity = jid:make(LUser, LServer, <<>>), + Entity = jid:make(LUser, LServer), Host = host(LServer), HomeTreeBase = <<"/home/", LServer/binary, "/", LUser/binary>>, spawn(fun () -> @@ -3023,7 +3023,7 @@ broadcast_stanza({LUser, LServer, LResource}, Publisher, Node, Nidx, Type, NodeO %% See XEP-0163 1.1 section 4.3.1 ejabberd_sm:route(jid:make(LUser, LServer, SenderResource), {pep_message, <<((Node))/binary, "+notify">>, - jid:make(LUser, LServer, <<"">>), + jid:make(LUser, LServer), add_extended_headers( Stanza, extended_headers([Publisher]))}); broadcast_stanza(Host, _Publisher, Node, Nidx, Type, NodeOptions, SubsByDepth, NotifyType, BaseStanza, SHIM) -> diff --git a/src/mod_register.erl b/src/mod_register.erl index 7269d21cb..3a435778f 100644 --- a/src/mod_register.erl +++ b/src/mod_register.erl @@ -316,7 +316,7 @@ try_register(User, Server, Password, SourceRaw, Lang) -> case jid:is_nodename(User) of false -> {error, xmpp:err_bad_request(<<"Malformed username">>, Lang)}; _ -> - JID = jid:make(User, Server, <<"">>), + JID = jid:make(User, Server), Access = gen_mod:get_module_opt(Server, ?MODULE, access, fun(A) -> A end, all), diff --git a/src/mod_register_web.erl b/src/mod_register_web.erl index 237a905b7..109550475 100644 --- a/src/mod_register_web.erl +++ b/src/mod_register_web.erl @@ -106,7 +106,7 @@ process([<<"new">>], lang = Lang, host = _HTTPHost}) -> case form_new_post(Q) of {success, ok, {Username, Host, _Password}} -> - Jid = jid:make(Username, Host, <<"">>), + Jid = jid:make(Username, Host), mod_register:send_registration_notifications(?MODULE, Jid, Ip), Text = (?T(<<"Your Jabber account was successfully " "created.">>)), @@ -499,7 +499,7 @@ register_account(Username, Host, Password) -> Access = gen_mod:get_module_opt(Host, mod_register, access, fun(A) -> A end, all), - case jid:make(Username, Host, <<"">>) of + case jid:make(Username, Host) of error -> {error, invalid_jid}; JID -> case acl:match_rule(Host, Access, JID) of diff --git a/src/mod_roster.erl b/src/mod_roster.erl index 30b4269f1..c624af56d 100644 --- a/src/mod_roster.erl +++ b/src/mod_roster.erl @@ -643,7 +643,7 @@ process_subscription(Direction, User, Server, JID1, _ -> ejabberd_router:route( #presence{type = AutoReply, - from = jid:make(User, Server, <<"">>), + from = jid:make(User, Server), to = JID1}) end, case Push of @@ -653,7 +653,7 @@ process_subscription(Direction, User, Server, JID1, ok; true -> push_item(User, Server, - jid:make(User, Server, <<"">>), Item) + jid:make(User, Server), Item) end, true; none -> false @@ -1068,7 +1068,7 @@ user_roster_parse_query(User, Server, Items, Query) -> user_roster_subscribe_jid(User, Server, JID) -> out_subscription(User, Server, JID, subscribe), - UJID = jid:make(User, Server, <<"">>), + UJID = jid:make(User, Server), ejabberd_router:route(#presence{from = UJID, to = JID, type = subscribe}). user_roster_item_parse_query(User, Server, Items, @@ -1083,7 +1083,7 @@ user_roster_item_parse_query(User, Server, Items, JID1 = jid:make(JID), out_subscription(User, Server, JID1, subscribed), - UJID = jid:make(User, Server, <<"">>), + UJID = jid:make(User, Server), ejabberd_router:route( #presence{from = UJID, to = JID1, type = subscribed}), diff --git a/src/mod_shared_roster.erl b/src/mod_shared_roster.erl index 7929b21ab..5d3983361 100644 --- a/src/mod_shared_roster.erl +++ b/src/mod_shared_roster.erl @@ -240,12 +240,10 @@ process_item(RosterItem, Host) -> %% existing roster groups. [] -> mod_roster:out_subscription(UserTo, ServerTo, - jid:make(UserFrom, ServerFrom, - <<"">>), + jid:make(UserFrom, ServerFrom), unsubscribe), mod_roster:in_subscription(false, UserFrom, ServerFrom, - jid:make(UserTo, ServerTo, - <<"">>), + jid:make(UserTo, ServerTo), unsubscribe, <<"">>), RosterItem#roster{subscription = both, ask = none}; %% If so, it means the user wants to add that contact @@ -269,8 +267,8 @@ set_new_rosteritems(UserFrom, ServerFrom, UserTo, RIFrom = build_roster_record(UserFrom, ServerFrom, UserTo, ServerTo, NameTo, GroupsFrom), set_item(UserFrom, ServerFrom, ResourceTo, RIFrom), - JIDTo = jid:make(UserTo, ServerTo, <<"">>), - JIDFrom = jid:make(UserFrom, ServerFrom, <<"">>), + JIDTo = jid:make(UserTo, ServerTo), + JIDFrom = jid:make(UserFrom, ServerFrom), RITo = build_roster_record(UserTo, ServerTo, UserFrom, ServerFrom, UserFrom, []), set_item(UserTo, ServerTo, <<"">>, RITo), @@ -360,7 +358,7 @@ in_subscription(Acc, User, Server, JID, Type, out_subscription(UserFrom, ServerFrom, JIDTo, unsubscribed) -> #jid{luser = UserTo, lserver = ServerTo} = JIDTo, - JIDFrom = jid:make(UserFrom, ServerFrom, <<"">>), + JIDFrom = jid:make(UserFrom, ServerFrom), mod_roster:out_subscription(UserTo, ServerTo, JIDFrom, unsubscribe), mod_roster:in_subscription(false, UserFrom, ServerFrom, @@ -1054,7 +1052,7 @@ split_grouphost(Host, Group) -> end. broadcast_subscription(User, Server, ContactJid, Subscription) -> - ejabberd_sm:route(jid:make(User, Server, <<"">>), + ejabberd_sm:route(jid:make(User, Server), {item, ContactJid, Subscription}). displayed_groups_update(Members, DisplayedGroups, Subscription) -> diff --git a/src/mod_shared_roster_sql.erl b/src/mod_shared_roster_sql.erl index fd815f629..8a32cc385 100644 --- a/src/mod_shared_roster_sql.erl +++ b/src/mod_shared_roster_sql.erl @@ -182,9 +182,7 @@ export(_Server) -> {sr_user, fun(Host, #sr_user{us = {U, S}, group_host = {Group, LServer}}) when LServer == Host -> - SJID = jid:to_string( - jid:tolower( - jid:make(U, S, <<"">>))), + SJID = make_jid_s(U, S), [?SQL("select @(jid)s from sr_user where jid=%(SJID)s" " and grp=%(Group)s;"), ?SQL("insert into sr_user(jid, grp) values (" @@ -200,6 +198,6 @@ import(_, _, _) -> %%% Internal functions %%%=================================================================== make_jid_s(U, S) -> - jid:to_string(jid:tolower(jid:make(U, S, <<"">>))). + jid:to_string(jid:tolower(jid:make(U, S))). make_jid_s({U, S}) -> make_jid_s(U, S).