* Create a new connection.
* @param p Pool to allocate data structures out of
* @param server The server to create the connection for
- * @param inout The BUFF to use for all communication with the client
+ * @param inout The socket to use for all communication with the client
* @param remaddr The remote address
* @param addr The server's local address
* @param id ID of this connection; unique at any point in time.
*/
-conn_rec *ap_new_connection(apr_pool_t *p, server_rec *server, BUFF *inout,
+conn_rec *ap_new_connection(apr_pool_t *p, server_rec *server,
+ apr_socket_t *inout,
const struct sockaddr_in *remaddr,
const struct sockaddr_in *saddr, long id);
* wrapper around ap_new_connection
* @param p Pool to allocate data structures out of.
* @param server The server to create the connection for
- * @param inout The BUFF to use for all communication with the client
* @param conn_socket The socket we are creating the connection on.
* @param id ID of this connection; unique at any point in time.
*/
-conn_rec *ap_new_apr_connection(apr_pool_t *p, server_rec *server, BUFF *inout,
+conn_rec *ap_new_apr_connection(apr_pool_t *p, server_rec *server,
apr_socket_t *conn_socket, long id);
/**
/** Connection to the client */
BUFF *client;
+ apr_socket_t *client_socket;
/* Who is the client? */
structure, but for now...
*/
-conn_rec *ap_new_connection(apr_pool_t *p, server_rec *server, BUFF *inout,
+conn_rec *ap_new_connection(apr_pool_t *p, server_rec *server,
+ apr_socket_t *inout,
const struct sockaddr_in *remaddr,
const struct sockaddr_in *saddr, long id)
{
conn_rec *conn = (conn_rec *) apr_pcalloc(p, sizeof(conn_rec));
+ BUFF *conn_io = ap_bcreate(p, B_RDWR);
+ ap_bpush_socket(conn_io, inout);
/* Got a connection structure, so initialize what fields we can
* (the rest are zeroed out by pcalloc).
conn->local_ip = apr_pstrdup(conn->pool,
inet_ntoa(conn->local_addr.sin_addr));
conn->base_server = server;
- conn->client = inout;
+ conn->client = conn_io;
+ conn->client_socket = inout;
conn->remote_addr = *remaddr;
conn->remote_ip = apr_pstrdup(conn->pool,
-conn_rec *ap_new_apr_connection(apr_pool_t *p, server_rec *server, BUFF *inout,
+conn_rec *ap_new_apr_connection(apr_pool_t *p, server_rec *server,
apr_socket_t *conn_socket, long id)
{
struct sockaddr_in *sa_local, *sa_remote;
apr_get_local_name(&sa_local, conn_socket);
apr_get_remote_name(&sa_remote, conn_socket);
- return ap_new_connection(p, server, inout, sa_remote, sa_local, id);
+ return ap_new_connection(p, server, conn_socket, sa_remote, sa_local, id);
}
static void process_socket(apr_pool_t *p, apr_socket_t *sock, int my_child_num)
{
- BUFF *conn_io;
conn_rec *current_conn;
long conn_id = my_child_num;
int csd;
return;
}
- conn_io = ap_bcreate(p, B_RDWR);
- ap_bpush_socket(conn_io, sock);
-
- current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock,
+ current_conn = ap_new_apr_connection(p, ap_server_conf, sock,
conn_id);
ap_process_connection(current_conn);
static void process_socket(apr_pool_t *p, apr_socket_t *sock, long conn_id)
{
- BUFF *conn_io;
conn_rec *current_conn;
int csd;
apr_status_t rv;
ap_sock_disable_nagle(sock);
- conn_io = ap_bcreate(p, B_RDWR);
- ap_bpush_socket(conn_io, sock);
-
- current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock,
+ current_conn = ap_new_apr_connection(p, ap_server_conf, sock,
conn_id);
ap_process_connection(current_conn);
static void process_socket(apr_pool_t *p, apr_socket_t *sock, long conn_id)
{
- BUFF *conn_io;
conn_rec *current_conn;
int csd;
apr_status_t rv;
if (thread_socket_table[thread_num] < 0) {
ap_sock_disable_nagle(sock);
}
- conn_io = ap_bcreate(p, B_RDWR);
- ap_bpush_socket(conn_io, sock);
- current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock,
+ current_conn = ap_new_apr_connection(p, ap_server_conf, sock,
conn_id);
ap_process_connection(current_conn);
static void process_socket(apr_pool_t *p, apr_socket_t *sock, int my_child_num, int my_thread_num)
{
- BUFF *conn_io;
conn_rec *current_conn;
long conn_id = my_child_num * HARD_THREAD_LIMIT + my_thread_num;
int csd;
- conn_io = ap_bcreate(p, B_RDWR);
- ap_bpush_socket(conn_io, sock);
-
- current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock,
+ current_conn = ap_new_apr_connection(p, ap_server_conf, sock,
conn_id);
ap_process_connection(current_conn);
static void process_socket(apr_pool_t *p, apr_socket_t *sock, int my_child_num, int my_thread_num)
{
- BUFF *conn_io;
conn_rec *current_conn;
long conn_id = my_child_num * HARD_THREAD_LIMIT + my_thread_num;
int csd;
(void) ap_update_child_status(my_child_num, my_thread_num,
SERVER_BUSY_READ, (request_rec *) NULL);
- conn_io = ap_bcreate(p, B_RDWR);
- ap_bpush_socket(conn_io, sock);
- current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock,
+ current_conn = ap_new_apr_connection(p, ap_server_conf, sock,
conn_id);
ap_process_connection(current_conn);
static void process_socket(apr_pool_t *p, apr_socket_t *sock, long conn_id)
{
- BUFF *conn_io;
conn_rec *current_conn;
int csd;
apr_status_t rv;
if (thread_socket_table[thread_num] < 0) {
ap_sock_disable_nagle(sock);
}
- conn_io = ap_bcreate(p, B_RDWR);
- ap_bpush_socket(conn_io, sock);
- current_conn = ap_new_apr_connection(p, ap_server_conf, conn_io, sock,
+ current_conn = ap_new_apr_connection(p, ap_server_conf, sock,
conn_id);
ap_process_connection(current_conn);
#endif
while (!ap_graceful_stop_signalled()) {
- BUFF *conn_io;
/* Prepare to receive a SIGUSR1 due to graceful restart so that
* we can exit cleanly.
(void) ap_update_child_status(my_child_num, SERVER_BUSY_READ,
(request_rec *) NULL);
- conn_io = ap_bcreate(ptrans, B_RDWR);
-
- ap_bpush_socket(conn_io, csd);
-
- current_conn = ap_new_apr_connection(ptrans, ap_server_conf, conn_io, csd,
+ current_conn = ap_new_apr_connection(ptrans, ap_server_conf, csd,
my_child_num);
ap_process_connection(current_conn);
signal(SIGTERM, just_die);
while (!ap_stop_signalled()) {
- BUFF *conn_io;
int srv;
apr_socket_t *sd;
(void) ap_update_child_status(THREAD_GLOBAL(child_num), SERVER_BUSY_READ,
(request_rec *) NULL);
- conn_io = ap_bcreate(ptrans, B_RDWR);
- ap_bpush_socket(conn_io, csd);
-
- current_conn = ap_new_apr_connection(ptrans, ap_server_conf, conn_io, csd,
+ current_conn = ap_new_apr_connection(ptrans, ap_server_conf, csd,
THREAD_GLOBAL(child_num));
ap_process_connection(current_conn);