diff options
author | Marc Philipp <marc.philipp@logmein.com> | 2017-06-21 15:44:09 +0200 |
---|---|---|
committer | Marc Philipp <marc.philipp@logmein.com> | 2017-06-21 17:20:58 +0200 |
commit | 976a8c9cc975b8de549b5b7af7686f2a5b989b4f (patch) | |
tree | 5751a3c44cdc5740729128350817702e059bcf55 /src | |
parent | Fix outgoing_s2s_timeout description (#1684) (diff) |
Fix mod_muc_admin:set_room_affiliation
Diffstat (limited to 'src')
-rw-r--r-- | src/mod_muc_admin.erl | 2 | ||||
-rw-r--r-- | src/mod_muc_room.erl | 13 |
2 files changed, 11 insertions, 4 deletions
diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index 6966d418..2d1e66ba 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -1012,7 +1012,7 @@ set_room_affiliation(Name, Service, JID, AffiliationString) -> case mod_muc:find_online_room(Name, Service) of {ok, Pid} -> %% Get the PID for the online room so we can get the state of the room - {ok, StateData} = gen_fsm:sync_send_all_state_event(Pid, {process_item_change, {jid:decode(JID), affiliation, Affiliation, <<"">>}, <<"">>}), + {ok, StateData} = gen_fsm:sync_send_all_state_event(Pid, {process_item_change, {jid:decode(JID), affiliation, Affiliation, <<"">>}, undefined}), mod_muc:store_room(StateData#state.server_host, StateData#state.host, StateData#state.room, make_opts(StateData)), ok; error -> diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index 149e6c22..ec1cffd6 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -2608,7 +2608,7 @@ process_item_change(UJID) -> -type admin_action() :: {jid(), affiliation | role, affiliation() | role(), binary()}. --spec process_item_change(admin_action(), state(), jid()) -> state() | {error, stanza_error()}. +-spec process_item_change(admin_action(), state(), undefined | jid()) -> state() | {error, stanza_error()}. process_item_change(Item, SD, UJID) -> try case Item of {JID, affiliation, owner, _} when JID#jid.luser == <<"">> -> @@ -2658,8 +2658,15 @@ process_item_change(Item, SD, UJID) -> SD1 end catch E:R -> - ?ERROR_MSG("failed to set item ~p from ~s: ~p", - [Item, jid:encode(UJID), + FromSuffix = case UJID of + #jid{} -> + JidString = jid:encode(UJID), + <<" from ", JidString/binary>>; + undefined -> + <<"">> + end, + ?ERROR_MSG("failed to set item ~p~s: ~p", + [Item, FromSuffix, {E, {R, erlang:get_stacktrace()}}]), {error, xmpp:err_internal_server_error()} end. |