]> the.earth.li Git - onak.git/commitdiff
Add config option to specify keyd socket directory
authorJonathan McDowell <noodles@earth.li>
Fri, 21 Aug 2015 10:44:22 +0000 (12:44 +0200)
committerJonathan McDowell <noodles@earth.li>
Fri, 21 Aug 2015 10:44:22 +0000 (12:44 +0200)
keyd was stashing its Unix domain socket in the DB directory, which
is contrary to convention. Add a sock_dir config option and default it
to ${prefix}/var/run in the sample config file.

debian/onak.socket
keyd.c
keydb_keyd.c
keydctl.c
onak-conf.c
onak-conf.h
onak.conf.in

index 7e317d502adf000ce0ff26389688b823883a7266..97a4df8934fdd59f50325ad84ce9cb27edcbba20 100644 (file)
@@ -1,5 +1,5 @@
 [Socket]
-ListenStream=/var/lib/onak/keyd.sock
+ListenStream=/var/run/keyd.sock
 SocketUser=onak
 SocketMode=0660
 
diff --git a/keyd.c b/keyd.c
index 6a171d43b3f575e8b92b17c2f96c6b33f0b8ff97..b73ff28ffec05758f774d3f235335b3a33c3381c 100644 (file)
--- a/keyd.c
+++ b/keyd.c
@@ -653,7 +653,7 @@ int main(int argc, char *argv[])
        }
        stats->started = time(NULL);
 
-       snprintf(sockname, 1023, "%s/%s", config.db_dir, KEYD_SOCKET);
+       snprintf(sockname, 1023, "%s/%s", config.sock_dir, KEYD_SOCKET);
        fd = sock_init(sockname);
 
        if (fd != -1) {
index fec6ebbc6afd3dc8751eb97ea4ea158d113db726..33d2c21b4d15eac23e918073f2ca7399c037607e 100644 (file)
@@ -527,7 +527,7 @@ struct onak_dbctx *keydb_keyd_init(bool readonly)
 
        sock.sun_family = AF_UNIX;
        snprintf(sock.sun_path, sizeof(sock.sun_path) - 1, "%s/%s",
-                       config.db_dir,
+                       config.sock_dir,
                        KEYD_SOCKET);
        if (connect(keyd_fd, (struct sockaddr *) &sock, sizeof(sock)) < 0) {
                logthing(LOGTHING_CRITICAL,
index ef942dbd92d78635d1b31b5f6a78ccd021fc7ddf..1aa5d59e4ccfe09dbe2bbc36baac9315bf54b163 100644 (file)
--- a/keydctl.c
+++ b/keydctl.c
@@ -99,7 +99,7 @@ static void keyd_connect(void)
 
        sock.sun_family = AF_UNIX;
        snprintf(sock.sun_path, sizeof(sock.sun_path) - 1, "%s/%s",
-                       config.db_dir,
+                       config.sock_dir,
                        KEYD_SOCKET);
        if (connect(keyd_fd, (struct sockaddr *) &sock, sizeof(sock)) < 0) {
                if (verbose >= 0) {
index ccad3c5a78f800dde720e8562456fab44d119a19..02ccf2db8f4aa34e85e29217a196b397193892e6 100644 (file)
@@ -45,6 +45,7 @@ struct onak_config config = {
        NULL,                   /* logfile */
 
        false,                  /* use_keyd */
+       ".",                    /* sock_dir */
 
        /*
         * Options for directory backends.
index 34dcff2edd89c45aa3c63a4bb01bf23b2e3599a1..52439abc1979692e2ccea40bac554aeddd835d6f 100644 (file)
@@ -48,6 +48,8 @@ struct onak_config {
 
        /** Set if we're using keyd as the backend. */
        bool use_keyd;
+       /** The path to the directory the keyd socket lives in. */
+       char *sock_dir;
 
        /*
         * Options for any database backend that needs a directory, be it the
index 17742112ee68b06dfb0208c9812b9f2702b97a79..9f586fcc1bb106f32ba06580cf35320abd03c591 100644 (file)
@@ -34,6 +34,7 @@ maintainer_email PGP Key Server Administrator <pgp-keyserver-admin@the.earth.li>
 mail_intro_file /community/pgp-keyserver/share/mail_intro
 help_dir /community/pgp-keyserver/share
 mail_dir @STATEDIR@/spool/onak
+sock_dir @STATEDIR@/run
 
 ### If you change this, make sure to put a corresponding help file in
 ### the help_dir named above