summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ryu/contrib/ovs/stream.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/ryu/contrib/ovs/stream.py b/ryu/contrib/ovs/stream.py
index c4d243d0..b4f5ba6f 100644
--- a/ryu/contrib/ovs/stream.py
+++ b/ryu/contrib/ovs/stream.py
@@ -152,9 +152,10 @@ class Stream(object):
assert retval != errno.EINPROGRESS
if retval == 0:
self.state = Stream.__S_CONNECTED
- elif retval != errno.EAGAIN:
- self.state = Stream.__S_DISCONNECTED
+ else:
self.error = retval
+ if retval != errno.EAGAIN:
+ self.state = Stream.__S_DISCONNECTED
def connect(self):
"""Tries to complete the connection on this stream. If the connection
@@ -166,6 +167,11 @@ class Stream(object):
last_state = self.state
if self.state == Stream.__S_CONNECTING:
self.__scs_connecting()
+ if self.state == Stream.__S_CONNECTING:
+ # try again
+ assert self.error == errno.EAGAIN
+ last_state = -1
+ assert self.state != last_state
elif self.state == Stream.__S_CONNECTED:
return 0
elif self.state == Stream.__S_DISCONNECTED: