X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Femail.c;h=d94c542ffcff7fef4b8b12d06117acc42920100d;hp=d1df0a12ce040065685e84a1862653bcf1b83e56;hb=77ca1a45bab2f6adf9301723d0db68e5813a6d98;hpb=45492ba3d0119874e2f2878d68089fc8f62268a4 diff --git a/src/email.c b/src/email.c index d1df0a12..d94c542f 100644 --- a/src/email.c +++ b/src/email.c @@ -159,18 +159,18 @@ static type_list_t list_check_copy; * Private functions */ static int email_config(const char *key, const char *value) { - if (0 == strcasecmp(key, "SocketFile")) { - if (NULL != sock_file) + if (strcasecmp(key, "SocketFile") == 0) { + if (sock_file != NULL) free(sock_file); sock_file = sstrdup(value); - } else if (0 == strcasecmp(key, "SocketGroup")) { - if (NULL != sock_group) + } else if (strcasecmp(key, "SocketGroup") == 0) { + if (sock_group != NULL) free(sock_group); sock_group = sstrdup(value); - } else if (0 == strcasecmp(key, "SocketPerms")) { + } else if (strcasecmp(key, "SocketPerms") == 0) { /* the user is responsible for providing reasonable values */ sock_perms = (int)strtol(value, NULL, 8); - } else if (0 == strcasecmp(key, "MaxConns")) { + } else if (strcasecmp(key, "MaxConns") == 0) { long int tmp = strtol(value, NULL, 0); if (tmp < 1) { @@ -200,7 +200,7 @@ static int email_config(const char *key, const char *value) { /* Increment the value of the given name in the given list by incr. */ static void type_list_incr(type_list_t *list, char *name, int incr) { - if (NULL == list->head) { + if (list->head == NULL) { list->head = smalloc(sizeof(*list->head)); list->head->name = sstrdup(name); @@ -212,11 +212,11 @@ static void type_list_incr(type_list_t *list, char *name, int incr) { type_t *ptr; for (ptr = list->head; NULL != ptr; ptr = ptr->next) { - if (0 == strcmp(name, ptr->name)) + if (strcmp(name, ptr->name) == 0) break; } - if (NULL == ptr) { + if (ptr == NULL) { list->tail->next = smalloc(sizeof(*list->tail->next)); list->tail = list->tail->next; @@ -238,14 +238,14 @@ static void *collect(void *arg) { pthread_mutex_lock(&conns_mutex); - while (NULL == conns.head) { + while (conns.head == NULL) { pthread_cond_wait(&conn_available, &conns_mutex); } connection = conns.head; conns.head = conns.head->next; - if (NULL == conns.head) { + if (conns.head == NULL) { conns.tail = NULL; } @@ -263,25 +263,23 @@ static void *collect(void *arg) { int len = 0; errno = 0; - if (NULL == fgets(line, sizeof(line), this->socket)) { - if (0 != errno) { - char errbuf[1024]; + if (fgets(line, sizeof(line), this->socket) == NULL) { + if (errno != 0) { log_err("collect: reading from socket (fd #%i) " "failed: %s", - fileno(this->socket), - sstrerror(errno, errbuf, sizeof(errbuf))); + fileno(this->socket), STRERRNO); } break; } len = strlen(line); - if (('\n' != line[len - 1]) && ('\r' != line[len - 1])) { - log_warn("collect: line too long (> %zu characters): " + if ((line[len - 1] != '\n') && (line[len - 1] != '\r')) { + log_warn("collect: line too long (> %" PRIsz " characters): " "'%s' (truncated)", sizeof(line) - 1, line); - while (NULL != fgets(line, sizeof(line), this->socket)) - if (('\n' == line[len - 1]) || ('\r' == line[len - 1])) + while (fgets(line, sizeof(line), this->socket) != NULL) + if ((line[len - 1] == '\n') || (line[len - 1] == '\r')) break; continue; } @@ -293,40 +291,39 @@ static void *collect(void *arg) { log_debug("collect: line = '%s'", line); - if (':' != line[1]) { + if (line[1] != ':') { log_err("collect: syntax error in line '%s'", line); continue; } - if ('e' == line[0]) { /* e:: */ - char *ptr = NULL; - char *type = strtok_r(line + 2, ":", &ptr); - char *tmp = strtok_r(NULL, ":", &ptr); - int bytes = 0; - - if (NULL == tmp) { + if (line[0] == 'e') { /* e:: */ + 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); pthread_mutex_unlock(&size_mutex); } - } else if ('s' == line[0]) { /* s: */ + } else if (line[0] == 's') { /* s: */ pthread_mutex_lock(&score_mutex); score = (score * (double)score_count + atof(line + 2)) / (double)(score_count + 1); ++score_count; pthread_mutex_unlock(&score_mutex); - } else if ('c' == line[0]) { /* c:[,,...] */ + } else if (line[0] == 'c') { /* c:[,,...] */ char *dummy = line + 2; char *endptr = NULL; char *type; @@ -357,7 +354,7 @@ static void *collect(void *arg) { } /* while (1) */ pthread_exit((void *)0); - return ((void *)0); + return (void *)0; } /* static void *collect (void *) */ static void *open_connection(void __attribute__((unused)) * arg) { @@ -366,37 +363,34 @@ static void *open_connection(void __attribute__((unused)) * arg) { /* create UNIX socket */ errno = 0; - if (-1 == (connector_socket = socket(PF_UNIX, SOCK_STREAM, 0))) { - char errbuf[1024]; + if ((connector_socket = socket(PF_UNIX, SOCK_STREAM, 0)) == -1) { disabled = 1; - log_err("socket() failed: %s", sstrerror(errno, errbuf, sizeof(errbuf))); + log_err("socket() failed: %s", STRERRNO); pthread_exit((void *)1); } struct sockaddr_un addr = { - .sun_family = AF_UNIX + .sun_family = AF_UNIX, }; sstrncpy(addr.sun_path, path, (size_t)(UNIX_PATH_MAX - 1)); errno = 0; - if (-1 == - bind(connector_socket, (struct sockaddr *)&addr, - offsetof(struct sockaddr_un, sun_path) + strlen(addr.sun_path))) { - char errbuf[1024]; + if (bind(connector_socket, (struct sockaddr *)&addr, + offsetof(struct sockaddr_un, sun_path) + strlen(addr.sun_path)) == + -1) { disabled = 1; close(connector_socket); connector_socket = -1; - log_err("bind() failed: %s", sstrerror(errno, errbuf, sizeof(errbuf))); + log_err("bind() failed: %s", STRERRNO); pthread_exit((void *)1); } errno = 0; - if (-1 == listen(connector_socket, 5)) { - char errbuf[1024]; + if (listen(connector_socket, 5) == -1) { disabled = 1; close(connector_socket); connector_socket = -1; - log_err("listen() failed: %s", sstrerror(errno, errbuf, sizeof(errbuf))); + log_err("listen() failed: %s", STRERRNO); pthread_exit((void *)1); } @@ -415,25 +409,21 @@ static void *open_connection(void __attribute__((unused)) * arg) { grp = NULL; status = getgrnam_r(group, &sg, grbuf, sizeof(grbuf), &grp); if (status != 0) { - char errbuf[1024]; - log_warn("getgrnam_r (%s) failed: %s", group, - sstrerror(status, errbuf, sizeof(errbuf))); + log_warn("getgrnam_r (%s) failed: %s", group, STRERROR(status)); } else if (grp == NULL) { log_warn("No such group: `%s'", group); } else { status = chown(path, (uid_t)-1, grp->gr_gid); if (status != 0) { - char errbuf[1024]; log_warn("chown (%s, -1, %i) failed: %s", path, (int)grp->gr_gid, - sstrerror(errno, errbuf, sizeof(errbuf))); + STRERRNO); } } } errno = 0; - if (0 != chmod(path, sock_perms)) { - char errbuf[1024]; - log_warn("chmod() failed: %s", sstrerror(errno, errbuf, sizeof(errbuf))); + if (chmod(path, sock_perms) != 0) { + log_warn("chmod() failed: %s", STRERRNO); } { /* initialize collector threads */ @@ -455,9 +445,7 @@ static void *open_connection(void __attribute__((unused)) * arg) { if (plugin_thread_create(&collectors[i]->thread, &ptattr, collect, collectors[i], "email collector") != 0) { - char errbuf[1024]; - log_err("plugin_thread_create() failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + log_err("plugin_thread_create() failed: %s", STRERRNO); collectors[i]->thread = (pthread_t)0; } } @@ -472,7 +460,7 @@ static void *open_connection(void __attribute__((unused)) * arg) { pthread_mutex_lock(&available_mutex); - while (0 == available_collectors) { + while (available_collectors == 0) { pthread_cond_wait(&collector_available, &available_mutex); } @@ -485,16 +473,13 @@ static void *open_connection(void __attribute__((unused)) * arg) { remote = accept(connector_socket, NULL, NULL); if (remote == -1) { - char errbuf[1024]; - if (errno == EINTR) continue; disabled = 1; close(connector_socket); connector_socket = -1; - log_err("accept() failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); + log_err("accept() failed: %s", STRERRNO); pthread_exit((void *)1); } @@ -511,7 +496,7 @@ static void *open_connection(void __attribute__((unused)) * arg) { connection->socket = fdopen(remote, "r"); connection->next = NULL; - if (NULL == connection->socket) { + if (connection->socket == NULL) { close(remote); sfree(connection); continue; @@ -519,7 +504,7 @@ static void *open_connection(void __attribute__((unused)) * arg) { pthread_mutex_lock(&conns_mutex); - if (NULL == conns.head) { + if (conns.head == NULL) { conns.head = connection; conns.tail = connection; } else { @@ -533,20 +518,18 @@ static void *open_connection(void __attribute__((unused)) * arg) { } pthread_exit((void *)0); - return ((void *)0); + return (void *)0; } /* static void *open_connection (void *) */ static int email_init(void) { if (plugin_thread_create(&connector, NULL, open_connection, NULL, "email listener") != 0) { - char errbuf[1024]; disabled = 1; - log_err("plugin_thread_create() failed: %s", - sstrerror(errno, errbuf, sizeof(errbuf))); - return (-1); + log_err("plugin_thread_create() failed: %s", STRERRNO); + return -1; } - return (0); + return 0; } /* int email_init */ static void type_list_free(type_list_t *t) { @@ -611,11 +594,11 @@ static int email_shutdown(void) { type_list_free(&list_check); type_list_free(&list_check_copy); - unlink((NULL == sock_file) ? SOCK_PATH : sock_file); + unlink((sock_file == NULL) ? SOCK_PATH : sock_file); sfree(sock_file); sfree(sock_group); - return (0); + return 0; } /* static void email_shutdown (void) */ static void email_submit(const char *type, const char *type_instance, @@ -638,14 +621,14 @@ static void email_submit(const char *type, const char *type_instance, static void copy_type_list(type_list_t *l1, type_list_t *l2) { type_t *last = NULL; - for (type_t *ptr1 = l1->head, *ptr2 = l2->head; NULL != ptr1; + for (type_t *ptr1 = l1->head, *ptr2 = l2->head; ptr1 != NULL; ptr1 = ptr1->next, last = ptr2, ptr2 = ptr2->next) { - if (NULL == ptr2) { + if (ptr2 == NULL) { ptr2 = smalloc(sizeof(*ptr2)); ptr2->name = NULL; ptr2->next = NULL; - if (NULL == last) { + if (last == NULL) { l2->head = ptr2; } else { last->next = ptr2; @@ -654,7 +637,7 @@ static void copy_type_list(type_list_t *l1, type_list_t *l2) { l2->tail = ptr2; } - if (NULL == ptr2->name) { + if (ptr2->name == NULL) { ptr2->name = sstrdup(ptr1->name); } @@ -669,7 +652,7 @@ static int email_read(void) { int score_count_old; if (disabled) - return (-1); + return -1; /* email count */ pthread_mutex_lock(&count_mutex); @@ -678,7 +661,7 @@ static int email_read(void) { pthread_mutex_unlock(&count_mutex); - for (type_t *ptr = list_count_copy.head; NULL != ptr; ptr = ptr->next) { + for (type_t *ptr = list_count_copy.head; ptr != NULL; ptr = ptr->next) { email_submit("email_count", ptr->name, ptr->value); } @@ -689,7 +672,7 @@ static int email_read(void) { pthread_mutex_unlock(&size_mutex); - for (type_t *ptr = list_size_copy.head; NULL != ptr; ptr = ptr->next) { + for (type_t *ptr = list_size_copy.head; ptr != NULL; ptr = ptr->next) { email_submit("email_size", ptr->name, ptr->value); } @@ -713,10 +696,10 @@ static int email_read(void) { pthread_mutex_unlock(&check_mutex); - for (type_t *ptr = list_check_copy.head; NULL != ptr; ptr = ptr->next) + for (type_t *ptr = list_check_copy.head; ptr != NULL; ptr = ptr->next) email_submit("spam_check", ptr->name, ptr->value); - return (0); + return 0; } /* int email_read */ void module_register(void) { @@ -725,5 +708,3 @@ void module_register(void) { plugin_register_read("email", email_read); plugin_register_shutdown("email", email_shutdown); } /* void module_register */ - -/* vim: set sw=4 ts=4 tw=78 noexpandtab : */