static struct keyd_stats *stats;
-void daemonize(void)
+static void daemonize(void)
{
pid_t pid;
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;
return;
}
-int sock_init(const char *sockname)
+static int sock_init(const char *sockname)
{
struct sockaddr_un sock;
int fd = -1;
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;
ssize_t count = 0;
int ret = 0;
uint64_t keyid = 0;
- uint8_t fp[MAX_FINGERPRINT_LEN];
char *search = NULL;
struct openpgp_publickey *key = NULL;
struct openpgp_packet_list *packets = NULL;
struct openpgp_packet_list *list_end = NULL;
struct buffer_ctx storebuf;
struct skshash hash;
+ struct openpgp_fingerprint fingerprint;
/*
* Get the command from the client.
if (bytes > MAX_FINGERPRINT_LEN) {
ret = 1;
} else {
- read(fd, fp, bytes);
+ fingerprint.length = bytes;
+ read(fd, fingerprint.fp, bytes);
}
storebuf.offset = 0;
if (ret == 0) {
"Fetching by fingerprint"
", result: %d",
dbctx->fetch_key_fp(dbctx,
- fp, bytes,
+ &fingerprint,
&key, false));
if (key != NULL) {
storebuf.size = 8192;
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;