simplified socket data reception
Costa Tsaousis (ktsaou) committed
Nov 11, 2016 at 20:54 UTC
d0a4feb834d0a8c29e5ff09f9d3f653abda0f7aa
1 file changed
+9
-15
python.d/python_modules/base.py
+9
-15
@@ -644,29 +644,23 @@ class SocketService(SimpleService):
644
"""
645
data = ""
646
while True:
647
+ self.debug("receiving response")
648
try:
648
- self.debug("waiting response")
649
- ready_to_read, _, in_error = select.select([self._sock], [], [], 5)
649
+ buf = self._sock.recv(4096)
650
except Exception as e:
651
- self._socketerror("timeout while waiting for response:" + str(e))
651
+ self._socketerror("failed to receive response:" + str(e))
652
self._disconnect()
653
break
654
655
- if len(ready_to_read) > 0:
656
- self.debug("receiving response")
657
- buf = self._sock.recv(4096)
658
- if buf is None or len(buf) == 0: # handle server disconnect
659
- self.debug("server closed the connection")
660
- self._disconnect()
661
- break
662
- data += buf.decode(errors='ignore')
663
- if self._check_raw_data(data):
664
- break
665
- else:
666
- self._socketerror("timeout")
655
+ if buf is None or len(buf) == 0: # handle server disconnect
656
+ self.debug("server closed the connection")
657
self._disconnect()
658
break
659
660
+ data += buf.decode(errors='ignore')
661
+ if self._check_raw_data(data):
662
+ break
663
+
664
return data
665
666
def _get_raw_data(self):