manoj 99/10/25 23:07:38
Modified: src/modules/mpm/dexter dexter.c
Log:
Take advantage of ap_new_apr_connection in dexter
Revision Changes Path
1.47 +7 -19 apache-2.0/src/modules/mpm/dexter/dexter.c
Index: dexter.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/modules/mpm/dexter/dexter.c,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -u -r1.46 -r1.47
--- dexter.c 1999/10/24 13:08:27 1.46
+++ dexter.c 1999/10/26 06:07:36 1.47
@@ -737,21 +737,14 @@
* Child process main loop.
*/
-static void process_socket(ap_context_t *p, struct sockaddr *sa_client, int
csd,
- int conn_id)
+static void process_socket(ap_context_t *p, ap_socket_t *sock, long conn_id)
{
- struct sockaddr sa_server; /* ZZZZ */
- NET_SIZE_T len = sizeof(struct sockaddr);
BUFF *conn_io;
conn_rec *current_conn;
ap_iol *iol;
-
- if (getsockname(csd, &sa_server, &len) < 0) {
- ap_log_error(APLOG_MARK, APLOG_ERR, errno, server_conf, "getsockname");
- close(csd);
- return;
- }
+ int csd;
+ ap_get_os_sock(&csd, sock);
sock_disable_nagle(csd);
iol = unix_attach_socket(csd);
@@ -766,17 +759,15 @@
ap_log_error(APLOG_MARK, APLOG_WARNING, errno, NULL,
"error attaching to socket");
}
- close(csd);
+ ap_close_socket(sock);
return;
}
conn_io = ap_bcreate(p, B_RDWR);
ap_bpush_iol(conn_io, iol);
- current_conn = ap_new_connection(p, server_conf, conn_io,
- (const struct sockaddr_in *) sa_client,
- (const struct sockaddr_in *) &sa_server,
- conn_id);
+ current_conn = ap_new_apr_connection(p, server_conf, conn_io, sock,
+ conn_id);
ap_process_connection(current_conn);
}
@@ -848,7 +839,6 @@
static void *worker_thread(void *arg)
{
- struct sockaddr sa_client;
ap_socket_t *csd = NULL;
ap_context_t *tpool; /* Pool for this thread */
ap_context_t *ptrans; /* Pool for per-transaction stuff */
@@ -858,7 +848,6 @@
int thread_just_started = 1;
int thread_num = *((int *) arg);
long conn_id = child_num * HARD_THREAD_LIMIT + thread_num;
- int native_socket;
pthread_mutex_lock(&thread_pool_create_mutex);
ap_create_context(&tpool, thread_pool_parent);
@@ -955,8 +944,7 @@
pthread_mutex_unlock(&idle_thread_count_mutex);
break;
}
- ap_get_os_sock(&native_socket, csd);
- process_socket(ptrans, &sa_client, native_socket, conn_id);
+ process_socket(ptrans, csd, conn_id);
ap_clear_pool(ptrans);
requests_this_child--;
}