Add check for ljid when setting up subscribers
This commit is contained in:
parent
3b16afeda7
commit
5077d39600
|
@ -1689,7 +1689,12 @@ update_online_user(JID, #user{nick = Nick} = User, StateData) ->
|
||||||
NewStateData.
|
NewStateData.
|
||||||
|
|
||||||
set_subscriber(JID, Nick, Nodes, StateData) ->
|
set_subscriber(JID, Nick, Nodes, StateData) ->
|
||||||
BareJID = jid:remove_resource(JID),
|
BareJID = case JID of
|
||||||
|
#jid{} -> jid:remove_resource(JID);
|
||||||
|
_ ->
|
||||||
|
?ERROR_MSG("Invalid subscriber JID in set_subscriber ~p", [JID]),
|
||||||
|
jid:remove_resource(jid:make(JID))
|
||||||
|
end,
|
||||||
LBareJID = jid:tolower(BareJID),
|
LBareJID = jid:tolower(BareJID),
|
||||||
Subscribers = maps:put(LBareJID,
|
Subscribers = maps:put(LBareJID,
|
||||||
#subscriber{jid = BareJID,
|
#subscriber{jid = BareJID,
|
||||||
|
@ -3674,14 +3679,20 @@ set_opts([{Opt, Val} | Opts], StateData) ->
|
||||||
{Subscribers, Nicks} =
|
{Subscribers, Nicks} =
|
||||||
lists:foldl(
|
lists:foldl(
|
||||||
fun({JID, Nick, Nodes}, {SubAcc, NickAcc}) ->
|
fun({JID, Nick, Nodes}, {SubAcc, NickAcc}) ->
|
||||||
BareJID = jid:remove_resource(JID),
|
BareJID = case JID of
|
||||||
{maps:put(
|
#jid{} -> jid:remove_resource(JID);
|
||||||
jid:tolower(BareJID),
|
_ ->
|
||||||
#subscriber{jid = BareJID,
|
?ERROR_MSG("Invalid subscriber JID in set_opts ~p", [JID]),
|
||||||
nick = Nick,
|
jid:remove_resource(jid:make(JID))
|
||||||
nodes = Nodes},
|
end,
|
||||||
SubAcc),
|
LBareJID = jid:tolower(BareJID),
|
||||||
maps:put(Nick, [jid:tolower(BareJID)], NickAcc)}
|
{maps:put(
|
||||||
|
LBareJID,
|
||||||
|
#subscriber{jid = BareJID,
|
||||||
|
nick = Nick,
|
||||||
|
nodes = Nodes},
|
||||||
|
SubAcc),
|
||||||
|
maps:put(Nick, [LBareJID], NickAcc)}
|
||||||
end, {#{}, #{}}, Val),
|
end, {#{}, #{}}, Val),
|
||||||
StateData#state{subscribers = Subscribers,
|
StateData#state{subscribers = Subscribers,
|
||||||
subscriber_nicks = Nicks};
|
subscriber_nicks = Nicks};
|
||||||
|
|
Loading…
Reference in New Issue