From 2ac7a9cf6c73997dbae38d45c02ab7f6b4097d58 Mon Sep 17 00:00:00 2001 From: Yoshihiro Kaneko Date: Mon, 11 Mar 2013 19:09:01 +0900 Subject: ryu.controller.controller.Datapath: keep handler list regardless of state The list of handler to be called for the OFP message should be kept even if the state is changed in a handler. Signed-off-by: FUJITA Tomonori --- ryu/controller/controller.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ryu/controller/controller.py b/ryu/controller/controller.py index c753f014..79c63167 100644 --- a/ryu/controller/controller.py +++ b/ryu/controller/controller.py @@ -172,10 +172,11 @@ class Datapath(object): ev = ofp_event.ofp_msg_to_ev(msg) self.ofp_brick.send_event_to_observers(ev, self.state) - handlers = self.ofp_brick.get_handlers(ev) + handlers = [handler for handler in + self.ofp_brick.get_handlers(ev) if self.state in + handler.dispatchers] for handler in handlers: - if self.state in handler.dispatchers: - handler(ev) + handler(ev) buf = buf[required_len:] required_len = ofproto_common.OFP_HEADER_SIZE -- cgit v1.2.3