ben 99/06/20 05:25:55
Modified: mpm/src/main buff.c http_request.c Log: Handle partial large writes. Revision Changes Path 1.4 +5 -1 apache-2.0/mpm/src/main/buff.c Index: buff.c =================================================================== RCS file: /export/home/cvs/apache-2.0/mpm/src/main/buff.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- buff.c 1999/06/18 23:34:59 1.3 +++ buff.c 1999/06/20 12:25:54 1.4 @@ -551,7 +551,11 @@ */ if (fb->outcnt > 0 && nbyte > LARGE_WRITE_THRESHOLD && nbyte + fb->outcnt >= fb->bufsiz) { - return large_write(fb, buf, nbyte); + int n=large_write(fb, buf, nbyte); + if (n == nbyte) + return nbyte; + buf+=n; + nbyte-=n; } /* 1.3 +7 -1 apache-2.0/mpm/src/main/http_request.c Index: http_request.c =================================================================== RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_request.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- http_request.c 1999/06/18 23:35:00 1.2 +++ http_request.c 1999/06/20 12:25:54 1.3 @@ -1241,7 +1241,13 @@ * it's the application that's stalled. */ /* TODO: re-implement ap_bhalfduplex... not sure how yet */ - //ap_bhalfduplex(r->connection->client); +#if 0 + ap_bhalfduplex(r->connection->client); +#else + //in the meantime, flush! + ap_bflush(r->connection->client); +#endif + ap_log_transaction(r); }