restore_sigalarm

Gbp-Pq: Name restore_sigalarm
This commit is contained in:
Marco d'Itri 2022-05-14 02:57:49 +08:00 committed by openKylinBot
parent abb992e9a6
commit 7ed6fd9277
1 changed files with 12 additions and 1 deletions

View File

@ -92,6 +92,8 @@ char *dest;
char *cp;
char *result = unknown;
FILE *fp;
unsigned saved_timeout;
struct sigaction nact, oact;
#ifdef INET6
/* address family must be the same */
@ -134,7 +136,12 @@ char *dest;
*/
if (setjmp(timebuf) == 0) {
signal(SIGALRM, timeout);
/* Save SIGALRM timer and handler. Sudheer Abdul-Salam, SUN. */
saved_timeout = alarm(0);
nact.sa_handler = timeout;
nact.sa_flags = 0;
(void) sigemptyset(&nact.sa_mask);
(void) sigaction(SIGALRM, &nact, &oact);
alarm(rfc931_timeout);
/*
@ -223,6 +230,10 @@ char *dest;
}
alarm(0);
}
/* Restore SIGALRM timer and handler. Sudheer Abdul-Salam, SUN. */
(void) sigaction(SIGALRM, &oact, NULL);
if (saved_timeout > 0)
alarm(saved_timeout);
fclose(fp);
}
STRN_CPY(dest, result, STRING_LENGTH);