From 909cfd7b21fa003f7dd5612c4e55a367079cb3b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20R=C3=A9mond?= Date: Mon, 19 Feb 2007 09:45:58 +0000 Subject: [PATCH] * 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). SVN Revision: 727 --- ChangeLog | 6 ++++++ src/mod_muc/mod_muc_room.erl | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/ChangeLog b/ChangeLog index d8c4c251f..af6dfba54 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-02-19 Mickael Remond + + * 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 * 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}.