write_prometheus: Set SO_REUSEADDR on listening socket
[collectd.git] / src / email.c
index b4a5e81..611da56 100644 (file)
@@ -299,22 +299,21 @@ static void *collect(void *arg) {
       }
 
       if ('e' == line[0]) { /* e:<type>:<bytes> */
-        char *ptr = NULL;
-        char *type = strtok_r(line + 2, ":", &ptr);
-        char *tmp = strtok_r(NULL, ":", &ptr);
-        int bytes = 0;
-
-        if (NULL == tmp) {
+        char *type = line + 2;
+        char *bytes_str = strchr(type, ':');
+        if (bytes_str == NULL) {
           log_err("collect: syntax error in line '%s'", line);
           continue;
         }
 
-        bytes = atoi(tmp);
+        *bytes_str = 0;
+        bytes_str++;
 
         pthread_mutex_lock(&count_mutex);
         type_list_incr(&list_count, type, /* increment = */ 1);
         pthread_mutex_unlock(&count_mutex);
 
+        int bytes = atoi(bytes_str);
         if (bytes > 0) {
           pthread_mutex_lock(&size_mutex);
           type_list_incr(&list_size, type, /* increment = */ bytes);
@@ -361,8 +360,6 @@ static void *collect(void *arg) {
 } /* static void *collect (void *) */
 
 static void *open_connection(void __attribute__((unused)) * arg) {
-  struct sockaddr_un addr;
-
   const char *path = (NULL == sock_file) ? SOCK_PATH : sock_file;
   const char *group = (NULL == sock_group) ? COLLECTD_GRP_NAME : sock_group;
 
@@ -375,7 +372,9 @@ static void *open_connection(void __attribute__((unused)) * arg) {
     pthread_exit((void *)1);
   }
 
-  addr.sun_family = AF_UNIX;
+  struct sockaddr_un addr = {
+      .sun_family = AF_UNIX,
+  };
   sstrncpy(addr.sun_path, path, (size_t)(UNIX_PATH_MAX - 1));
 
   errno = 0;
@@ -454,7 +453,7 @@ static void *open_connection(void __attribute__((unused)) * arg) {
       collectors[i]->socket = NULL;
 
       if (plugin_thread_create(&collectors[i]->thread, &ptattr, collect,
-                               collectors[i]) != 0) {
+                               collectors[i], "email collector") != 0) {
         char errbuf[1024];
         log_err("plugin_thread_create() failed: %s",
                 sstrerror(errno, errbuf, sizeof(errbuf)));
@@ -537,7 +536,8 @@ static void *open_connection(void __attribute__((unused)) * arg) {
 } /* static void *open_connection (void *) */
 
 static int email_init(void) {
-  if (plugin_thread_create(&connector, NULL, open_connection, NULL) != 0) {
+  if (plugin_thread_create(&connector, NULL, open_connection, NULL,
+                           "email listener") != 0) {
     char errbuf[1024];
     disabled = 1;
     log_err("plugin_thread_create() failed: %s",
@@ -619,14 +619,10 @@ static int email_shutdown(void) {
 
 static void email_submit(const char *type, const char *type_instance,
                          gauge_t value) {
-  value_t values[1];
   value_list_t vl = VALUE_LIST_INIT;
 
-  values[0].gauge = value;
-
-  vl.values = values;
+  vl.values = &(value_t){.gauge = value};
   vl.values_len = 1;
-  sstrncpy(vl.host, hostname_g, sizeof(vl.host));
   sstrncpy(vl.plugin, "email", sizeof(vl.plugin));
   sstrncpy(vl.type, type, sizeof(vl.type));
   sstrncpy(vl.type_instance, type_instance, sizeof(vl.type_instance));