Needs to catch more kinds of exceptions (e.g. TypeError).

Signed-off-by: FUJITA Tomonori <[email protected]>
---
 ryu/controller/controller.py  | 17 +++++++++--------
 ryu/ofproto/ofproto_parser.py |  4 ++--
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/ryu/controller/controller.py b/ryu/controller/controller.py
index fc6e116..2bb43f9 100644
--- a/ryu/controller/controller.py
+++ b/ryu/controller/controller.py
@@ -164,14 +164,15 @@ class Datapath(object):
                 msg = ofproto_parser.msg(self,
                                          version, msg_type, msg_len, xid, buf)
                 #LOG.debug('queue msg %s cls %s', msg, msg.__class__)
-                ev = ofp_event.ofp_msg_to_ev(msg)
-                self.ofp_brick.send_event_to_observers(ev, self.state)
-
-                handlers = [handler for handler in
-                            self.ofp_brick.get_handlers(ev) if self.state in
-                            handler.dispatchers]
-                for handler in handlers:
-                    handler(ev)
+                if msg:
+                    ev = ofp_event.ofp_msg_to_ev(msg)
+                    self.ofp_brick.send_event_to_observers(ev, self.state)
+
+                    handlers = [handler for handler in
+                                self.ofp_brick.get_handlers(ev) if
+                                self.state in handler.dispatchers]
+                    for handler in handlers:
+                        handler(ev)
 
                 buf = buf[required_len:]
                 required_len = ofproto_common.OFP_HEADER_SIZE
diff --git a/ryu/ofproto/ofproto_parser.py b/ryu/ofproto/ofproto_parser.py
index 3b88440..6dbff03 100644
--- a/ryu/ofproto/ofproto_parser.py
+++ b/ryu/ofproto/ofproto_parser.py
@@ -54,13 +54,13 @@ def msg(datapath, version, msg_type, msg_len, xid, buf):
 
     try:
         return msg_parser(datapath, version, msg_type, msg_len, xid, buf)
-    except struct.error:
+    except:
         LOG.exception(
             'Encounter an error during parsing OpenFlow packet from switch.'
             'This implies switch sending a malfold OpenFlow packet.'
             'version 0x%02x msg_type %d msg_len %d xid %d buf %s',
             version, msg_type, msg_len, xid, utils.bytearray_to_hex(buf))
-        raise
+        return None
 
 
 def create_list_of_base_attributes(f):
-- 
1.8.3.4 (Apple Git-47)


------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing 
conversations that shape the rapidly evolving mobile landscape. Sign up now. 
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to