nginx-0.0.1-2003-11-25-23:44:56 import
diff --git a/src/http/modules/proxy/ngx_http_proxy_handler.c b/src/http/modules/proxy/ngx_http_proxy_handler.c
index 25f5b33..e8b78f4 100644
--- a/src/http/modules/proxy/ngx_http_proxy_handler.c
+++ b/src/http/modules/proxy/ngx_http_proxy_handler.c
@@ -485,6 +485,10 @@
r->file.fd = p->cache->ctx.file.fd;
}
+ if (rc == 0 && r->main == NULL) {
+ rc = ngx_http_send_last(r);
+ }
+
ngx_http_finalize_request(r, rc);
}
@@ -586,15 +590,25 @@
*buf++ = '/';
- *buf++ = '_';
+ if (p->state->expired == 0) {
+ *buf++ = '-';
+
+ } else {
+ buf += ngx_snprintf(buf, NGX_TIME_LEN, TIME_T_FMT, p->state->expired);
+ }
*buf++ = '/';
- *buf++ = '_';
+ if (p->state->bl_time == 0) {
+ *buf++ = '-';
+
+ } else {
+ buf += ngx_snprintf(buf, NGX_TIME_LEN, TIME_T_FMT, p->state->bl_time);
+ }
*buf++ = '/';
- *buf++ = '_';
+ *buf++ = '*';
*buf++ = ' ';
@@ -617,15 +631,15 @@
*buf++ = '/';
- if (p->state->reason >= NGX_HTTP_PROXY_CACHE_XAE) {
+ if (p->state->reason < NGX_HTTP_PROXY_CACHE_XAE) {
*buf++ = '-';
} else {
- buf += ngx_snprintf(buf, NGX_TIME_LEN, TIME_FMT, p->state->expires);
+ buf += ngx_snprintf(buf, NGX_TIME_LEN, TIME_T_FMT, p->state->expires);
}
*buf++ = ' ';
- *buf++ = '_';
+ *buf++ = '*';
return buf;
}
@@ -833,9 +847,9 @@
int i, len;
char *err, *host;
+ in_addr_t addr;
ngx_str_t *value;
struct hostent *h;
- u_int32_t addr;
ngx_http_conf_ctx_t *ctx;
ngx_http_core_loc_conf_t *clcf;
@@ -869,6 +883,8 @@
NGX_CONF_ERROR);
ngx_cpystrn(host, lcf->upstream->host.data, lcf->upstream->host.len + 1);
+ /* AF_INET only */
+
addr = inet_addr(host);
if (addr == INADDR_NONE) {
@@ -894,7 +910,7 @@
for (i = 0; h->h_addr_list[i] != NULL; i++) {
lcf->peers->peers[i].host.data = host;
lcf->peers->peers[i].host.len = lcf->upstream->host.len;
- lcf->peers->peers[i].addr = *(u_int32_t *)(h->h_addr_list[i]);
+ lcf->peers->peers[i].addr = *(in_addr_t *)(h->h_addr_list[i]);
lcf->peers->peers[i].port = lcf->upstream->port;
len = INET_ADDRSTRLEN + lcf->upstream->port_text.len + 1;