summaryrefslogtreecommitdiff
path: root/cleanup.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2006-02-02 02:39:25 +0000
committerWayne Davison <wayned@samba.org>2006-02-02 02:39:25 +0000
commit2b28968dfb36792ccdbe3b7b9be800b97d3f13f6 (patch)
tree8d5b215b0736ec18a4c9a7733683143333c4dc52 /cleanup.c
parent90b13cf60687c4d2e18964423cd44abab6500167 (diff)
downloadrsync-2b28968dfb36792ccdbe3b7b9be800b97d3f13f6.tar.gz
rsync-2b28968dfb36792ccdbe3b7b9be800b97d3f13f6.tar.bz2
rsync-2b28968dfb36792ccdbe3b7b9be800b97d3f13f6.zip
Call SIGACTION() instead of signal().
Diffstat (limited to 'cleanup.c')
-rw-r--r--cleanup.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/cleanup.c b/cleanup.c
index 0163dd25..08609e16 100644
--- a/cleanup.c
+++ b/cleanup.c
@@ -26,6 +26,10 @@ extern int keep_partial;
extern int log_got_error;
extern char *partial_dir;
+#if defined HAVE_SIGACTION && defined HAVE_SIGPROCMASK
+static struct sigaction sigact;
+#endif
+
/**
* Close all open sockets and files, allowing a (somewhat) graceful
* shutdown() of socket connections. This eliminates the abortive
@@ -94,8 +98,8 @@ void _exit_cleanup(int code, const char *file, int line)
}
inside_cleanup++;
- signal(SIGUSR1, SIG_IGN);
- signal(SIGUSR2, SIG_IGN);
+ SIGACTION(SIGUSR1, SIG_IGN);
+ SIGACTION(SIGUSR2, SIG_IGN);
if (verbose > 3) {
rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): entered\n",