martin 99/02/07 12:37:27
Modified: src/modules/proxy proxy_util.c
Log:
Minor 'beautification' (adding comments)
Revision Changes Path
1.75 +27 -29 apache-1.3/src/modules/proxy/proxy_util.c
Index: proxy_util.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/modules/proxy/proxy_util.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -r1.74 -r1.75
--- proxy_util.c 1999/01/01 19:05:03 1.74
+++ proxy_util.c 1999/02/07 20:37:26 1.75
@@ -491,15 +491,15 @@
long int ap_proxy_send_fb(BUFF *f, request_rec *r, cache_req *c)
{
- int ok = 1;
+ int ok;
char buf[IOBUFSIZE];
- long total_bytes_rcv;
+ long total_bytes_rcvd;
register int n, o, w;
conn_rec *con = r->connection;
- int alt_to = 1;
+ int alternate_timeouts = 1; /* 1 if we alternate between soft &
hard timeouts */
- total_bytes_rcv = 0;
- if (c)
+ total_bytes_rcvd = 0;
+ if (c != NULL)
c->written = 0;
#ifdef CHARSET_EBCDIC
@@ -520,34 +520,34 @@
#ifdef WIN32
/* works fine under win32, so leave it */
ap_hard_timeout("proxy send body", r);
- alt_to = 0;
+ alternate_timeouts = 0;
#else
/* CHECKME! Since hard_timeout won't work in unix on sends with partial
* cache completion, we have to alternate between hard_timeout
* for reads, and soft_timeout for send. This is because we need
* to get a return from ap_bwrite to be able to continue caching.
* BUT, if we *can't* continue anyway, just use hard_timeout.
+ * (Also, if no cache file is written, use hard timeouts)
*/
- if (c) {
- if (c->len <= 0 || c->cache_completion == 1) {
- ap_hard_timeout("proxy send body", r);
- alt_to = 0;
- }
- } else {
+ if (c == NULL || c->len <= 0 || c->cache_completion == 1.0) {
ap_hard_timeout("proxy send body", r);
- alt_to = 0;
+ alternate_timeouts = 0;
}
#endif
- while (ok) {
- if (alt_to)
- ap_hard_timeout("proxy send body", r);
+ /* Loop and ap_bread() while we can successfully read and write,
+ * or (after the client aborted) while we can successfully
+ * read and finish the configured cache_completion.
+ */
+ for (ok = 1; ok; ) {
+ if (alternate_timeouts)
+ ap_hard_timeout("proxy recv body from upstream server", r);
/* Read block from server */
n = ap_bread(f, buf, IOBUFSIZE);
- if (alt_to)
+ if (alternate_timeouts)
ap_kill_timeout(r);
else
ap_reset_timeout(r);
@@ -560,9 +560,10 @@
if (n == 0)
break; /* EOF */
o = 0;
- total_bytes_rcv += n;
+ total_bytes_rcvd += n;
/* Write to cache first. */
+ /*@@@ XXX FIXME: Assuming that writing the cache file won't time
out?!!? */
if (c != NULL && c->fp != NULL) {
if (ap_bwrite(c->fp, &buf[0], n) != n) {
c = ap_proxy_cache_error(c);
@@ -572,13 +573,13 @@
}
/* Write the block to the client, detect aborted transfers */
- while (n && !con->aborted) {
- if (alt_to)
+ while (!con->aborted && n > 0) {
+ if (alternate_timeouts)
ap_soft_timeout("proxy send body", r);
w = ap_bwrite(con->client, &buf[o], n);
- if (alt_to)
+ if (alternate_timeouts)
ap_kill_timeout(r);
else
ap_reset_timeout(r);
@@ -591,7 +592,7 @@
*/
ok = (c->len > 0) &&
(c->cache_completion > 0) &&
- (c->len * c->cache_completion < total_bytes_rcv);
+ (c->len * c->cache_completion < total_bytes_rcvd);
if (! ok) {
ap_pclosef(c->req->pool, c->fp->fd);
@@ -605,14 +606,14 @@
}
n -= w;
o += w;
- }
- }
+ } /* while client alive and more data to send */
+ } /* loop and ap_bread while "ok" */
if (!con->aborted)
ap_bflush(con->client);
ap_kill_timeout(r);
- return total_bytes_rcv;
+ return total_bytes_rcvd;
}
/*
@@ -628,14 +629,11 @@
BUFF *fp = r->connection->client;
table_entry *elts = (table_entry *) ap_table_elts(t)->elts;
- ap_bputs(respline, fp);
- ap_bputs(CRLF, fp);
+ ap_bvputs(fp, respline, CRLF, NULL);
for (i = 0; i < ap_table_elts(t)->nelts; ++i) {
if (elts[i].key != NULL) {
ap_bvputs(fp, elts[i].key, ": ", elts[i].val, CRLF, NULL);
- /* FIXME: @@@ This used to be ap_table_set(), but I think
- * ap_table_addn() is correct. MnKr */
ap_table_addn(r->headers_out, elts[i].key, elts[i].val);
}
}