summaryrefslogtreecommitdiff
path: root/resolv
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-09-04 14:08:24 +0000
committerUlrich Drepper <drepper@redhat.com>2003-09-04 14:08:24 +0000
commitce42435cab474eff0b7a8470d59bb484858a0863 (patch)
treee01965b8905deb70308aba0829853886ad43faa9 /resolv
parenta452e4e6294ffb6d7362215cb0b10896e8a7631f (diff)
downloadglibc-ce42435cab474eff0b7a8470d59bb484858a0863.tar.gz
Update.
* 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.
Diffstat (limited to 'resolv')
-rw-r--r--resolv/res_init.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/resolv/res_init.c b/resolv/res_init.c
index 61820e6e0b..e563dcfb03 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -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;