Browse Source

io: don't try to close() connection twice, remove shutdown logic.

We were closing before calling del_fd, which also closed.

The shutdown() logic applies when a child and parent are using the
*same* socket fd to communicate to each other.  That's really unusual
(who would you connect to?), and should probably be done by the user.

Generally, you'd use socketpair() for this child-parent case.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell 9 years ago
parent
commit
ce27b5647d
1 changed files with 0 additions and 7 deletions
  1. 0 7
      ccan/io/poll.c

+ 0 - 7
ccan/io/poll.c

@@ -86,13 +86,6 @@ static void del_fd(struct fd *fd)
 	}
 	num_fds--;
 	fd->backend_info = -1;
-
-	/* Closing a local socket doesn't wake poll() because other end
-	 * has them open.  See 2.6.  When should I use shutdown()?
-	 * in http://www.faqs.org/faqs/unix-faq/socket/ */
-	shutdown(fd->fd, SHUT_RDWR);
-
-	close(fd->fd);
 }
 
 static void destroy_listener(struct io_listener *l)