diff --git a/src/modules/files/efuns.c b/src/modules/files/efuns.c index 664bcfe76999b2b82e58aac7af1efe8c0e79454e..058ec9e270ced3682e97bc62b0b5c2d731fa34ea 100644 --- a/src/modules/files/efuns.c +++ b/src/modules/files/efuns.c @@ -162,7 +162,7 @@ void f_mkdir(INT32 args) push_int(i); } -#undef HAVE_REDDIR_R +#undef HAVE_READDIR_R #if defined(HAVE_SOLARIS_READDIR_R) || defined(HAVE_SOLARIS_HPUX_R) || \ defined(HAVE_POSIX_R) #define HAVE_READDIR_R @@ -349,6 +349,7 @@ void f_getcwd(INT32 args) void f_fork(INT32 args) { + do_set_close_on_exec(); pop_n_elems(args); #if defined(HAVE_FORK1) && defined(_REENTRANT) push_int(fork1()); @@ -438,9 +439,11 @@ void f_exece(INT32 args) env=environ; } - set_close_on_exec(0,0); - set_close_on_exec(1,0); - set_close_on_exec(2,0); + my_set_close_on_exec(0,0); + my_set_close_on_exec(1,0); + my_set_close_on_exec(2,0); + + do_set_close_on_exec(); execve(argv[0],argv,env); diff --git a/src/modules/files/socket.c b/src/modules/files/socket.c index 3ebf4a9b1a79b6ebea9b822768d69f97ca7ec73a..1d85a1faf66fc59febf15d580aeeca415f4683ca 100644 --- a/src/modules/files/socket.c +++ b/src/modules/files/socket.c @@ -191,7 +191,7 @@ static void port_bind(INT32 args) return; } - set_close_on_exec(fd,1); + my_set_close_on_exec(fd,1); MEMSET((char *)&addr,0,sizeof(struct sockaddr_in)); @@ -298,10 +298,7 @@ static void port_accept(INT32 args) return; } - tmp=1; - setsockopt(fd,SOL_SOCKET, SO_KEEPALIVE, (char *)&tmp, sizeof(tmp)); - - set_close_on_exec(fd,1); + my_set_close_on_exec(fd,1); o=file_make_object_from_fd(fd,FILE_READ | FILE_WRITE); pop_n_elems(args);