summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2001-02-18 13:04:23 +1100
committerDamien Miller <djm@mindrot.org>2001-02-18 13:04:23 +1100
commit0318e2e0fb0be94b61f618e92ddd5101d2f06d1a (patch)
tree6d56e9539e1cbba400d6af6cf6cce5823d2f5318
parent8609332558d7130f0e4a71eba8bcad6fdebddcd5 (diff)
- (djm) Use SA_INTERRUPT along SA_RESTART if present (equivalent for
SunOS)
-rw-r--r--ChangeLog4
-rw-r--r--misc.c4
-rw-r--r--scp.c6
3 files changed, 12 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 3196199c..43cd0833 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,6 +15,8 @@
- (djm) Swapped tests for no_libsocket and no_libnsl in configure.in.
Patch from Marek Michalkiewicz <marekm@amelek.gda.pl>
- (djm) Doc fixes from Pekka Savola <pekkas@netcore.fi>
+ - (djm) Use SA_INTERRUPT along SA_RESTART if present (equivalent for
+ SunOS)
20010217
- (bal) OpenBSD Sync:
@@ -4022,4 +4024,4 @@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
-$Id: ChangeLog,v 1.790 2001/02/18 01:58:24 djm Exp $
+$Id: ChangeLog,v 1.791 2001/02/18 02:05:52 djm Exp $
diff --git a/misc.c b/misc.c
index 47de8735..4ec5d55f 100644
--- a/misc.c
+++ b/misc.c
@@ -112,6 +112,10 @@ mysignal(int sig, mysig_t act)
if (sig == SIGCHLD)
sa.sa_flags |= SA_RESTART;
#endif
+#ifdef SA_INTERRUPT
+ if (sig == SIGCHLD)
+ sa.sa_flags |= SA_INTERRUPT;
+#endif
sa.sa_handler = act;
if (sigaction(sig, &sa, NULL) == -1)
return (mysig_t) -1;
diff --git a/scp.c b/scp.c
index 268643b5..834deb69 100644
--- a/scp.c
+++ b/scp.c
@@ -1224,8 +1224,12 @@ progressmeter(int flag)
struct sigaction sa;
sa.sa_handler = updateprogressmeter;
sigemptyset((sigset_t *)&sa.sa_mask);
+ sa.sa_flags = 0;
#ifdef SA_RESTART
- sa.sa_flags = SA_RESTART;
+ sa.sa_flags |= SA_RESTART;
+#endif
+#ifdef SA_INTERRUPT
+ sa.sa_flags |= SA_INTERRUPT;
#endif
sigaction(SIGALRM, &sa, NULL);
alarmtimer(1);