diff --git a/server/include/utils.h b/server/include/utils.h index 5763086e4..95458e9f1 100644 --- a/server/include/utils.h +++ b/server/include/utils.h @@ -12,6 +12,7 @@ #include #include #include +#include #ifdef __GNUC__ #define EXPECT(x, v) __builtin_expect(x, v) @@ -126,7 +127,7 @@ int system2(const char* cmd, ...); } while (0) /** Print error and strerror(errno). */ -#define perror(msg, ...) do { \ +#define serror(msg, ...) do { \ print(ERROR, msg ": %s", ##__VA_ARGS__, \ strerror(errno)); \ exit(EXIT_FAILURE); \ diff --git a/server/src/cfg.c b/server/src/cfg.c index de173b4a4..5556dc51c 100644 --- a/server/src/cfg.c +++ b/server/src/cfg.c @@ -205,7 +205,7 @@ int config_parse_socket(config_setting_t *cfg, struct node *n) struct socket *s = (struct socket *) malloc(sizeof(struct socket)); if (!s) - perror("Failed to allocate memory"); + serror("Failed to allocate memory"); memset(s, 0, sizeof(struct socket)); diff --git a/server/src/if.c b/server/src/if.c index aaba33ea7..a1e5d7bcc 100644 --- a/server/src/if.c +++ b/server/src/if.c @@ -59,7 +59,7 @@ int if_start(struct interface *i, int affinity) /* Set fwmark for outgoing packets */ if (setsockopt(s->sd, SOL_SOCKET, SO_MARK, &s->mark, sizeof(s->mark))) - perror("Failed to set fwmark for outgoing packets"); + serror("Failed to set fwmark for outgoing packets"); else debug(4, "Set fwmark for socket->sd = %u to %u", s->sd, s->mark); diff --git a/server/src/path.c b/server/src/path.c index e5ee226eb..520b9b2c7 100644 --- a/server/src/path.c +++ b/server/src/path.c @@ -43,13 +43,13 @@ static void * path_send(void *arg) sigemptyset(&set); sigaddset(&set, SIGALRM); if(pthread_sigmask(SIG_BLOCK, &set, NULL)) - perror("Set signal mask"); + serror("Set signal mask"); if (timer_create(CLOCK_REALTIME, &sev, &tmr)) - perror("Failed to create timer"); + serror("Failed to create timer"); if (timer_settime(tmr, 0, &its, NULL)) - perror("Failed to start timer"); + serror("Failed to start timer"); while (1) { sigwait(&set, &sig); /* blocking wait for next timer tick */ diff --git a/server/src/server.c b/server/src/server.c index fb9d77485..28d6985d2 100644 --- a/server/src/server.c +++ b/server/src/server.c @@ -70,7 +70,7 @@ void realtime_init() if (settings.priority) { struct sched_param param = { .sched_priority = settings.priority }; if (sched_setscheduler(0, SCHED_FIFO, ¶m)) - perror("Failed to set realtime priority"); + serror("Failed to set realtime priority"); else debug(3, "Set task priority to %u", settings.priority); } @@ -79,7 +79,7 @@ void realtime_init() if (settings.affinity) { cpu_set_t cset = to_cpu_set(settings.affinity); if (sched_setaffinity(0, sizeof(cset), &cset)) - perror("Failed to set CPU affinity to '%#x'", settings.affinity); + serror("Failed to set CPU affinity to '%#x'", settings.affinity); else debug(3, "Set affinity to %#x", settings.affinity); } diff --git a/server/src/socket.c b/server/src/socket.c index 96dc7acab..770d91ca0 100644 --- a/server/src/socket.c +++ b/server/src/socket.c @@ -57,11 +57,11 @@ int socket_open(struct node *n) } if (s->sd < 0) - perror("Failed to create socket"); + serror("Failed to create socket"); /* Bind socket for receiving */ if (bind(s->sd, (struct sockaddr *) &s->local, sizeof(s->local))) - perror("Failed to bind to socket"); + serror("Failed to bind socket"); /* Determine outgoing interface */ int index = if_getegress((struct sockaddr *) &s->remote); @@ -84,7 +84,7 @@ int socket_open(struct node *n) case IP: prio = IPTOS_LOWDELAY; if (setsockopt(s->sd, IPPROTO_IP, IP_TOS, &prio, sizeof(prio))) - perror("Failed to set type of service (QoS)"); + serror("Failed to set type of service (QoS)"); else debug(4, "Set QoS/TOS IP option for node '%s' to %#x", n->name, prio); break; @@ -92,7 +92,7 @@ int socket_open(struct node *n) default: prio = SOCKET_PRIO; if (setsockopt(s->sd, SOL_SOCKET, SO_PRIORITY, &prio, sizeof(prio))) - perror("Failed to set socket priority"); + serror("Failed to set socket priority"); else debug(4, "Set socket priority for node '%s' to %u", n->name, prio); break; @@ -115,8 +115,8 @@ int socket_read(struct node* n, struct msg *m) if (errno == EINTR) return -EINTR; - perror("Failed recv"); } + serror("Failed recv"); /* Convert headers to host byte order */ m->sequence = ntohs(m->sequence); @@ -139,7 +139,7 @@ int socket_write(struct node* n, struct msg *m) if (sendto(n->socket->sd, m, MSG_LEN(m->length), 0, (struct sockaddr *) &n->socket->remote, sizeof(struct sockaddr_in)) < 0) - perror("Failed sendto"); + serror("Failed sendto"); debug(10, "Message sent to node '%s': version=%u, type=%u, endian=%u, length=%u, sequence=%u", n->name, m->version, m->type, m->endian, m->length, ntohs(m->sequence)); @@ -167,7 +167,7 @@ int socket_print_addr(char *buf, int len, struct sockaddr *sa) } default: - error("Unsupported address family"); + error("Unsupported address family: %u", sa->sa_family); } return 0; diff --git a/server/src/utils.c b/server/src/utils.c index 0bbf3ff25..6f0b6059c 100644 --- a/server/src/utils.c +++ b/server/src/utils.c @@ -163,7 +163,7 @@ int system2(const char *cmd, ...) FILE *f = popen(buf, "r"); if (f == NULL) - perror("Failed to execute: '%s'", cmd); + serror("Failed to execute: '%s'", cmd); while (!feof(f) && fgets(buf, sizeof(buf), f) != NULL) { INDENT strtok(buf, "\n"); /* strip trailing newline */