summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);