diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | src/mod_muc/mod_muc_room.erl | 15 |
2 files changed, 21 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2007-02-19 Mickael Remond <mickael.remond@process-one.net> + + * src/mod_muc/mod_muc_room.erl: API improvement: Implementation of an + event to destroy MUC room from an external application (Thanks to + Massimiliano Mirra) (EJAB-184). + 2007-02-18 Alexey Shchepin <alexey@sevcom.net> * src/ejabberd_s2s.erl: Confirm to RFC3920 section 10.3 (thanks to diff --git a/src/mod_muc/mod_muc_room.erl b/src/mod_muc/mod_muc_room.erl index e2f7d190d..5a821f8f1 100644 --- a/src/mod_muc/mod_muc_room.erl +++ b/src/mod_muc/mod_muc_room.erl @@ -606,6 +606,21 @@ handle_event({service_message, Msg}, _StateName, StateData) -> StateData), {next_state, normal_state, NSD}; +handle_event({destroy, Reason}, _StateName, StateData) -> + {result, [], stop} = + destroy_room( + {xmlelement, "destroy", + [{"xmlns", ?NS_MUC_OWNER}], + case Reason of + none -> []; + _Else -> + [{xmlelement, "reason", + [], [{xmlcdata, Reason}]}] + end}, StateData), + {stop, stopped_by_event, StateData}; +handle_event(destroy, StateName, StateData) -> + handle_event({destroy, none}, StateName, StateData); + handle_event(_Event, StateName, StateData) -> {next_state, StateName, StateData}. |