summaryrefslogtreecommitdiff
path: root/python/ovs
diff options
context:
space:
mode:
authorAlin Balutoiu <abalutoiu@cloudbasesolutions.com>2017-08-22 10:47:24 +0000
committerAlin Gabriel Serdean <aserdean@ovn.org>2017-08-23 18:35:54 +0300
commitba953e1e83d54d000b65aa6ac95821466849626c (patch)
treecee85320b65f032464032d60d65d10d2fb1a2a3a /python/ovs
parente2e31d17f88d14fdabb720cf895bc2b705c8ed9a (diff)
downloadopenvswitch-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.py78
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):