Corinna Vinschen wrote: > > Your patch looks good. What I didn't quite get is, how the > code now looks like (ideally) when using the new FD_SETCF > functionality.
See 4 lines below not starting with > > > > int oldsocks[2^32]; /* I'll be smarter */ > > sock = socket() fcntl(sock, F_SETCF, 0) (1) > > bind(sock) > > listen(sock) > > while (1) { > > select() > > newsock = accept(sock) > > pid = fork() > > if (pid == 0) { /* close(sock) */ (2) > > child works > > } > > if (pid > 0) { > > oldsocks[pid] = newsock fcntl(newsock, F_SETCF, 0) (3) > > } > > } > > sigchild_handler() > > { > > pid = waitpid() shutdown(oldsocks[pid], 2) (4) > > close(oldsocks[pid]) > > } > Could you write a short example? If inetd (what about sshd?) could > benefit, I'd like to see how to do it. Btw., the sources are in the > inetutils-1.3.2-17-src.tar.bz2 file, obviously, which you can get > by using setup.exe. Silly me. I got fooled by the n/a[available?/applicable?] acronym in setup. OK, I'll look at it in the coming days. By the way, is it safe to call shutdown() & close() directly from a handler? Pierre