diff src/master/login-process.c @ 635:90a65c017bf0 HEAD

SIGHUP reloads now settings. Logged in clients are left untouched, but clients still logging in are killed.
author Timo Sirainen <tss@iki.fi>
date Wed, 20 Nov 2002 21:20:23 +0200
parents 0d852af6842e
children 36ac2fd352ff
line wrap: on
line diff
--- a/src/master/login-process.c	Wed Nov 20 20:33:40 2002 +0200
+++ b/src/master/login-process.c	Wed Nov 20 21:20:23 2002 +0200
@@ -358,6 +358,20 @@
 	hash_foreach(processes, login_hash_cleanup, NULL);
 }
 
+static void login_hash_destroy(void *key __attr_unused__, void *value,
+			       void *context __attr_unused__)
+{
+	login_process_destroy(value);
+}
+
+void login_processes_destroy_all(void)
+{
+	hash_foreach(processes, login_hash_destroy, NULL);
+
+	/* don't double their amount when restarting */
+	wanted_processes_count = 0;
+}
+
 static void login_processes_start_missing(void *context __attr_unused__,
 					  Timeout timeout __attr_unused__)
 {
@@ -400,16 +414,10 @@
 	to = timeout_add(1000, login_processes_start_missing, NULL);
 }
 
-static void login_hash_destroy(void *key __attr_unused__, void *value,
-			       void *context __attr_unused__)
-{
-	login_process_destroy(value);
-}
-
 void login_processes_deinit(void)
 {
 	timeout_remove(to);
 
-	hash_foreach(processes, login_hash_destroy, NULL);
+        login_processes_destroy_all();
 	hash_destroy(processes);
 }