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>
}
num_fds--;
fd->backend_info = -1;
}
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)
}
static void destroy_listener(struct io_listener *l)