]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
login: Allow command line to override login socket path.
authorTimo Sirainen <tss@iki.fi>
Fri, 14 May 2010 08:33:19 +0000 (10:33 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 14 May 2010 08:33:19 +0000 (10:33 +0200)
--HG--
branch : HEAD

src/login-common/main.c

index a5dbd9b94e76fe919c38718e9675ebdf919f0a37..9d0046d883f3189fd16651fa814e741169925d79 100644 (file)
@@ -20,6 +20,7 @@
 #include <unistd.h>
 #include <syslog.h>
 
+#define DEFAULT_LOGIN_SOCKET "login"
 #define AUTH_CLIENT_IDLE_TIMEOUT_MSECS (1000*60)
 
 struct login_access_lookup {
@@ -283,7 +284,7 @@ static void main_preinit(bool allow_core_dumps)
                restrict_access_allow_coredumps(TRUE);
 }
 
-static void main_init(void)
+static void main_init(const char *login_socket)
 {
        /* make sure we can't fork() */
        restrict_process_size((unsigned int)-1, 1);
@@ -297,7 +298,8 @@ static void main_init(void)
                                                   client_destroy_oldest);
        master_service_set_die_callback(master_service, login_die);
 
-       auth_client = auth_client_init("login", (unsigned int)getpid(), FALSE);
+       auth_client = auth_client_init(login_socket, (unsigned int)getpid(),
+                                      FALSE);
         auth_client_set_connect_notify(auth_client, auth_connect_notify, NULL);
        master_auth = master_auth_init(master_service, login_binary.protocol);
 
@@ -328,6 +330,7 @@ int main(int argc, char *argv[])
                MASTER_SERVICE_FLAG_TRACK_LOGIN_STATE;
        pool_t set_pool;
        bool allow_core_dumps = FALSE;
+       const char *login_socket = DEFAULT_LOGIN_SOCKET;
        int c;
 
        master_service = master_service_init(login_binary.process_name,
@@ -347,6 +350,8 @@ int main(int argc, char *argv[])
                        return FATAL_DEFAULT;
                }
        }
+       if (argv[optind] != NULL)
+               login_socket = argv[optind];
 
        login_process_preinit();
 
@@ -359,7 +364,7 @@ int main(int argc, char *argv[])
           this. so call it first. */
        master_service_init_finish(master_service);
        main_preinit(allow_core_dumps);
-       main_init();
+       main_init(login_socket);
 
        master_service_run(master_service, client_connected);
        main_deinit();