You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@locus.apache.org on 2000/10/18 21:12:18 UTC
cvs commit: apache-2.0/src/modules/mpm/spmt_os2 spmt_os2.c
rbb 00/10/18 12:12:17
Modified: src CHANGES
src/include http_connection.h httpd.h
src/main http_connection.c
src/modules/mpm/beos beos.c
src/modules/mpm/dexter dexter.c
src/modules/mpm/mpmt_beos mpmt_beos.c
src/modules/mpm/mpmt_pthread mpmt_pthread.c
src/modules/mpm/perchild perchild.c
src/modules/mpm/prefork prefork.c
src/modules/mpm/spmt_os2 spmt_os2.c
Log:
This begins to remove BUFF from the server. The idea is to go very slowly
with this. To begin with, we store both the socket and the BUFF in the
conn_rec. Functions are free to use which ever they want, in the end all
of the data goes to the same place. This modifies all of the MPMs except
Windows. All of the Unix MPMs are working, but the others need to be
tested.
Revision Changes Path
1.286 +6 -1 apache-2.0/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apache-2.0/src/CHANGES,v
retrieving revision 1.285
retrieving revision 1.286
diff -u -r1.285 -r1.286
--- CHANGES 2000/10/18 18:09:58 1.285
+++ CHANGES 2000/10/18 19:12:04 1.286
@@ -1,7 +1,12 @@
Changes with Apache 2.0a8
+ *) Begin to remove BUFF from the core. Currently, we keep a pointer
+ to both the BUFF and the socket in the conn_rec. Functions that
+ want to use the BUFF can, functions that want to use the socket,
+ can. They point to the same place.
+ [Ryan Bloom]
+
*) apr_psprintf doesn't understand %lld as a format. Make it %ld.
[Tomas "�gren" <st...@ing.umu.se>]
-
*) APR pipes on Unix and Win32 are now cleaned up automatically when the
associated pool goes away. (APR pipes on OS/2 were already had this
1.25 +4 -4 apache-2.0/src/include/http_connection.h
Index: http_connection.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/include/http_connection.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- http_connection.h 2000/10/16 06:04:34 1.24
+++ http_connection.h 2000/10/18 19:12:06 1.25
@@ -71,12 +71,13 @@
* 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);
@@ -85,11 +86,10 @@
* 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);
/**
1.106 +1 -0 apache-2.0/src/include/httpd.h
Index: httpd.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/include/httpd.h,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -r1.105 -r1.106
--- httpd.h 2000/10/17 01:04:33 1.105
+++ httpd.h 2000/10/18 19:12:06 1.106
@@ -852,6 +852,7 @@
/** Connection to the client */
BUFF *client;
+ apr_socket_t *client_socket;
/* Who is the client? */
1.53 +8 -4 apache-2.0/src/main/http_connection.c
Index: http_connection.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/main/http_connection.c,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- http_connection.c 2000/10/16 06:04:51 1.52
+++ http_connection.c 2000/10/18 19:12:08 1.53
@@ -258,11 +258,14 @@
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).
@@ -276,7 +279,8 @@
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,
@@ -289,12 +293,12 @@
-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);
}
1.24 +1 -5 apache-2.0/src/modules/mpm/beos/beos.c
Index: beos.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/modules/mpm/beos/beos.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- beos.c 2000/10/16 06:04:57 1.23
+++ beos.c 2000/10/18 19:12:09 1.24
@@ -305,7 +305,6 @@
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;
@@ -321,10 +320,7 @@
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);
1.128 +1 -5 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.127
retrieving revision 1.128
diff -u -r1.127 -r1.128
--- dexter.c 2000/10/16 06:04:57 1.127
+++ dexter.c 2000/10/18 19:12:10 1.128
@@ -395,7 +395,6 @@
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;
@@ -416,10 +415,7 @@
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);
1.52 +1 -5 apache-2.0/src/modules/mpm/mpmt_beos/mpmt_beos.c
Index: mpmt_beos.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/modules/mpm/mpmt_beos/mpmt_beos.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- mpmt_beos.c 2000/10/16 06:04:58 1.51
+++ mpmt_beos.c 2000/10/18 19:12:11 1.52
@@ -295,15 +295,11 @@
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);
1.123 +1 -4 apache-2.0/src/modules/mpm/mpmt_pthread/mpmt_pthread.c
Index: mpmt_pthread.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/modules/mpm/mpmt_pthread/mpmt_pthread.c,v
retrieving revision 1.122
retrieving revision 1.123
diff -u -r1.122 -r1.123
--- mpmt_pthread.c 2000/10/16 06:04:59 1.122
+++ mpmt_pthread.c 2000/10/18 19:12:13 1.123
@@ -392,7 +392,6 @@
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;
@@ -413,10 +412,8 @@
(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);
1.23 +1 -4 apache-2.0/src/modules/mpm/perchild/perchild.c
Index: perchild.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/modules/mpm/perchild/perchild.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- perchild.c 2000/10/16 06:05:00 1.22
+++ perchild.c 2000/10/18 19:12:14 1.23
@@ -430,7 +430,6 @@
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;
@@ -453,10 +452,8 @@
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);
1.132 +1 -6 apache-2.0/src/modules/mpm/prefork/prefork.c
Index: prefork.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/modules/mpm/prefork/prefork.c,v
retrieving revision 1.131
retrieving revision 1.132
diff -u -r1.131 -r1.132
--- prefork.c 2000/10/16 06:05:01 1.131
+++ prefork.c 2000/10/18 19:12:15 1.132
@@ -787,7 +787,6 @@
#endif
while (!ap_graceful_stop_signalled()) {
- BUFF *conn_io;
/* Prepare to receive a SIGUSR1 due to graceful restart so that
* we can exit cleanly.
@@ -1023,11 +1022,7 @@
(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);
1.64 +1 -5 apache-2.0/src/modules/mpm/spmt_os2/spmt_os2.c
Index: spmt_os2.c
===================================================================
RCS file: /home/cvs/apache-2.0/src/modules/mpm/spmt_os2/spmt_os2.c,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -r1.63 -r1.64
--- spmt_os2.c 2000/10/16 06:05:01 1.63
+++ spmt_os2.c 2000/10/18 19:12:16 1.64
@@ -784,7 +784,6 @@
signal(SIGTERM, just_die);
while (!ap_stop_signalled()) {
- BUFF *conn_io;
int srv;
apr_socket_t *sd;
@@ -969,10 +968,7 @@
(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);