[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