Merge branch 'collectd-5.8'
authorFlorian Forster <octo@collectd.org>
Fri, 1 Dec 2017 10:26:17 +0000 (11:26 +0100)
committerFlorian Forster <octo@collectd.org>
Fri, 1 Dec 2017 10:26:17 +0000 (11:26 +0100)
1  2 
src/ping.c

diff --combined src/ping.c
@@@ -81,11 -81,11 +81,11 @@@ static double ping_interval = 1.0
  static double ping_timeout = 0.9;
  static int ping_max_missed = -1;
  
+ static pthread_mutex_t ping_lock = PTHREAD_MUTEX_INITIALIZER;
+ static pthread_cond_t ping_cond = PTHREAD_COND_INITIALIZER;
  static int ping_thread_loop = 0;
  static int ping_thread_error = 0;
  static pthread_t ping_thread_id;
- static pthread_mutex_t ping_lock = PTHREAD_MUTEX_INITIALIZER;
- static pthread_cond_t ping_cond = PTHREAD_COND_INITIALIZER;
  
  static const char *config_keys[] = {"Host",    "SourceAddress",
  #ifdef HAVE_OPING_1_3
@@@ -224,8 -224,6 +224,6 @@@ static int ping_dispatch_all(pingobj_t 
  
  static void *ping_thread(void *arg) /* {{{ */
  {
-   pingobj_t *pingobj = NULL;
    struct timeval tv_begin;
    struct timeval tv_end;
    struct timespec ts_wait;
  
    c_complain_t complaint = C_COMPLAIN_INIT_STATIC;
  
-   pthread_mutex_lock(&ping_lock);
-   pingobj = ping_construct();
+   pingobj_t *pingobj = ping_construct();
    if (pingobj == NULL) {
      ERROR("ping plugin: ping_construct failed.");
+     pthread_mutex_lock(&ping_lock);
      ping_thread_error = 1;
      pthread_mutex_unlock(&ping_lock);
      return (void *)-1;
  
    if (count == 0) {
      ERROR("ping plugin: No host could be added to ping object. Giving up.");
+     pthread_mutex_lock(&ping_lock);
      ping_thread_error = 1;
      pthread_mutex_unlock(&ping_lock);
      return (void *)-1;
      ts_int.tv_nsec = (long)(temp_nsec * 1000000000L);
    }
  
+   pthread_mutex_lock(&ping_lock);
    while (ping_thread_loop > 0) {
-     int status;
      _Bool send_successful = 0;
  
      if (gettimeofday(&tv_begin, NULL) < 0) {
 -      char errbuf[1024];
 -      ERROR("ping plugin: gettimeofday failed: %s",
 -            sstrerror(errno, errbuf, sizeof(errbuf)));
 +      ERROR("ping plugin: gettimeofday failed: %s", STRERRNO);
        ping_thread_error = 1;
        break;
      }
  
      pthread_mutex_unlock(&ping_lock);
  
-     status = ping_send(pingobj);
+     int status = ping_send(pingobj);
      if (status < 0) {
        c_complain(LOG_ERR, &complaint, "ping plugin: ping_send failed: %s",
                   ping_get_error(pingobj));
        (void)ping_dispatch_all(pingobj);
  
      if (gettimeofday(&tv_end, NULL) < 0) {
 -      char errbuf[1024];
 -      ERROR("ping plugin: gettimeofday failed: %s",
 -            sstrerror(errno, errbuf, sizeof(errbuf)));
 +      ERROR("ping plugin: gettimeofday failed: %s", STRERRNO);
        ping_thread_error = 1;
        break;
      }
@@@ -432,8 -434,9 +430,8 @@@ static int config_set_string(const cha
  
    tmp = strdup(value);
    if (tmp == NULL) {
 -    char errbuf[1024];
      ERROR("ping plugin: Setting `%s' to `%s' failed: strdup failed: %s", name,
 -          value, sstrerror(errno, errbuf, sizeof(errbuf)));
 +          value, STRERRNO);
      return 1;
    }
  
@@@ -451,14 -454,18 +449,14 @@@ static int ping_config(const char *key
  
      hl = malloc(sizeof(*hl));
      if (hl == NULL) {
 -      char errbuf[1024];
 -      ERROR("ping plugin: malloc failed: %s",
 -            sstrerror(errno, errbuf, sizeof(errbuf)));
 +      ERROR("ping plugin: malloc failed: %s", STRERRNO);
        return 1;
      }
  
      host = strdup(value);
      if (host == NULL) {
 -      char errbuf[1024];
        sfree(hl);
 -      ERROR("ping plugin: strdup failed: %s",
 -            sstrerror(errno, errbuf, sizeof(errbuf)));
 +      ERROR("ping plugin: strdup failed: %s", STRERRNO);
        return 1;
      }