respondd: nicer error messages

This commit is contained in:
Matthias Schiffer 2016-12-23 00:10:07 +01:00
parent d94f0f5956
commit 5c25ed888f
1 changed files with 13 additions and 10 deletions

View File

@ -41,6 +41,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <syslog.h>
#include <time.h> #include <time.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <errno.h>
@ -118,17 +119,17 @@ static bool join_mcast(const int sock, const struct in6_addr addr, unsigned int
mreq.ipv6mr_multiaddr = addr; mreq.ipv6mr_multiaddr = addr;
mreq.ipv6mr_interface = ifindex; mreq.ipv6mr_interface = ifindex;
if (mreq.ipv6mr_interface == 0) if (mreq.ipv6mr_interface == 0) {
goto error; fprintf(stderr, "join_mcast: no valid interface given\n");
return false;
}
if (setsockopt(sock, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1) if (setsockopt(sock, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == -1) {
goto error; perror("setsockopt: unable to join multicast group");
return false;
}
return true; return true;
error:
perror(NULL);
return false;
} }
@ -296,7 +297,7 @@ static void load_providers(const char *path) {
int cwdfd = open(".", O_DIRECTORY); int cwdfd = open(".", O_DIRECTORY);
if (chdir(path)) { if (chdir(path)) {
perror("chdir"); syslog(LOG_INFO, "unable to read providers from '%s', ignoring", path);
goto out; goto out;
} }
@ -482,7 +483,7 @@ static void accept_request(struct request_schedule *schedule, int sock,
t.tv_usec = (((uint64_t) timeout) % 1000) * 1000; t.tv_usec = (((uint64_t) timeout) % 1000) * 1000;
if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &t, sizeof(t)) < 0) if (setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &t, sizeof(t)) < 0)
perror("setsockopt failed\n"); perror("setsockopt failed");
struct iovec iv = { struct iovec iv = {
.iov_base = input, .iov_base = input,
@ -602,6 +603,8 @@ int main(int argc, char **argv) {
unsigned int last_ifindex = 0; unsigned int last_ifindex = 0;
struct interface_delay_info *if_delay_info_list = NULL; struct interface_delay_info *if_delay_info_list = NULL;
openlog("respondd", LOG_PID, LOG_DAEMON);
int c; int c;
while ((c = getopt(argc, argv, "p:g:t:i:d:h")) != -1) { while ((c = getopt(argc, argv, "p:g:t:i:d:h")) != -1) {
switch (c) { switch (c) {