Merge branch 'collectd-4.4'
authorFlorian Forster <sifnfors@informatik.stud.uni-erlangen.de>
Tue, 27 May 2008 11:16:55 +0000 (13:16 +0200)
committerFlorian Forster <sifnfors@informatik.stud.uni-erlangen.de>
Tue, 27 May 2008 11:16:55 +0000 (13:16 +0200)
1  2 
src/collectd.conf.in
src/email.c
src/ntpd.c
src/utils_threshold.c

diff --combined src/collectd.conf.in
@@@ -21,7 -21,6 +21,7 @@@ FQDNLookup   tru
  @BUILD_PLUGIN_CPU_TRUE@LoadPlugin cpu
  @BUILD_PLUGIN_CPUFREQ_TRUE@LoadPlugin cpufreq
  @BUILD_PLUGIN_CSV_TRUE@LoadPlugin csv
 +@BUILD_PLUGIN_DESKTOP_NOTIFICATION_TRUE@LoadPlugin desktop_notification
  @BUILD_PLUGIN_DF_TRUE@LoadPlugin df
  @BUILD_PLUGIN_DISK_TRUE@LoadPlugin disk
  @BUILD_PLUGIN_DNS_TRUE@LoadPlugin dns
  #     StoreRates false
  #</Plugin>
  
 +#<Plugin desktop_notification>
 +#     OkayTimeout 1000
 +#     WarningTimeout 5000
 +#     FailureTimeout 0
 +#</Plugin>
 +
  #<Plugin df>
  #     Device "/dev/hda1"
  #     Device "192.168.0.2:/mnt/nfs"
  #     IgnoreSelected false
  #</Plugin>
  
+ #<Plugin df>
+ #     Disk "/^[hs]d[a-f][0-9]?$/"
+ #     IgnoreSelected false
+ #</Plugin>
  #<Plugin dns>
  #     Interface "eth0"
  #     IgnoreSource "192.168.0.1"
diff --combined src/email.c
@@@ -292,7 -292,7 +292,7 @@@ static void *collect (void *arg
  
                        len = strlen (line);
                        if (('\n' != line[len - 1]) && ('\r' != line[len - 1])) {
-                               log_warn ("[thread #%5lu] line too long (> %i characters): "
+                               log_warn ("[thread #%5lu] line too long (> %lu characters): "
                                                "'%s' (truncated)", self, sizeof (line) - 1, line);
  
                                while (NULL != fgets (line, sizeof (line), this->socket))
@@@ -394,7 -394,8 +394,7 @@@ static void *open_connection (void *arg
  
        addr.sun_family = AF_UNIX;
  
 -      strncpy (addr.sun_path, path, (size_t)(UNIX_PATH_MAX - 1));
 -      addr.sun_path[UNIX_PATH_MAX - 1] = '\0';
 +      sstrncpy (addr.sun_path, path, (size_t)(UNIX_PATH_MAX - 1));
        unlink (addr.sun_path);
  
        errno = 0;
@@@ -658,10 -659,9 +658,10 @@@ static void email_submit (const char *t
        vl.time = time (NULL);
        strcpy (vl.host, hostname_g);
        strcpy (vl.plugin, "email");
 -      strncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
 +      sstrncpy (vl.type, type, sizeof (vl.type));
 +      sstrncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
  
 -      plugin_dispatch_values (type, &vl);
 +      plugin_dispatch_values (&vl);
  } /* void email_submit */
  
  /* Copy list l1 to list l2. l2 may partly exist already, but it is assumed
diff --combined src/ntpd.c
@@@ -269,10 -269,11 +269,10 @@@ static int ntpd_config (const char *key
        {
                int port = (int) (atof (value));
                if ((port > 0) && (port <= 65535))
 -                      snprintf (ntpd_port, sizeof (ntpd_port),
 +                      ssnprintf (ntpd_port, sizeof (ntpd_port),
                                        "%i", port);
                else
 -                      strncpy (ntpd_port, value, sizeof (ntpd_port));
 -              ntpd_port[sizeof (ntpd_port) - 1] = '\0';
 +                      sstrncpy (ntpd_port, value, sizeof (ntpd_port));
        }
        else if (strcasecmp (key, "ReverseLookups") == 0)
        {
@@@ -304,10 -305,9 +304,10 @@@ static void ntpd_submit (char *type, ch
        strcpy (vl.host, hostname_g);
        strcpy (vl.plugin, "ntpd");
        strcpy (vl.plugin_instance, "");
 -      strncpy (vl.type_instance, type_inst, sizeof (vl.type_instance));
 +      sstrncpy (vl.type, type, sizeof (vl.type));
 +      sstrncpy (vl.type_instance, type_inst, sizeof (vl.type_instance));
  
 -      plugin_dispatch_values (type, &vl);
 +      plugin_dispatch_values (&vl);
  }
  
  /* returns `tv0 - tv1' in milliseconds or 0 if `tv1 > tv0' */
@@@ -613,7 -613,7 +613,7 @@@ static int ntpd_receive_response (int *
                if (pkt_item_len < res_item_size)
                        pkt_padding = res_item_size - pkt_item_len;
                DEBUG ("res_item_size = %i; pkt_padding = %i;",
-                               res_item_size, pkt_padding);
+                               res_item_size, (int) pkt_padding);
  
                /* Extract the sequence number */
                pkt_sequence = INFO_SEQ (res.auth_seq);
                 * We start by allocating some more memory.
                 */
                DEBUG ("realloc (%p, %i)", (void *) *res_data,
-                               (items_num + pkt_item_num) * res_item_size);
+                               (int) (items_num + pkt_item_num) * res_item_size);
                items = realloc ((void *) *res_data,
                                (items_num + pkt_item_num) * res_item_size);
                if (items == NULL)
@@@ -874,7 -874,7 +874,7 @@@ static int ntpd_read (void
  
                        if (refclock_id < refclock_names_num)
                        {
 -                              strncpy (peername, refclock_names[refclock_id],
 +                              sstrncpy (peername, refclock_names[refclock_id],
                                                sizeof (peername));
                        }
                        else
                                addr_obj.s_addr = ptr->srcadr;
                                addr_str = inet_ntoa (addr_obj);
  
 -                              strncpy (peername, addr_str, sizeof (peername));
 +                              sstrncpy (peername, addr_str, sizeof (peername));
                        }
                }
                else /* Normal network host. */
diff --combined src/utils_threshold.c
@@@ -184,8 -184,9 +184,8 @@@ static int ut_config_type_instance (thr
      return (-1);
    }
  
 -  strncpy (th->type_instance, ci->values[0].value.string,
 +  sstrncpy (th->type_instance, ci->values[0].value.string,
        sizeof (th->type_instance));
 -  th->type_instance[sizeof (th->type_instance) - 1] = '\0';
  
    return (0);
  } /* int ut_config_type_instance */
@@@ -283,7 -284,8 +283,7 @@@ static int ut_config_type (const thresh
    }
  
    memcpy (&th, th_orig, sizeof (th));
 -  strncpy (th.type, ci->values[0].value.string, sizeof (th.type));
 -  th.type[sizeof (th.type) - 1] = '\0';
 +  sstrncpy (th.type, ci->values[0].value.string, sizeof (th.type));
  
    th.warning_min = NAN;
    th.warning_max = NAN;
@@@ -338,8 -340,9 +338,8 @@@ static int ut_config_plugin_instance (t
      return (-1);
    }
  
 -  strncpy (th->plugin_instance, ci->values[0].value.string,
 +  sstrncpy (th->plugin_instance, ci->values[0].value.string,
        sizeof (th->plugin_instance));
 -  th->plugin_instance[sizeof (th->plugin_instance) - 1] = '\0';
  
    return (0);
  } /* int ut_config_plugin_instance */
@@@ -366,7 -369,8 +366,7 @@@ static int ut_config_plugin (const thre
    }
  
    memcpy (&th, th_orig, sizeof (th));
 -  strncpy (th.plugin, ci->values[0].value.string, sizeof (th.plugin));
 -  th.plugin[sizeof (th.plugin) - 1] = '\0';
 +  sstrncpy (th.plugin, ci->values[0].value.string, sizeof (th.plugin));
  
    for (i = 0; i < ci->children_num; i++)
    {
@@@ -413,7 -417,8 +413,7 @@@ static int ut_config_host (const thresh
    }
  
    memcpy (&th, th_orig, sizeof (th));
 -  strncpy (th.host, ci->values[0].value.string, sizeof (th.host));
 -  th.host[sizeof (th.host) - 1] = '\0';
 +  sstrncpy (th.host, ci->values[0].value.string, sizeof (th.host));
  
    for (i = 0; i < ci->children_num; i++)
    {
@@@ -496,45 -501,46 +496,45 @@@ int ut_config (const oconfig_item_t *ci
   */
  /* }}} */
  
 -static threshold_t *threshold_search (const data_set_t *ds,
 -    const value_list_t *vl)
 +static threshold_t *threshold_search (const value_list_t *vl)
  {
    threshold_t *th;
  
    if ((th = threshold_get (vl->host, vl->plugin, vl->plugin_instance,
 -        ds->type, vl->type_instance)) != NULL)
 +        vl->type, vl->type_instance)) != NULL)
      return (th);
    else if ((th = threshold_get (vl->host, vl->plugin, vl->plugin_instance,
 -        ds->type, NULL)) != NULL)
 +        vl->type, NULL)) != NULL)
      return (th);
    else if ((th = threshold_get (vl->host, vl->plugin, NULL,
 -        ds->type, vl->type_instance)) != NULL)
 +        vl->type, vl->type_instance)) != NULL)
      return (th);
    else if ((th = threshold_get (vl->host, vl->plugin, NULL,
 -        ds->type, NULL)) != NULL)
 +        vl->type, NULL)) != NULL)
      return (th);
    else if ((th = threshold_get (vl->host, "", NULL,
 -        ds->type, vl->type_instance)) != NULL)
 +        vl->type, vl->type_instance)) != NULL)
      return (th);
    else if ((th = threshold_get (vl->host, "", NULL,
 -        ds->type, NULL)) != NULL)
 +        vl->type, NULL)) != NULL)
      return (th);
    else if ((th = threshold_get ("", vl->plugin, vl->plugin_instance,
 -        ds->type, vl->type_instance)) != NULL)
 +        vl->type, vl->type_instance)) != NULL)
      return (th);
    else if ((th = threshold_get ("", vl->plugin, vl->plugin_instance,
 -        ds->type, NULL)) != NULL)
 +        vl->type, NULL)) != NULL)
      return (th);
    else if ((th = threshold_get ("", vl->plugin, NULL,
 -        ds->type, vl->type_instance)) != NULL)
 +        vl->type, vl->type_instance)) != NULL)
      return (th);
    else if ((th = threshold_get ("", vl->plugin, NULL,
 -        ds->type, NULL)) != NULL)
 +        vl->type, NULL)) != NULL)
      return (th);
    else if ((th = threshold_get ("", "", NULL,
 -        ds->type, vl->type_instance)) != NULL)
 +        vl->type, vl->type_instance)) != NULL)
      return (th);
    else if ((th = threshold_get ("", "", NULL,
 -        ds->type, NULL)) != NULL)
 +        vl->type, NULL)) != NULL)
      return (th);
  
    return (NULL);
@@@ -591,26 -597,26 +591,26 @@@ static int ut_report_state (const data_
  
    n.time = vl->time;
  
 -  status = snprintf (buf, bufsize, "Host %s, plugin %s",
 +  status = ssnprintf (buf, bufsize, "Host %s, plugin %s",
        vl->host, vl->plugin);
    buf += status;
    bufsize -= status;
  
    if (vl->plugin_instance[0] != '\0')
    {
 -    status = snprintf (buf, bufsize, " (instance %s)",
 +    status = ssnprintf (buf, bufsize, " (instance %s)",
        vl->plugin_instance);
      buf += status;
      bufsize -= status;
    }
  
 -  status = snprintf (buf, bufsize, " type %s", ds->type);
 +  status = ssnprintf (buf, bufsize, " type %s", vl->type);
    buf += status;
    bufsize -= status;
  
    if (vl->type_instance[0] != '\0')
    {
 -    status = snprintf (buf, bufsize, " (instance %s)",
 +    status = ssnprintf (buf, bufsize, " (instance %s)",
        vl->type_instance);
      buf += status;
      bufsize -= status;
    /* Send an okay notification */
    if (state == STATE_OKAY)
    {
 -    status = snprintf (buf, bufsize, ": All data sources are within range again.");
 +    status = ssnprintf (buf, bufsize, ": All data sources are within range again.");
      buf += status;
      bufsize -= status;
    }
      {
        if (!isnan (min) && !isnan (max))
        {
 -      status = snprintf (buf, bufsize, ": Data source \"%s\" is currently "
 +      status = ssnprintf (buf, bufsize, ": Data source \"%s\" is currently "
            "%f. That is within the %s region of %f and %f.",
            ds->ds[ds_index].name, values[ds_index],
            (state == STATE_ERROR) ? "failure" : "warning",
-           min, min);
+           min, max);
        }
        else
        {
 -      status = snprintf (buf, bufsize, ": Data source \"%s\" is currently "
 +      status = ssnprintf (buf, bufsize, ": Data source \"%s\" is currently "
            "%f. That is %s the %s threshold of %f.",
            ds->ds[ds_index].name, values[ds_index],
            isnan (min) ? "below" : "above",
      }
      else /* is not inverted */
      {
 -      status = snprintf (buf, bufsize, ": Data source \"%s\" is currently "
 +      status = ssnprintf (buf, bufsize, ": Data source \"%s\" is currently "
          "%f. That is %s the %s threshold of %f.",
          ds->ds[ds_index].name, values[ds_index],
          (values[ds_index] < min) ? "below" : "above",
@@@ -777,7 -783,7 +777,7 @@@ int ut_check_threshold (const data_set_
    /* Is this lock really necessary? So far, thresholds are only inserted at
     * startup. -octo */
    pthread_mutex_lock (&threshold_lock);
 -  th = threshold_search (ds, vl);
 +  th = threshold_search (vl);
    pthread_mutex_unlock (&threshold_lock);
    if (th == NULL)
      return (0);
@@@ -859,19 -865,27 +859,19 @@@ int ut_check_interesting (const char *n
    memset (&ds, '\0', sizeof (ds));
    memset (&vl, '\0', sizeof (vl));
  
 -  strncpy (vl.host, host, sizeof (vl.host));
 -  vl.host[sizeof (vl.host) - 1] = '\0';
 -  strncpy (vl.plugin, plugin, sizeof (vl.plugin));
 -  vl.plugin[sizeof (vl.plugin) - 1] = '\0';
 +  sstrncpy (vl.host, host, sizeof (vl.host));
 +  sstrncpy (vl.plugin, plugin, sizeof (vl.plugin));
    if (plugin_instance != NULL)
 -  {
 -    strncpy (vl.plugin_instance, plugin_instance, sizeof (vl.plugin_instance));
 -    vl.plugin_instance[sizeof (vl.plugin_instance) - 1] = '\0';
 -  }
 -  strncpy (ds.type, type, sizeof (ds.type));
 -  ds.type[sizeof (ds.type) - 1] = '\0';
 +    sstrncpy (vl.plugin_instance, plugin_instance, sizeof (vl.plugin_instance));
 +  sstrncpy (ds.type, type, sizeof (ds.type));
 +  sstrncpy (vl.type, type, sizeof (vl.type));
    if (type_instance != NULL)
 -  {
 -    strncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
 -    vl.type_instance[sizeof (vl.type_instance) - 1] = '\0';
 -  }
 +    sstrncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
  
    sfree (name_copy);
    host = plugin = plugin_instance = type = type_instance = NULL;
  
 -  th = threshold_search (&ds, &vl);
 +  th = threshold_search (&vl);
    if (th == NULL)
      return (0);
    if ((th->flags & UT_FLAG_PERSIST) == 0)