]> arthur.barton.de Git - netdata.git/commitdiff
fix SocketService
authorpaulfantom <paulfantom@gmail.com>
Wed, 13 Jul 2016 14:28:45 +0000 (16:28 +0200)
committerpaulfantom <paulfantom@gmail.com>
Wed, 13 Jul 2016 14:28:45 +0000 (16:28 +0200)
python.d/python_modules/base.py
python.d/squid.chart.py

index ca5f36577c3daf36187af92013a6f79a9624bc2b..bd2f416206e99bbe04bb0beb8e9d3187da1d2767 100644 (file)
@@ -150,10 +150,10 @@ class BaseService(threading.Thread):
                 else:
                     time.sleep(self.timetable['freq'])
 
-    def _format(self, *input):
+    def _format(self, *args):
         params = []
         append = params.append
-        for p in input:
+        for p in args:
             if p is None:
                 append(p)
                 continue
@@ -515,14 +515,15 @@ class SocketService(SimpleService):
         data = sock.recv(2)
         try:
             while True:
-                buf = sock.recv(1024)
-#                if not buf:
-#                    break
-#                else:
-#                    data += buf
-                data += buf
-                if len(buf) < 1024:
+                try:
+                    buf = sock.recv(1024, 0x40)  # get 1024 bytes in NON-BLOCKING mode
+                except socket.error:
+                    break
+
+                if len(buf) == 0:
                     break
+                else:
+                    data += buf
         except:
             sock.close()
             return None
index 09453ccd4f796c411c202111754233a5274b14f0..9d50198fceaa0272a8a9b0c9056d772ca452fefa 100644 (file)
@@ -65,7 +65,7 @@ class Service(SocketService):
                 if row.startswith(("client", "server.all")):
                     tmp = row.split("=")
                     data[tmp[0].replace('.', '_').strip(' ')] = int(tmp[1])
-        except (ValueError, AttributeError):
+        except (ValueError, AttributeError, TypeError):
             return None
 
         if len(data) == 0:
@@ -86,31 +86,8 @@ class Service(SocketService):
         if not req.endswith(" HTTP/1.0\r\n\r\n"):
             req += " HTTP/1.0\r\n\r\n"
         self.request = req.encode()
-        #
-        # # autodetect squid
-        # if type(self.port) is tuple:
-        #     ports = self.port
-        #     for port in ports:
-        #         self.port = port
-        #         urls = ["cache_object://" + self.host + ":" + str(port) + "/counters",
-        #                 "/squid-internal-mgr/counters"]
-        #         for url in urls:
-        #             tmp = "GET " + url + " HTTP/1.0\r\n\r\n"
-        #             self.request = tmp.encode()
-        #             if self._get_data() is not None:
-        #                 return True
-        # else:
-        if True:
-            if self._get_data() is not None:
-                return True
-            else:
-                self.error("No data returned")
-                return False
-            
-                
-                
-                
-            
-                
-            
-
+        if self._get_data() is not None:
+            return True
+        else:
+            self.error("No data returned")
+            return False