X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=process.c;h=c14dd694d977afe51dd742c9428303890cb4869d;hp=77fe38e3127134077d8cbdbc3e6e460bcefaf942;hb=7cafb08048979850a82b43059b48b947bc2fa9bc;hpb=c72aa74324481a2ee642b1739baec10eb616cbca diff --git a/process.c b/process.c index 77fe38e..c14dd69 100644 --- a/process.c +++ b/process.c @@ -236,6 +236,16 @@ void afterfork(void) sigprocmask(SIG_SETMASK,&emptyset,NULL); } +void childpersist_closefd_hook(void *fd_vp, uint32_t newphase) +{ + int *fd_p=fd_vp; + int fd=*fd_p; + if (fd<0) return; + *fd_p=-1; + setnonblock(fd); /* in case close() might block */ + close(fd); /* discard errors - we don't care, in the child */ +} + static void signal_handler(int signum) { int saved_errno;