[dovecot-cvs] dovecot/src/lib lib-signals.c, 1.6, 1.7 lib-signals.h, 1.2, 1.3

cras at dovecot.org cras at dovecot.org
Fri Nov 12 16:35:41 EET 2004


Update of /var/lib/cvs/dovecot/src/lib
In directory talvi:/tmp/cvs-serv15848/lib

Modified Files:
	lib-signals.c lib-signals.h 
Log Message:
Add signal counters to USR1 and USR2 signals too.



Index: lib-signals.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/lib-signals.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- lib-signals.c	6 Nov 2004 20:22:59 -0000	1.6
+++ lib-signals.c	12 Nov 2004 14:35:39 -0000	1.7
@@ -8,17 +8,28 @@
 
 int lib_signal_kill;
 unsigned int lib_signal_hup_count;
+unsigned int lib_signal_usr1_count, lib_signal_usr2_count;
 
 static void (*quit_handler) (int);
 
-static void sig_hup(int signo __attr_unused__)
+static void sig_counter(int signo)
 {
 #ifndef HAVE_SIGACTION
 	/* some systems may have changed the signal handler to default one */
-        signal(SIGHUP, sig_hup);
+        signal(signo, sig_counter);
 #endif
 
-        lib_signal_hup_count++;
+	switch (signo) {
+	case SIGHUP:
+		lib_signal_hup_count++;
+		break;
+	case SIGUSR1:
+		lib_signal_usr1_count++;
+		break;
+	case SIGUSR2:
+		lib_signal_usr2_count++;
+		break;
+	}
 }
 
 static void sig_quit(int signo)
@@ -49,13 +60,23 @@
 	if (sigemptyset(&act.sa_mask) < 0)
 		i_fatal("sigemptyset(): %m");
 	act.sa_flags = 0;
-	act.sa_handler = sig_hup;
+	act.sa_handler = sig_counter;
 	while (sigaction(SIGHUP, &act, NULL) < 0) {
 		if (errno != EINTR)
 			i_fatal("sigaction(): %m");
 	}
+	while (sigaction(SIGUSR1, &act, NULL) < 0) {
+		if (errno != EINTR)
+			i_fatal("sigaction(): %m");
+	}
+	while (sigaction(SIGUSR2, &act, NULL) < 0) {
+		if (errno != EINTR)
+			i_fatal("sigaction(): %m");
+	}
 #else
-        signal(SIGHUP, sig_hup);
+        signal(SIGHUP, sig_counter);
+        signal(SIGUSR1, sig_counter);
+        signal(SIGUSR2, sig_counter);
 #endif
 
 	/* these signals should be called only once, so it's safe to use

Index: lib-signals.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib/lib-signals.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- lib-signals.h	6 Nov 2004 20:23:00 -0000	1.2
+++ lib-signals.h	12 Nov 2004 14:35:39 -0000	1.3
@@ -3,6 +3,7 @@
 
 extern int lib_signal_kill;
 extern unsigned int lib_signal_hup_count;
+extern unsigned int lib_signal_usr1_count, lib_signal_usr2_count;
 
 void lib_init_signals(void (*sig_quit_handler) (int));
 



More information about the dovecot-cvs mailing list