X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/78808f320d39f8c22622feb613706325222cfd59..f5037a4a370b891e14971228c1d491184c7fe8bd:/keyd.c diff --git a/keyd.c b/keyd.c index 7b8a18f..05f9fe9 100644 --- a/keyd.c +++ b/keyd.c @@ -2,11 +2,12 @@ * keyd.c - key retrieval daemon * * Jonathan McDowell - * + * * Copyright 2004 Project Purple */ #include +#include #include #include #include @@ -311,7 +312,8 @@ int sock_do(int fd) int sock_close(int fd) { - return shutdown(fd, SHUT_RDWR); + shutdown(fd, SHUT_RDWR); + return close(fd); } int sock_accept(int fd) @@ -340,8 +342,20 @@ int main(int argc, char *argv[]) int fd = -1; fd_set rfds; char sockname[1024]; + char *configfile = NULL; + int optchar; - readconfig(NULL); + while ((optchar = getopt(argc, argv, "c:")) != -1 ) { + switch (optchar) { + case 'c': + configfile = strdup(optarg); + break; + } + } + + readconfig(configfile); + free(configfile); + configfile = NULL; initlogthing("keyd", config.logfile); catchsignals(); @@ -368,6 +382,6 @@ int main(int argc, char *argv[]) cleanuplogthing(); cleanupconfig(); - + return(EXIT_SUCCESS); }