@cryptotaxi247 / netdata-1 / commits / 62bac802c

fix `NetSocketService` (parsing `request` from configuration file)

paulfantom committed Jul 6, 2016 at 18:42 UTC 62bac802cad0b6a42e9637bb3f4ffed0fbf84720
2 files changed +16 -12
python.d/hddtemp.chart.py
+4 -2
@@ -43,7 +43,10 @@ class Service(NetSocketService):
43 Get data from TCP/IP socket
44 :return: dict
45 """
46 - raw = self._get_raw_data().split("|")[:-1]
46 + try:
47 + raw = self._get_raw_data().split("|")[:-1]
48 + except AttributeError:
49 + return None
50 data = {}
51 for i in range(len(raw) // 5):
52 try:
@@ -59,7 +62,6 @@ class Service(NetSocketService):
62 :return: boolean
63 """
64 self._parse_config()
62 -
65 data = self._get_data()
66 if data is None:
67 self.error("No data received")
python.d/python_modules/base.py
+12 -10
@@ -451,19 +451,21 @@ class NetSocketService(SimpleService):
451 sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
452 sock.connect((self.host, self.port))
453 except Exception as e:
454 + print(e)
455 self.sock = None
456 return None
457
457 - try:
458 - sock.send(self.request)
459 - except Exception:
458 + if self.request != "".encode():
459 try:
461 - sock.shutdown(1)
462 - sock.close()
463 - except:
464 - pass
465 - self.sock = None
466 - return None
460 + sock.send(self.request)
461 + except Exception:
462 + try:
463 + sock.shutdown(1)
464 + sock.close()
465 + except:
466 + pass
467 + self.sock = None
468 + return None
469
470 data = sock.recv(1024)
471 try:
@@ -497,7 +499,7 @@ class NetSocketService(SimpleService):
499 except (KeyError, TypeError):
500 self.error("No port specified. Using: '" + str(self.port) + "'")
501 try:
500 - self.request = int(self.configuration['request'])
502 + self.request = str(self.configuration['request'])
503 except (KeyError, TypeError):
504 self.error("No request specified. Using: '" + str(self.request) + "'")
505 self.request = self.request.encode()