/* This structure contains all information needed to easily handle a protocol.
* Its primary goal is to ease listeners maintenance. Specifically, the
- * bind() primitive must be used before any fork(), and the enable_all()
- * primitive must be called after the fork() to enable all fds.
+ * bind() primitive must be used before any fork().
*/
struct protocol {
char name[PROTO_NAME_LEN]; /* protocol name, zero-terminated */
int sock_prot; /* socket protocol, as passed to socket() */
void (*accept)(int fd); /* generic accept function */
int (*listen)(struct listener *l, char *errmsg, int errlen); /* start a listener */
- int (*enable_all)(struct protocol *proto); /* enable all bound listeners */
int (*connect)(struct connection *, int flags); /* connect function if any, see below for flags values */
int (*drain)(int fd); /* indicates whether we can safely close the fd */
int (*pause)(struct listener *l); /* temporarily pause this listener for a soft restart */
.accept = &listener_accept,
.connect = &sockpair_connect_server,
.listen = sockpair_bind_listener,
- .enable_all = enable_all_listeners,
.pause = NULL,
.add = sockpair_add_listener,
.listeners = LIST_HEAD_INIT(proto_sockpair.listeners),
.accept = &listener_accept,
.connect = tcp_connect_server,
.listen = tcp_bind_listener,
- .enable_all = enable_all_listeners,
.pause = tcp_pause_listener,
.add = tcpv4_add_listener,
.listeners = LIST_HEAD_INIT(proto_tcpv4.listeners),
.accept = &listener_accept,
.connect = tcp_connect_server,
.listen = tcp_bind_listener,
- .enable_all = enable_all_listeners,
.pause = tcp_pause_listener,
.add = tcpv6_add_listener,
.listeners = LIST_HEAD_INIT(proto_tcpv6.listeners),
.accept = NULL,
.connect = NULL,
.listen = udp_bind_listener,
- .enable_all = enable_all_listeners,
.pause = udp_pause_listener,
.add = udp4_add_listener,
.listeners = LIST_HEAD_INIT(proto_udp4.listeners),
.accept = NULL,
.connect = NULL,
.listen = udp_bind_listener,
- .enable_all = enable_all_listeners,
.pause = udp_pause_listener,
.add = udp6_add_listener,
.listeners = LIST_HEAD_INIT(proto_udp6.listeners),
.accept = &listener_accept,
.connect = &uxst_connect_server,
.listen = uxst_bind_listener,
- .enable_all = enable_all_listeners,
.pause = uxst_pause_listener,
.add = uxst_add_listener,
.listeners = LIST_HEAD_INIT(proto_unix.listeners),