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