Merge branch 'collectd-4.8'
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Thu, 1 Oct 2009 19:34:21 +0000 (21:34 +0200)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Thu, 1 Oct 2009 19:34:21 +0000 (21:34 +0200)
Conflicts:
src/types.db

README
src/collectd.conf.in
src/owniptc/libiptc.c
src/processes.c
src/types.db
src/unixsock.c

diff --git a/README b/README
index 07a7415..a737f86 100644 (file)
--- a/README
+++ b/README
@@ -581,7 +581,7 @@ Prerequisites
 
   * libyajl (optional)
     Parse JSON data. This is needed for the `curl_json' plugin.
-    <http://www.lloydforge.org/projects/yajl/>
+    <http://github.com/lloyd/yajl>
 
 Configuring / Compiling / Installing
 ------------------------------------
index e78f9dc..8f28f8f 100644 (file)
@@ -175,7 +175,26 @@ FQDNLookup   true
 #  </View>
 #</Plugin>
 
-#<Plugin couchdb>
+#<Plugin csv>
+#      DataDir "@prefix@/var/lib/@PACKAGE_NAME@/csv"
+#      StoreRates false
+#</Plugin>
+
+#<Plugin curl>
+#  <Page "stock_quotes">
+#    URL "http://finance.google.com/finance?q=NYSE%3AAMD"
+#    User "foo"
+#    Password "bar"
+#    <Match>
+#      Regex "<span +class=\"pr\"[^>]*> *([0-9]*\\.[0-9]+) *</span>"
+#      DSType "GaugeAverage"
+#      Type "stock_value"
+#      Instance "AMD"
+#    </Match>
+#  </Page>
+#</Plugin>
+
+#<Plugin curl_json>
 ## See: http://wiki.apache.org/couchdb/Runtime_Statistics
 #  <URL "http://localhost:5984/_stats">
 #    Instance "httpd"
@@ -206,25 +225,6 @@ FQDNLookup   true
 #  </URL>
 #</Plugin>
 
-#<Plugin csv>
-#      DataDir "@prefix@/var/lib/@PACKAGE_NAME@/csv"
-#      StoreRates false
-#</Plugin>
-
-#<Plugin curl>
-#  <Page "stock_quotes">
-#    URL "http://finance.google.com/finance?q=NYSE%3AAMD"
-#    User "foo"
-#    Password "bar"
-#    <Match>
-#      Regex "<span +class=\"pr\"[^>]*> *([0-9]*\\.[0-9]+) *</span>"
-#      DSType "GaugeAverage"
-#      Type "stock_value"
-#      Instance "AMD"
-#    </Match>
-#  </Page>
-#</Plugin>
-
 #<Plugin dbi>
 #      <Query "num_of_customers">
 #              Statement "SELECT 'customers' AS c_key, COUNT(*) AS c_value FROM customers_tbl"
@@ -263,6 +263,7 @@ FQDNLookup   true
 #<Plugin dns>
 #      Interface "eth0"
 #      IgnoreSource "192.168.0.1"
+#      SelectNumericQueryTypes true
 #</Plugin>
 
 #<Plugin email>
@@ -313,12 +314,6 @@ FQDNLookup   true
 #  TranslateDevicename false
 #</Plugin>
 
-#<Plugin http>
-#      URL "http://example.com/collectd-import"
-#      User "www-user"
-#      Password "secret"
-#</Plugin>
-
 #<Plugin interface>
 #      Interface "eth0"
 #      IgnoreSelected false
index f7a6640..5e5fde0 100644 (file)
@@ -1489,6 +1489,7 @@ TC_NEXT_RULE(const STRUCT_ENTRY *prev, TC_HANDLE_T *handle)
 }
 
 /* How many rules in this chain? */
+#if 0
 static unsigned int
 TC_NUM_RULES(const char *chain, TC_HANDLE_T *handle)
 {
@@ -1504,7 +1505,9 @@ TC_NUM_RULES(const char *chain, TC_HANDLE_T *handle)
        
        return c->num_rules;
 }
+#endif
 
+#if 0
 static const STRUCT_ENTRY *
 TC_GET_RULE(const char *chain, unsigned int n, TC_HANDLE_T *handle)
 {
@@ -1526,6 +1529,7 @@ TC_GET_RULE(const char *chain, unsigned int n, TC_HANDLE_T *handle)
                return NULL;
        return r->entry;
 }
+#endif
 
 /* Returns a pointer to the target name of this position. */
 static const char *standard_target_map(int verdict)
index fd06b21..4f51518 100644 (file)
@@ -704,7 +704,10 @@ int ps_read_process (int pid, procstat_t *ps, char *state)
        else
        {
                if ( (ps->num_lwp = ps_read_tasks (pid)) == -1 )
-                       return (-1);
+               {
+                       /* returns -1 => kernel 2.4 */
+                       ps->num_lwp = 1;
+               }
                ps->num_proc = 1;
        }
 
index c6526d4..960674c 100644 (file)
@@ -54,7 +54,7 @@ email_count           value:GAUGE:0:U
 email_size             value:GAUGE:0:U
 entropy                        entropy:GAUGE:0:4294967295
 fanspeed               value:GAUGE:0:U
-file_size               bytes:GAUGE:0:U
+file_size              bytes:GAUGE:0:U
 files                  value:GAUGE:0:U
 frequency              frequency:GAUGE:0:U
 frequency_offset       ppm:GAUGE:-1000000:1000000
@@ -125,8 +125,8 @@ ps_stacksize                value:GAUGE:0:9223372036854775807
 ps_state               value:GAUGE:0:65535
 ps_vm                  value:GAUGE:0:9223372036854775807
 queue_length           value:GAUGE:0:U
-records                 count:GAUGE:0:U
 response_time          value:GAUGE:0:U
+records                        count:GAUGE:0:U
 route_etx              value:GAUGE:0:U
 route_metric           value:GAUGE:0:U
 routes                 value:GAUGE:0:U
index be36abc..0b89748 100644 (file)
@@ -158,32 +158,45 @@ static int us_open_socket (void)
 
 static void *us_handle_client (void *arg)
 {
-       int fd;
+       int fdin;
+       int fdout;
        FILE *fhin, *fhout;
 
-       fd = *((int *) arg);
+       fdin = *((int *) arg);
        free (arg);
        arg = NULL;
 
-       DEBUG ("unixsock plugin: us_handle_client: Reading from fd #%i", fd);
+       DEBUG ("unixsock plugin: us_handle_client: Reading from fd #%i", fdin);
 
-       fhin  = fdopen (fd, "r");
+       fdout = dup (fdin);
+       if (fdout < 0)
+       {
+               char errbuf[1024];
+               ERROR ("unixsock plugin: dup failed: %s",
+                               sstrerror (errno, errbuf, sizeof (errbuf)));
+               close (fdin);
+               pthread_exit ((void *) 1);
+       }
+
+       fhin  = fdopen (fdin, "r");
        if (fhin == NULL)
        {
                char errbuf[1024];
                ERROR ("unixsock plugin: fdopen failed: %s",
                                sstrerror (errno, errbuf, sizeof (errbuf)));
-               close (fd);
+               close (fdin);
+               close (fdout);
                pthread_exit ((void *) 1);
        }
 
-       fhout = fdopen (fd, "w");
+       fhout = fdopen (fdout, "w");
        if (fhout == NULL)
        {
                char errbuf[1024];
                ERROR ("unixsock plugin: fdopen failed: %s",
                                sstrerror (errno, errbuf, sizeof (errbuf)));
-               fclose (fhin); /* this closes fd as well */
+               fclose (fhin); /* this closes fdin as well */
+               close (fdout);
                pthread_exit ((void *) 1);
        }
 
@@ -231,11 +244,12 @@ static void *us_handle_client (void *arg)
 
                fields_num = strsplit (buffer_copy, fields,
                                sizeof (fields) / sizeof (fields[0]));
-
                if (fields_num < 1)
                {
-                       close (fd);
-                       break;
+                       fprintf (fhout, "-1 Internal error\n");
+                       fclose (fhin);
+                       fclose (fhout);
+                       pthread_exit ((void *) 1);
                }
 
                if (strcasecmp (fields[0], "getval") == 0)