You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2008/11/24 19:33:10 UTC
svn commit: r720250 - in /httpd/httpd/trunk/modules: http/http_protocol.c
loggers/mod_log_config.c
Author: jim
Date: Mon Nov 24 10:33:09 2008
New Revision: 720250
URL: http://svn.apache.org/viewvc?rev=720250&view=rev
Log:
Make %k work as it should. No regression noted in perl
test framework.
Modified:
httpd/httpd/trunk/modules/http/http_protocol.c
httpd/httpd/trunk/modules/loggers/mod_log_config.c
Modified: httpd/httpd/trunk/modules/http/http_protocol.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http/http_protocol.c?rev=720250&r1=720249&r2=720250&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/http/http_protocol.c (original)
+++ httpd/httpd/trunk/modules/http/http_protocol.c Mon Nov 24 10:33:09 2008
@@ -176,6 +176,7 @@
AP_DECLARE(int) ap_set_keepalive(request_rec *r)
{
int ka_sent = 0;
+ int left = r->server->keep_alive_max - r->connection->keepalives;
int wimpy = ap_find_token(r->pool,
apr_table_get(r->headers_out, "Connection"),
"close");
@@ -221,7 +222,7 @@
&& r->server->keep_alive
&& (r->server->keep_alive_timeout > 0)
&& ((r->server->keep_alive_max == 0)
- || (r->server->keep_alive_max > r->connection->keepalives))
+ || (left > 0))
&& !ap_status_drops_connection(r->status)
&& !wimpy
&& !ap_find_token(r->pool, conn, "close")
@@ -230,7 +231,6 @@
&& ((ka_sent = ap_find_token(r->pool, conn, "keep-alive"))
|| (r->proto_num >= HTTP_VERSION(1,1)))
&& is_mpm_running()) {
- int left = r->server->keep_alive_max - r->connection->keepalives;
r->connection->keepalive = AP_CONN_KEEPALIVE;
r->connection->keepalives++;
@@ -266,6 +266,16 @@
apr_table_mergen(r->headers_out, "Connection", "close");
}
+ /*
+ * If we had previously been a keepalive connection and this
+ * is the last one, then bump up the number of keepalives
+ * we've had
+ */
+ if ((r->connection->keepalive != AP_CONN_CLOSE)
+ && r->server->keep_alive_max
+ && !left) {
+ r->connection->keepalives++;
+ }
r->connection->keepalive = AP_CONN_CLOSE;
return 0;
Modified: httpd/httpd/trunk/modules/loggers/mod_log_config.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/loggers/mod_log_config.c?rev=720250&r1=720249&r2=720250&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/loggers/mod_log_config.c (original)
+++ httpd/httpd/trunk/modules/loggers/mod_log_config.c Mon Nov 24 10:33:09 2008
@@ -697,7 +697,8 @@
static const char *log_requests_on_connection(request_rec *r, char *a)
{
- return apr_itoa(r->pool, r->connection->keepalives);
+ int num = r->connection->keepalives ? r->connection->keepalives - 1 : 0;
+ return apr_itoa(r->pool, num);
}
/*****************************************************************