ovs.stream: Fix logic bug in Stream.connect().
authorBen Pfaff <blp@nicira.com>
Tue, 23 Aug 2011 18:09:46 +0000 (11:09 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 24 Aug 2011 18:55:49 +0000 (11:55 -0700)
The loop here is supposed to run at least once, and to continue looping as
long as the loop body changes the current state, but this bug caused it to
continue looping until the connection completed in success or failure.  It
probably didn't cause many problems in practice because only Unix domain
socket connections are currently supported, and those connections normally
complete immediately.

Reported-by: Reid Price <reid@nicira.com>
python/ovs/stream.py

index 21923798ecb7a3695c4ec72967618ae57a62cf78..c1ce422fa43ca71a518a6272b93bdc327780ff95 100644 (file)
@@ -136,6 +136,7 @@ class Stream(object):
         returns errno.EAGAIN."""
         last_state = -1         # Always differs from initial self.state
         while self.state != last_state:
+            last_state = self.state
             if self.state == Stream.__S_CONNECTING:
                 self.__scs_connecting()
             elif self.state == Stream.__S_CONNECTED: