You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rp...@apache.org on 2006/01/05 21:56:46 UTC
svn commit: r366278 - /httpd/httpd/trunk/server/core_filters.c
Author: rpluem
Date: Thu Jan 5 12:56:43 2006
New Revision: 366278
URL: http://svn.apache.org/viewcvs?rev=366278&view=rev
Log:
* Fix a regression from 2.2.x: Set c->aborted to 1 if the return code from
writing to the client is different from APR_SUCCESS in the blocking case or
APR_SUCCESS or APR_EAGAIN in the non blocking case.
Modified:
httpd/httpd/trunk/server/core_filters.c
Modified: httpd/httpd/trunk/server/core_filters.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/server/core_filters.c?rev=366278&r1=366277&r2=366278&view=diff
==============================================================================
--- httpd/httpd/trunk/server/core_filters.c (original)
+++ httpd/httpd/trunk/server/core_filters.c Thu Jan 5 12:56:43 2006
@@ -416,6 +416,10 @@
if (APR_STATUS_IS_EAGAIN(rv)) {
rv = APR_SUCCESS;
}
+ else if (rv != APR_SUCCESS) {
+ /* The client has aborted the connection */
+ c->aborted = 1;
+ }
setaside_remaining_output(f, ctx, bb, 0, c);
return rv;
}
@@ -430,6 +434,8 @@
apr_status_t rv = send_brigade_blocking(net->client_socket, bb,
&(ctx->bytes_written), c);
if (rv != APR_SUCCESS) {
+ /* The client has aborted the connection */
+ c->aborted = 1;
return rv;
}
bb = remainder;
@@ -464,6 +470,8 @@
apr_status_t rv = send_brigade_blocking(net->client_socket, bb,
&(ctx->bytes_written), c);
if (rv != APR_SUCCESS) {
+ /* The client has aborted the connection */
+ c->aborted = 1;
return rv;
}
}
@@ -471,6 +479,8 @@
apr_status_t rv = send_brigade_nonblocking(net->client_socket, bb,
&(ctx->bytes_written), c);
if ((rv != APR_SUCCESS) && (!APR_STATUS_IS_EAGAIN(rv))) {
+ /* The client has aborted the connection */
+ c->aborted = 1;
return rv;
}
}