diff --git a/src/plugins/mod.rs b/src/plugins/mod.rs index 355942e..c15ae51 100644 --- a/src/plugins/mod.rs +++ b/src/plugins/mod.rs @@ -2,3 +2,4 @@ pub mod messaging; pub mod presence; pub mod ping; pub mod stanza; +pub mod stanza_debug; diff --git a/src/plugins/ping.rs b/src/plugins/ping.rs index f409a1e..e798bf0 100644 --- a/src/plugins/ping.rs +++ b/src/plugins/ping.rs @@ -51,7 +51,7 @@ impl PingPlugin { }); } } - Propagation::Continue + Propagation::Stop } fn reply_ping(&self, ping: &PingEvent) -> Propagation { diff --git a/src/plugins/stanza.rs b/src/plugins/stanza.rs index 02ef125..0924e5c 100644 --- a/src/plugins/stanza.rs +++ b/src/plugins/stanza.rs @@ -40,7 +40,7 @@ impl StanzaPlugin { self.proxy.dispatch(iq); } - Propagation::Continue + Propagation::Stop } } diff --git a/src/plugins/stanza_debug.rs b/src/plugins/stanza_debug.rs new file mode 100644 index 0000000..c94679a --- /dev/null +++ b/src/plugins/stanza_debug.rs @@ -0,0 +1,29 @@ +use plugin::PluginProxy; +use event::{SendElement, ReceiveElement, Propagation, Priority}; + +pub struct StanzaDebugPlugin { + proxy: PluginProxy, +} + +impl StanzaDebugPlugin { + pub fn new() -> StanzaDebugPlugin { + StanzaDebugPlugin { + proxy: PluginProxy::new(), + } + } + + fn handle_send_element(&self, evt: &SendElement) -> Propagation { + println!("SEND: {:?}", evt.0); + Propagation::Continue + } + + fn handle_receive_element(&self, evt: &ReceiveElement) -> Propagation { + println!("RECV: {:?}", evt.0); + Propagation::Continue + } +} + +impl_plugin!(StanzaDebugPlugin, proxy, [ + (SendElement, Priority::Min) => handle_send_element, + (ReceiveElement, Priority::Max) => handle_receive_element, +]);