]> git.proxmox.com Git - mirror_ovs.git/commitdiff
windows, python: Remove code duplication in send/recv functions
authorAlin Balutoiu <abalutoiu@cloudbasesolutions.com>
Tue, 22 Aug 2017 10:47:24 +0000 (10:47 +0000)
committerAlin Gabriel Serdean <aserdean@ovn.org>
Wed, 23 Aug 2017 15:35:54 +0000 (18:35 +0300)
Move the return value at the end of the function
regardless of the pending/non-pending operation.

Signed-off-by: Alin Balutoiu <abalutoiu@cloudbasesolutions.com>
Acked-by: Russell Bryant <russell@ovn.org>
Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
Signed-off-by: Alin Gabriel Serdean <aserdean@ovn.org>
python/ovs/stream.py

index f82a44903a6a427202644dd481347e56e7bbed9c..717ea18ae3bce72d1f43b0aa7f77dcb8729b694d 100644 (file)
@@ -321,11 +321,6 @@ class Stream(object):
                                                             self._read,
                                                             False)
                 self._read_pending = False
-                recvBuffer = self._read_buffer[:nBytesRead]
-                # recvBuffer will have the type memoryview in Python3.
-                # We can use bytes to convert it to type bytes which works on
-                # both Python2 and Python3.
-                return (0, bytes(recvBuffer))
             except pywintypes.error as e:
                 if e.winerror == winutils.winerror.ERROR_IO_INCOMPLETE:
                     # The operation is still pending, try again
@@ -336,30 +331,31 @@ class Stream(object):
                     return (0, "")
                 else:
                     return (errno.EINVAL, "")
-        (errCode, self._read_buffer) = winutils.read_file(self.pipe,
-                                                          n,
-                                                          self._read)
-        if errCode:
-            if errCode == winutils.winerror.ERROR_IO_PENDING:
-                self._read_pending = True
-                return (errno.EAGAIN, "")
-            elif errCode in winutils.pipe_disconnected_errors:
-                # If the pipe was disconnected, return 0.
-                return (0, "")
-            else:
-                return (errCode, "")
+        else:
+            (errCode, self._read_buffer) = winutils.read_file(self.pipe,
+                                                              n,
+                                                              self._read)
+            if errCode:
+                if errCode == winutils.winerror.ERROR_IO_PENDING:
+                    self._read_pending = True
+                    return (errno.EAGAIN, "")
+                elif errCode in winutils.pipe_disconnected_errors:
+                    # If the pipe was disconnected, return 0.
+                    return (0, "")
+                else:
+                    return (errCode, "")
 
-        try:
-            nBytesRead = winutils.get_overlapped_result(self.pipe,
-                                                        self._read,
-                                                        False)
-            winutils.win32event.SetEvent(self._read.hEvent)
-        except pywintypes.error as e:
-            if e.winerror in winutils.pipe_disconnected_errors:
-                # If the pipe was disconnected, return 0.
-                return (0, "")
-            else:
-                return (e.winerror, "")
+            try:
+                nBytesRead = winutils.get_overlapped_result(self.pipe,
+                                                            self._read,
+                                                            False)
+                winutils.win32event.SetEvent(self._read.hEvent)
+            except pywintypes.error as e:
+                if e.winerror in winutils.pipe_disconnected_errors:
+                    # If the pipe was disconnected, return 0.
+                    return (0, "")
+                else:
+                    return (e.winerror, "")
 
         recvBuffer = self._read_buffer[:nBytesRead]
         # recvBuffer will have the type memoryview in Python3.
@@ -406,7 +402,6 @@ class Stream(object):
                                                                self._write,
                                                                False)
                 self._write_pending = False
-                return nBytesWritten
             except pywintypes.error as e:
                 if e.winerror == winutils.winerror.ERROR_IO_INCOMPLETE:
                     # The operation is still pending, try again
@@ -417,19 +412,18 @@ class Stream(object):
                     return -errno.ECONNRESET
                 else:
                     return -errno.EINVAL
-
-        self._write_pending = False
-        (errCode, nBytesWritten) = winutils.write_file(self.pipe,
-                                                       buf,
-                                                       self._write)
-        if errCode:
-            if errCode == winutils.winerror.ERROR_IO_PENDING:
-                self._write_pending = True
-                return -errno.EAGAIN
-            if (not nBytesWritten and
-                    errCode in winutils.pipe_disconnected_errors):
-                # If the pipe was disconnected, return connection reset.
-                return -errno.ECONNRESET
+        else:
+            (errCode, nBytesWritten) = winutils.write_file(self.pipe,
+                                                           buf,
+                                                           self._write)
+            if errCode:
+                if errCode == winutils.winerror.ERROR_IO_PENDING:
+                    self._write_pending = True
+                    return -errno.EAGAIN
+                if (not nBytesWritten and
+                        errCode in winutils.pipe_disconnected_errors):
+                    # If the pipe was disconnected, return connection reset.
+                    return -errno.ECONNRESET
         return nBytesWritten
 
     def run(self):