X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=keyd.c;h=982d893c7eadaddf0a11543486c5e541797333b0;hb=f51ec034c08df2d771b9ac6d670ee106ebe46537;hp=b8b8ad37e6bf1eff136eb089807687cc51650958;hpb=5cb3cfdb9d8caa6d7a4a1979c50c46896957b934;p=onak.git diff --git a/keyd.c b/keyd.c index b8b8ad3..982d893 100644 --- a/keyd.c +++ b/keyd.c @@ -48,7 +48,7 @@ static struct keyd_stats *stats; -void daemonize(void) +static void daemonize(void) { pid_t pid; @@ -65,16 +65,40 @@ void daemonize(void) exit(EXIT_SUCCESS); } - setsid(); + if (setsid() == -1) { + logthing(LOGTHING_CRITICAL, + "Couldn't set process group leader: %d (%s)", + errno, + strerror(errno)); + exit(EXIT_FAILURE); + } - freopen("/dev/null", "r", stdin); - freopen("/dev/null", "w", stdout); - freopen("/dev/null", "w", stderr); + if (!freopen("/dev/null", "r", stdin)) { + logthing(LOGTHING_CRITICAL, + "Couldn't reopen stdin to NULL: %d (%s)", + errno, + strerror(errno)); + exit(EXIT_FAILURE); + } + if (!freopen("/dev/null", "w", stdout)) { + logthing(LOGTHING_CRITICAL, + "Couldn't reopen stdout to NULL: %d (%s)", + errno, + strerror(errno)); + exit(EXIT_FAILURE); + } + if (!freopen("/dev/null", "w", stderr)) { + logthing(LOGTHING_CRITICAL, + "Couldn't reopen stderr to NULL: %d (%s)", + errno, + strerror(errno)); + exit(EXIT_FAILURE); + } return; } -void iteratefunc(void *ctx, struct openpgp_publickey *key) +static void iteratefunc(void *ctx, struct openpgp_publickey *key) { struct openpgp_packet_list *packets = NULL; struct openpgp_packet_list *list_end = NULL; @@ -119,7 +143,7 @@ void iteratefunc(void *ctx, struct openpgp_publickey *key) return; } -int sock_init(const char *sockname) +static int sock_init(const char *sockname) { struct sockaddr_un sock; int fd = -1; @@ -148,7 +172,7 @@ int sock_init(const char *sockname) return fd; } -int sock_do(struct onak_dbctx *dbctx, int fd) +static int sock_do(struct onak_dbctx *dbctx, int fd) { uint32_t cmd = KEYD_CMD_UNKNOWN; ssize_t bytes = 0; @@ -488,13 +512,13 @@ int sock_do(struct onak_dbctx *dbctx, int fd) return(ret); } -int sock_close(int fd) +static int sock_close(int fd) { shutdown(fd, SHUT_RDWR); return close(fd); } -int sock_accept(int fd) +static int sock_accept(int fd) { struct sockaddr_un sock; socklen_t socklen;