diff options
| author | Alin Balutoiu <abalutoiu@cloudbasesolutions.com> | 2017-08-22 10:47:24 +0000 |
|---|---|---|
| committer | Alin Gabriel Serdean <aserdean@ovn.org> | 2017-08-23 18:35:54 +0300 |
| commit | ba953e1e83d54d000b65aa6ac95821466849626c (patch) | |
| tree | cee85320b65f032464032d60d65d10d2fb1a2a3a /python/ovs | |
| parent | e2e31d17f88d14fdabb720cf895bc2b705c8ed9a (diff) | |
| download | openvswitch-ba953e1e83d54d000b65aa6ac95821466849626c.tar.gz | |
windows, python: Remove code duplication in send/recv functions
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>
Diffstat (limited to 'python/ovs')
| -rw-r--r-- | python/ovs/stream.py | 78 |
1 files changed, 36 insertions, 42 deletions
diff --git a/python/ovs/stream.py b/python/ovs/stream.py index f82a44903..717ea18ae 100644 --- a/python/ovs/stream.py +++ b/python/ovs/stream.py @@ -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): |
