You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by yl...@apache.org on 2016/06/27 16:06:43 UTC
svn commit: r1750376 - in /httpd/httpd/trunk: CHANGES
docs/log-message-tags/next-number include/ap_mmn.h
modules/proxy/mod_proxy.h modules/proxy/proxy_util.c
Author: ylavic
Date: Mon Jun 27 16:06:42 2016
New Revision: 1750376
URL: http://svn.apache.org/viewvc?rev=1750376&view=rev
Log:
mod_proxy: revert r1750301, r1750305 and r1750311.
Rework needed.
Modified:
httpd/httpd/trunk/CHANGES
httpd/httpd/trunk/docs/log-message-tags/next-number
httpd/httpd/trunk/include/ap_mmn.h
httpd/httpd/trunk/modules/proxy/mod_proxy.h
httpd/httpd/trunk/modules/proxy/proxy_util.c
Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1750376&r1=1750375&r2=1750376&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Mon Jun 27 16:06:42 2016
@@ -1,9 +1,6 @@
-*- coding: utf-8 -*-
Changes with Apache 2.5.0
- *) mod_proxy: don't reuse backend connections with data available before the
- request is sent. PR 57832. [Yann Ylavic]
-
*) mod_sed: Fix 'x' command processing. [Christophe Jaillet]
*) core: Drop an invalid Last-Modified header value coming
Modified: httpd/httpd/trunk/docs/log-message-tags/next-number
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/log-message-tags/next-number?rev=1750376&r1=1750375&r2=1750376&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/log-message-tags/next-number (original)
+++ httpd/httpd/trunk/docs/log-message-tags/next-number Mon Jun 27 16:06:42 2016
@@ -1 +1 @@
-3409
+3408
Modified: httpd/httpd/trunk/include/ap_mmn.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/include/ap_mmn.h?rev=1750376&r1=1750375&r2=1750376&view=diff
==============================================================================
--- httpd/httpd/trunk/include/ap_mmn.h (original)
+++ httpd/httpd/trunk/include/ap_mmn.h Mon Jun 27 16:06:42 2016
@@ -532,7 +532,6 @@
* dav_success_proppatch.
* 20160608.4 (2.5.0-dev) Add dav_acl_provider, dav_acl_provider_register
* dav_get_acl_providers.
- * 20160608.5 (2.5.0-dev) Add tmp_bb to proxy_conn_rec.
*/
#define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */
@@ -540,7 +539,7 @@
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 20160608
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 5 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 4 /* 0...n */
/**
* Determine if the server's current MODULE_MAGIC_NUMBER is at least a
Modified: httpd/httpd/trunk/modules/proxy/mod_proxy.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.h?rev=1750376&r1=1750375&r2=1750376&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy.h (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy.h Mon Jun 27 16:06:42 2016
@@ -271,7 +271,6 @@ typedef struct {
unsigned int inreslist:1; /* connection in apr_reslist? */
const char *uds_path; /* Unix domain socket path */
const char *ssl_hostname;/* Hostname (SNI) in use by SSL connection */
- apr_bucket_brigade *tmp_bb;
} proxy_conn_rec;
typedef struct {
Modified: httpd/httpd/trunk/modules/proxy/proxy_util.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/proxy_util.c?rev=1750376&r1=1750375&r2=1750376&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/proxy_util.c (original)
+++ httpd/httpd/trunk/modules/proxy/proxy_util.c Mon Jun 27 16:06:42 2016
@@ -2487,7 +2487,7 @@ ap_proxy_determine_connection(apr_pool_t
#endif
#if USE_ALTERNATE_IS_CONNECTED && defined(APR_MSG_PEEK)
-static int get_socket_connected(apr_socket_t *socket)
+PROXY_DECLARE(int) ap_proxy_is_socket_connected(apr_socket_t *socket)
{
apr_pollfd_t pfds[1];
apr_status_t status;
@@ -2514,7 +2514,7 @@ static int get_socket_connected(apr_sock
status = apr_socket_recvfrom(&unused, socket, APR_MSG_PEEK,
&buf[0], &len);
if (status == APR_SUCCESS && len)
- return 2;
+ return 1;
else
return 0;
}
@@ -2525,7 +2525,8 @@ static int get_socket_connected(apr_sock
}
#else
-static int get_socket_connnected(apr_socket_t *socket)
+PROXY_DECLARE(int) ap_proxy_is_socket_connected(apr_socket_t *socket)
+
{
apr_size_t buffer_len = 1;
char test_buffer[1];
@@ -2543,19 +2544,12 @@ static int get_socket_connnected(apr_soc
|| APR_STATUS_IS_ECONNRESET(socket_status)) {
return 0;
}
- else if (status == APR_SUCCESS && buffer_len) {
- return 2;
- }
else {
return 1;
}
}
#endif /* USE_ALTERNATE_IS_CONNECTED */
-PROXY_DECLARE(int) ap_proxy_is_socket_connected(apr_socket_t *socket)
-{
- return get_socket_connected(socket) != 0;
-}
/*
* Send a HTTP CONNECT request to a forward proxy.
@@ -2722,35 +2716,7 @@ PROXY_DECLARE(int) ap_proxy_connect_back
(proxy_server_conf *) ap_get_module_config(sconf, &proxy_module);
if (conn->sock) {
- conn_rec *c = conn->connection;
- if (!c) {
- connected = get_socket_connected(conn->sock);
- }
- else {
- if (conn->tmp_bb == NULL) {
- conn->tmp_bb = apr_brigade_create(c->pool, c->bucket_alloc);
- }
- rv = ap_get_brigade(c->input_filters, conn->tmp_bb,
- AP_MODE_SPECULATIVE, APR_NONBLOCK_READ, 1);
- if (rv == APR_SUCCESS) {
- apr_off_t len = 0;
- apr_brigade_length(conn->tmp_bb, 0, &len);
- if (len) {
- connected = 2;
- }
- else {
- connected = 1;
- }
- }
- else if (APR_STATUS_IS_EAGAIN(rv)) {
- connected = 1;
- }
- else {
- connected = 0;
- }
- apr_brigade_cleanup(conn->tmp_bb);
- }
- if (connected != 1) {
+ if (!(connected = ap_proxy_is_socket_connected(conn->sock))) {
/* This clears conn->scpool (and associated data), so backup and
* restore any ssl_hostname for this connection set earlier by
* ap_proxy_determine_connection().
@@ -2762,17 +2728,9 @@ PROXY_DECLARE(int) ap_proxy_connect_back
}
socket_cleanup(conn);
- if (!connected) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00951)
- "%s: backend socket is disconnected.",
- proxy_function);
- }
- else {
- ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(03408)
- "%s: reusable backend connection is not empty: "
- "forcibly closed", proxy_function);
- connected = 0;
- }
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s, APLOGNO(00951)
+ "%s: backend socket is disconnected.",
+ proxy_function);
if (ssl_hostname[0]) {
conn->ssl_hostname = apr_pstrdup(conn->scpool, ssl_hostname);