OpenSSH 2.5.0p1 vs. SA_RESTART

William L. Jones jones at hpc.utexas.edu
Sun Feb 18 13:22:33 EST 2001


Add unicos to the list of system that don't have SA_RESTART.

At 01:05 PM 2/18/01 +1100, Damien Miller wrote:
>On Sat, 17 Feb 2001, Todd C. Miller wrote:
>
> > Not all OSes have SA_RESTART (for instance, SunOS does not).
> > Also, for the non-SA_RESTART case in scp.c sa.sa_flags
> > was not being initialized (noted by dworkin at village.org).
>
>Can you give this a try? It uses SA_INTERRUPT, my copy of Stevens
>tells me this does the same thing on SunOS.
>
>Index: misc.c
>===================================================================
>RCS file: /var/cvs/openssh/misc.c,v
>retrieving revision 1.9
>diff -u -r1.9 misc.c
>--- misc.c      2001/02/17 17:10:16     1.9
>+++ misc.c      2001/02/18 02:03:36
>@@ -112,6 +112,10 @@
>                 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;
>Index: scp.c
>===================================================================
>RCS file: /var/cvs/openssh/scp.c,v
>retrieving revision 1.54
>diff -u -r1.54 scp.c
>--- scp.c       2001/02/11 14:19:40     1.54
>+++ scp.c       2001/02/18 02:03:36
>@@ -1224,8 +1224,12 @@
>                 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);
>
>
>-d
>
>--
>| Damien Miller <djm at mindrot.org> \ ``E-mail attachments are the poor man's
>| http://www.mindrot.org          /   distributed filesystem'' - Dan Geer






More information about the openssh-unix-dev mailing list