fix sockets (i hope)
paulfantom committed
Jul 13, 2016 at 20:43 UTC
adb3184569ce7671430f823fe27aae5c3e3a81ea
1 file changed
+21
-12
python.d/python_modules/base.py
+21
-12
@@ -486,6 +486,8 @@ 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.setsockopt(socket.SOL_SOCKET, socket.TCP_NODELAY, 1)
490
+ #sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
491
sock.settimeout(self.update_every)
492
sock.connect((self.host, self.port))
493
else:
@@ -511,19 +513,26 @@ class SocketService(SimpleService):
513
return None
514
515
#data = sock.recv(2)
514
- data = ""
516
+ # data = ""
517
+ # try:
518
+ # while True:
519
+ # #try:
520
+ # buf = sock.recv(1024, 0x40) # get 1024 bytes in NON-BLOCKING mode
521
+ # #except socket.error:
522
+ # # break
523
+ #
524
+ # if len(buf) == 0:
525
+ # break
526
+ # else:
527
+ # data += buf.decode()
528
+ # except Exception as e:
529
+ # self.error(str(e))
530
+ # sock.close()
531
+ # return None
532
try:
516
- while True:
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:
525
- data += buf.decode()
526
- except:
533
+ data = sock.recv(65535, 0x40).decode()
534
+ except Exception as e:
535
+ self.error(str(e))
536
sock.close()
537
return None
538