timeout is essential when connecting to socket
paulfantom committed
Jul 13, 2016 at 19:07 UTC
fd83cbe8701e728bcbc7bd7d5c271d80ac167f5f
2 files changed
+10
-10
plugins.d/python.d.plugin
-1
@@ -319,7 +319,6 @@ class PythonCharts(object):
319
i = 0
320
overridden = []
321
while i < len(self.jobs):
322
- msg.error(*overridden)
322
job = self.jobs[i]
323
try:
324
if not job.check():
python.d/python_modules/base.py
+10
-9
@@ -486,11 +486,11 @@ class SocketService(SimpleService):
486
if self.unix_socket is None:
487
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
488
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
489
- #sock.settimeout(self.update_every)
489
+ sock.settimeout(self.update_every)
490
sock.connect((self.host, self.port))
491
else:
492
sock = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
493
- #sock.settimeout(self.update_every)
493
+ sock.settimeout(self.update_every)
494
sock.connect(self.unix_socket)
495
496
except Exception as e:
@@ -510,23 +510,24 @@ class SocketService(SimpleService):
510
self.sock = None
511
return None
512
513
- data = sock.recv(2)
513
+ #data = sock.recv(2)
514
+ data = ""
515
try:
516
while True:
516
- try:
517
- buf = sock.recv(1024, 0x40) # get 1024 bytes in NON-BLOCKING mode
518
- except socket.error:
519
- break
517
+ #try:
518
+ buf = sock.recv(1024, 0x40) # get 1024 bytes in NON-BLOCKING mode
519
+ #except socket.error:
520
+ # break
521
522
if len(buf) == 0:
523
break
524
else:
524
- data += buf
525
+ data += buf.decode()
526
except:
527
sock.close()
528
return None
529
529
- return data.decode()
530
+ return data
531
532
def _parse_config(self):
533
"""