diff -r -u httpd-2.0.47-metuxmpm-r2/server/mpm/experimental/metuxmpm/metuxmpm.c httpd-2.0.47-metuxmpm-r3/server/mpm/experimental/metuxmpm/metuxmpm.c --- httpd-2.0.47-metuxmpm-r2/server/mpm/experimental/metuxmpm/metuxmpm.c 2003-08-08 14:03:11.000000000 +0200 +++ httpd-2.0.47-metuxmpm-r3/server/mpm/experimental/metuxmpm/metuxmpm.c 2003-08-08 14:02:19.000000000 +0200 @@ -71,9 +71,9 @@ */ /* -- build configuration -- manly for debugging -- */ -/* -# define MPM_METUXMPM_DEBUG -*/ + +/* #define MPM_METUXMPM_DEBUG */ + #define MPM_THREAD_ACCEPT_LOCK #include "apr_hash.h" @@ -862,7 +862,6 @@ struct msghdr msg; struct cmsghdr *cmsg; char headers[HUGE_STRING_LEN]; - char request_body[HUGE_STRING_LEN]; struct iovec iov; int ret, fd_tmp; apr_os_sock_t ctrl_sock_fd; @@ -897,10 +896,8 @@ apr_os_sock_put((apr_socket_t **)trans_sock, &trans_sock_fd, ptrans); apr_os_sock_get(&fd_tmp, *trans_sock); - strcpy(request_body, strchr(headers, 0) + 1); - - _FDBG("trans_sock=%ld fdx=%d sock_fd=%d headers=\"%s\" body=\"%s\"", - *trans_sock, trans_sock_fd, fd_tmp, &headers, &request_body); + _FDBG("trans_sock=%ld fdx=%d sock_fd=%d headers=\"%s\"", + *trans_sock, trans_sock_fd, fd_tmp, &headers); /* -- store received data into an brigade and add it to the current transaction's pool -- */ @@ -908,9 +905,6 @@ APR_BRIGADE_INSERT_HEAD(bb, bucket); bucket = apr_bucket_socket_create(*trans_sock, alloc); APR_BRIGADE_INSERT_HEAD(bb, bucket); - bucket = apr_bucket_heap_create(request_body, - strlen(request_body), NULL, alloc); - APR_BRIGADE_INSERT_HEAD(bb, bucket); bucket = apr_bucket_heap_create(headers, strlen(headers), NULL, alloc); APR_BRIGADE_INSERT_HEAD(bb, bucket); @@ -1963,13 +1957,11 @@ struct msghdr msg; struct cmsghdr *cmsg; int sock_fd; - struct iovec iov[2]; + struct iovec iov; conn_rec *c = r->connection; apr_bucket_brigade *bb = apr_brigade_create(r->pool, c->bucket_alloc); apr_bucket_brigade *sockbb; - char request_body[HUGE_STRING_LEN] = "\0"; apr_off_t len = 0; - apr_size_t l = HUGE_STRING_LEN; metuxmpm_header h; apr_bucket *sockbuck; const apr_array_header_t *headers_in_array; @@ -2010,13 +2002,6 @@ if (!sockbuck) _DBG("pass_request(): no sockbuck!", 0); sockbb = apr_brigade_split(bb, sockbuck); - if (apr_brigade_flatten(bb, request_body, &l) != APR_SUCCESS) - { - ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ap_server_conf, - "Unable to flatten brigade, declining request"); - return DECLINED; - } - apr_os_sock_get(&sock_fd, thesock); h.p = r->pool; @@ -2062,16 +2047,13 @@ CRLF, NULL); } - iov[0].iov_base = h.headers; - iov[0].iov_len = strlen(h.headers) + 1; - iov[1].iov_base = request_body; - iov[1].iov_len = l + 1; -_DBG("pass_request(): [POST] body=\"%s\" length=%d", request_body, l); + iov.iov_base = h.headers; + iov.iov_len = strlen(h.headers) + 1; msg.msg_name = NULL; msg.msg_namelen = 0; - msg.msg_iov = iov; - msg.msg_iovlen = 2; + msg.msg_iov = &iov; + msg.msg_iovlen = 1; cmsg = apr_palloc(r->pool, sizeof(*cmsg) + sizeof(sock_fd)); cmsg->cmsg_len = sizeof(*cmsg) + sizeof(sock_fd); @@ -2084,7 +2066,7 @@ msg.msg_controllen = cmsg->cmsg_len; _DBG("pass_request(): Writing message to %d, passing sock_fd: %d", sconf->child->output, sock_fd); - _DBG("pass_request(): header=\"%s\" body=\"%s\" ", h.headers, request_body ); + _DBG("pass_request(): header=\"%s\" ", h.headers ); ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, ap_server_conf, "Writing message to %d, passing sd: %d", sconf->child->output, sock_fd);