home · contact · privacy
Fix/simplify PlomSocket code.
authorChristian Heller <c.heller@plomlompom.de>
Wed, 4 Nov 2020 00:17:20 +0000 (01:17 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 4 Nov 2020 00:17:20 +0000 (01:17 +0100)
new2/plomrogue/io_tcp.py

index 203021cd06b9b7c34e2eab8efa8749c1e6188155..f0a49a97dad632fa4f3dc10770432f424ba90155 100644 (file)
@@ -46,6 +46,7 @@ class PlomSocket:
             try:
                 sent = self.socket.send(data[totalsent:])
                 socket_broken = sent == 0
             try:
                 sent = self.socket.send(data[totalsent:])
                 socket_broken = sent == 0
+                totalsent = totalsent + sent
             except OSError as err:
                 if err.errno == 9:  # "Bad file descriptor", when connection broken
                     socket_broken = True
             except OSError as err:
                 if err.errno == 9:  # "Bad file descriptor", when connection broken
                     socket_broken = True
@@ -53,7 +54,6 @@ class PlomSocket:
                     raise err
             if socket_broken and not silent_connection_break:
                 raise BrokenSocketConnection
                     raise err
             if socket_broken and not silent_connection_break:
                 raise BrokenSocketConnection
-            totalsent = totalsent + sent
 
     def recv(self):
         """Get full send()-prepared message from self.socket.
 
     def recv(self):
         """Get full send()-prepared message from self.socket.
@@ -77,12 +77,10 @@ class PlomSocket:
         data = b''
         msg = b''
         while True:
         data = b''
         msg = b''
         while True:
-            data += self.socket.recv(1024)
+            data = self.socket.recv(1024)
             if 0 == len(data):
             if 0 == len(data):
-                return
-            cut_off = 0
+                break
             for c in data:
             for c in data:
-                cut_off += 1
                 if esc:
                     msg += bytes([c])
                     esc = False
                 if esc:
                     msg += bytes([c])
                     esc = False
@@ -93,7 +91,6 @@ class PlomSocket:
                         yield msg.decode()
                     except UnicodeDecodeError:
                         yield None
                         yield msg.decode()
                     except UnicodeDecodeError:
                         yield None
-                    data = data[cut_off:]
                     msg = b''
                 else:
                     msg += bytes([c])
                     msg = b''
                 else:
                     msg += bytes([c])