diff --git a/include/proto/connection.h b/include/proto/connection.h index 952f9ea2f..f50329c38 100644 --- a/include/proto/connection.h +++ b/include/proto/connection.h @@ -35,9 +35,9 @@ extern struct pool_head *pool2_connection; int init_connection(); /* I/O callback for fd-based connections. It calls the read/write handlers - * provided by the connection's sock_ops. Returns 0. + * provided by the connection's sock_ops. */ -int conn_fd_handler(int fd); +void conn_fd_handler(int fd); /* receive a PROXY protocol header over a connection */ int conn_recv_proxy(struct connection *conn, int flag); diff --git a/include/proto/listener.h b/include/proto/listener.h index 1473bfda7..75bae86d9 100644 --- a/include/proto/listener.h +++ b/include/proto/listener.h @@ -105,7 +105,7 @@ void delete_listener(struct listener *listener); * to an accept. It tries to accept as many connections as possible, and for each * calls the listener's accept handler (generally the frontend's accept handler). */ -int listener_accept(int fd); +void listener_accept(int fd); /* * Registers the bind keyword list as a list of valid keywords for next diff --git a/include/proto/proto_udp.h b/include/proto/proto_udp.h index c452a10b9..d1f0698c6 100644 --- a/include/proto/proto_udp.h +++ b/include/proto/proto_udp.h @@ -22,6 +22,6 @@ #ifndef _PROTO_PROTO_UDP_H #define _PROTO_PROTO_UDP_H -int dgram_fd_handler(int); +void dgram_fd_handler(int); #endif // _PROTO_PROTO_UDP_H diff --git a/include/types/fd.h b/include/types/fd.h index 057d968ad..8299a0264 100644 --- a/include/types/fd.h +++ b/include/types/fd.h @@ -78,7 +78,7 @@ enum fd_states { /* info about one given fd */ struct fdtab { - int (*iocb)(int fd); /* I/O handler, returns FD_WAIT_* */ + void (*iocb)(int fd); /* I/O handler */ void *owner; /* the connection or listener associated with this fd, NULL if closed */ unsigned int cache; /* position+1 in the FD cache. 0=not in cache. */ unsigned char state; /* FD state for read and write directions (2*3 bits) */ diff --git a/include/types/protocol.h b/include/types/protocol.h index 74b20e8fa..6a4986ff4 100644 --- a/include/types/protocol.h +++ b/include/types/protocol.h @@ -50,7 +50,7 @@ struct protocol { sa_family_t sock_family; /* socket family, for sockaddr */ socklen_t sock_addrlen; /* socket address length, used by bind() */ int l3_addrlen; /* layer3 address length, used by hashes */ - int (*accept)(int fd); /* generic accept function */ + void (*accept)(int fd); /* generic accept function */ int (*bind)(struct listener *l, char *errmsg, int errlen); /* bind a listener */ int (*bind_all)(struct protocol *proto, char *errmsg, int errlen); /* bind all unbound listeners */ int (*unbind_all)(struct protocol *proto); /* unbind all bound listeners */ diff --git a/src/connection.c b/src/connection.c index b8be0a106..330f3efbc 100644 --- a/src/connection.c +++ b/src/connection.c @@ -36,15 +36,15 @@ int init_connection() } /* I/O callback for fd-based connections. It calls the read/write handlers - * provided by the connection's sock_ops, which must be valid. It returns 0. + * provided by the connection's sock_ops, which must be valid. */ -int conn_fd_handler(int fd) +void conn_fd_handler(int fd) { struct connection *conn = fdtab[fd].owner; unsigned int flags; if (unlikely(!conn)) - return 0; + return; conn_refresh_polling_flags(conn); flags = conn->flags & ~CO_FL_ERROR; /* ensure to call the wake handler upon error */ @@ -86,7 +86,7 @@ int conn_fd_handler(int fd) * we must not use it anymore and should immediately leave instead. */ if ((conn->flags & CO_FL_INIT_DATA) && conn->data->init(conn) < 0) - return 0; + return; /* The data transfer starts here and stops on error and handshakes. Note * that we must absolutely test conn->xprt at each step in case it suddenly @@ -133,7 +133,7 @@ int conn_fd_handler(int fd) if ((conn->flags & CO_FL_WAKE_DATA) && ((conn->flags ^ flags) & CO_FL_CONN_STATE) && conn->data->wake(conn) < 0) - return 0; + return; /* Last check, verify if the connection just established */ if (unlikely(!(conn->flags & (CO_FL_WAIT_L4_CONN | CO_FL_WAIT_L6_CONN | CO_FL_CONNECTED)))) @@ -144,7 +144,7 @@ int conn_fd_handler(int fd) /* commit polling changes */ conn_cond_update_polling(conn); - return 0; + return; } /* Update polling on connection 's file descriptor depending on its current diff --git a/src/listener.c b/src/listener.c index 5abeb806f..566b34082 100644 --- a/src/listener.c +++ b/src/listener.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include diff --git a/src/proto_udp.c b/src/proto_udp.c index 0e361d928..c4434d78e 100644 --- a/src/proto_udp.c +++ b/src/proto_udp.c @@ -17,17 +17,17 @@ #include /* datagram handler callback */ -int dgram_fd_handler(int fd) +void dgram_fd_handler(int fd) { struct dgram_conn *dgram = fdtab[fd].owner; if (unlikely(!dgram)) - return 0; + return; if (fd_recv_ready(fd)) dgram->data->recv(dgram); else if (fd_send_ready(fd)) dgram->data->send(dgram); - return 0; + return; }