Merge branch 'stanza-debug' into 'master'

lumi created

Add a stanza_debug plugin

See merge request !10

Change summary

src/plugins/mod.rs          |  1 +
src/plugins/ping.rs         |  2 +-
src/plugins/stanza.rs       |  2 +-
src/plugins/stanza_debug.rs | 29 +++++++++++++++++++++++++++++
4 files changed, 32 insertions(+), 2 deletions(-)

Detailed changes

src/plugins/mod.rs 🔗

@@ -2,3 +2,4 @@ pub mod messaging;
 pub mod presence;
 pub mod ping;
 pub mod stanza;
+pub mod stanza_debug;

src/plugins/ping.rs 🔗

@@ -51,7 +51,7 @@ impl PingPlugin {
                 });
             }
         }
-        Propagation::Continue
+        Propagation::Stop
     }
 
     fn reply_ping(&self, ping: &PingEvent) -> Propagation {

src/plugins/stanza.rs 🔗

@@ -40,7 +40,7 @@ impl StanzaPlugin {
             self.proxy.dispatch(iq);
         }
 
-        Propagation::Continue
+        Propagation::Stop
     }
 }
 

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,
+]);