1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00
* sysdeps/generic/utmp_file.c: Use not-cancelable syscalls all
	over the place.  It would be allowed to have these fucntions as
	cancellation points but the cleanup would be ugly and a lot of
	work.

	* sysdeps/generic/not-cancel.h (fcntl_not_cancel): Define.
	* sysdeps/unix/sysv/linux/not-cancel.h (fcntl_not_cancel): Define.

	* include/fcntl.h (__fcntl_nocancel): Declare.
	* sysdeps/unix/sysv/linux/fcntl.c: New file.
	* sysdeps/unix/sysv/linux/i386/fcntl.c (__libc_fcntl): Only enable
	cancellation if absolutely needed.
	(__fcntl_nocancel): Define.

	* posix/unistd.h (gethostid): Remove __THROW.  Clarify comment.
	* sysdeps/unix/sysv/linux/Makefile (CFLAGS-gethostid.c): Add
	-fexceptions.
	* sysdeps/unix/sysv/linux/gethostid.c (gethostid): Use
	extend_alloca.

	* resolv/res_init.c (__res_nclose): Use close_not_cancel_no_status
	instead of __close.
This commit is contained in:
Ulrich Drepper
2003-09-04 14:08:24 +00:00
parent a452e4e629
commit ce42435cab
12 changed files with 169 additions and 67 deletions

View File

@ -86,6 +86,8 @@ static const char rcsid[] = "$BINDId: res_init.c,v 8.16 2000/05/09 07:10:12 vixi
#include <string.h>
#include <unistd.h>
#include <not-cancel.h>
/* Options. Should all be left alone. */
#define RESOLVSORT
#define RFC1535
@ -541,7 +543,7 @@ res_nclose(res_state statp) {
int ns;
if (statp->_vcsock >= 0) {
(void) __close(statp->_vcsock);
close_not_cancel_no_status(statp->_vcsock);
statp->_vcsock = -1;
statp->_flags &= ~(RES_F_VC | RES_F_CONN);
}
@ -552,7 +554,7 @@ res_nclose(res_state statp) {
#endif
if (statp->_u._ext.nsaddrs[ns]
&& statp->_u._ext.nssocks[ns] != -1) {
(void) __close(statp->_u._ext.nssocks[ns]);
close_not_cancel_no_status(statp->_u._ext.nssocks[ns]);
statp->_u._ext.nssocks[ns] = -1;
}
statp->_u._ext.nsinit = 0;