OpenSSH 2.4.0 patch call..
Markus Friedl
markus.friedl at informatik.uni-erlangen.de
Sat Dec 30 23:35:03 EST 2000
On Sat, Dec 30, 2000 at 12:13:24PM +0900, Chiaki Ishikawa wrote:
> X-PMC-CI-e-mail-id: 14371
> >>>>> "|" == Markus Friedl <markus.friedl at informatik.uni-erlangen.de> writes:
>
> |> On Thu, Dec 28, 2000 at 04:09:07AM +0100, Kevin Steves wrote:
> >> On Wed, 27 Dec 2000 mouring at etoh.eviladmin.org wrote:
> >> : Is there any undisputed patches still out not applied to the current
> >> : portable CVS tree?
> >>
> >> not a patch per se but proto 2 is broken on hp-ux due to the issue with
> >> the SIGCHLD handler being reinstalled before a wait().
>
> |> i think we should switch to sigaction since the sematics for
> |> signal() are different on every system.
>
> |> e.g. replace signal() with mysignal():
>
> Please add handling for
> SA_INTERRUPT and SA_RESTART and many will be greatful
> for that.
why? what is the rationale?
even stevens APUE has 2 versions. on with SA_RESTART and
one without.
> The mods suggested below are taken from
> Stevens Unix Network Programming (but can be found
> Advanced Unix Programming by the same author.)
> By the way, some people find the one-letter argument names
> are difficult to follow.
>
> /* include suitable headers here, ... */
> /* for example, sys/signalh on sunos4 */
> #include ...
>
> typedef void (*mysig_t)(int);
>
> mysig_t
> mysignal(int s, mysig_t a)
> {
> struct sigaction sa, osa;
>
> memset(&sa, 0, sizeof sa);
> sigemptyset(&sa.sa_mask);
> sa.sa_flags = 0;
> sa.sa_handler = a;
>
> /* change begins */
> if(s == SIGALRM) {
> #ifdef SA_INTERRUPT
> sa.sa_flags |= SA_INTERRUPT; /* sunos 4.x */
> #endif
> } else {
> #ifdef SA_RESTART
> sa.sa_flags |= SA_RESTART; /* svr4, 4.4bsd */
> #endif
> }
> /* change ends */
> /* also note the return value is SIG_ERR
> in Steven's book */
>
> if (sigaction(s, &sa, &osa) < 0)
> return (mysig_t)SIG_ERR;
> return (osa.sa_handler);
> }
>
> |>mysignal can fallback to signal if sigaction is not available.
> |>with mysignal() we don't need to reinstall signalhandlers.
> |>
> |>comments?
>
> -markus
>
>
>
> --
> Ishikawa, Chiaki ishikawa at personal-media.co.jp.NoSpam or
> (family name, given name) Chiaki.Ishikawa at personal-media.co.jp.NoSpam
> Personal Media Corp. ** Remove .NoSpam at the end before use **
> Shinagawa, Tokyo, Japan 142-0051
>
>
More information about the openssh-unix-dev
mailing list