nginx-0.0.1-2003-11-11-00:09:22 import
diff --git a/src/http/modules/proxy/ngx_http_proxy_cache.c b/src/http/modules/proxy/ngx_http_proxy_cache.c
index 3c4f5ca..a8c9d77 100644
--- a/src/http/modules/proxy/ngx_http_proxy_cache.c
+++ b/src/http/modules/proxy/ngx_http_proxy_cache.c
@@ -288,6 +288,8 @@
return;
}
+ ngx_http_busy_unlock(p->lcf->busy_lock, &p->busy_lock);
+
if (rc == NGX_DONE) {
ft_type = NGX_HTTP_PROXY_FT_BUSY_LOCK;
diff --git a/src/http/modules/proxy/ngx_http_proxy_handler.c b/src/http/modules/proxy/ngx_http_proxy_handler.c
index ad719ca..ecfe658 100644
--- a/src/http/modules/proxy/ngx_http_proxy_handler.c
+++ b/src/http/modules/proxy/ngx_http_proxy_handler.c
@@ -503,7 +503,7 @@
{
ngx_http_proxy_ctx_t *p;
- p = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+ p = ngx_http_get_module_err_ctx(r, ngx_http_proxy_module);
if (p == NULL) {
*buf = '-';
@@ -520,11 +520,15 @@
*buf++ = '/';
- *buf++ = 'X';
+ *buf++ = '_';
*buf++ = '/';
- *buf++ = 'X';
+ *buf++ = '_';
+
+ *buf++ = '/';
+
+ *buf++ = '_';
*buf++ = ' ';
@@ -554,6 +558,9 @@
buf += ngx_snprintf(buf, NGX_TIME_LEN, TIME_FMT, p->state->expires);
}
+ *buf++ = ' ';
+ *buf++ = '_';
+
return buf;
}
@@ -563,7 +570,7 @@
{
ngx_http_proxy_ctx_t *p;
- p = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+ p = ngx_http_get_module_err_ctx(r, ngx_http_proxy_module);
if (p == NULL || p->state->cache_state == 0) {
*buf = '-';
@@ -580,7 +587,7 @@
{
ngx_http_proxy_ctx_t *p;
- p = ngx_http_get_module_ctx(r, ngx_http_proxy_module);
+ p = ngx_http_get_module_err_ctx(r, ngx_http_proxy_module);
if (p == NULL || p->state->reason == 0) {
*buf = '-';
diff --git a/src/http/modules/proxy/ngx_http_proxy_upstream.c b/src/http/modules/proxy/ngx_http_proxy_upstream.c
index d404993..0a5ecd2 100644
--- a/src/http/modules/proxy/ngx_http_proxy_upstream.c
+++ b/src/http/modules/proxy/ngx_http_proxy_upstream.c
@@ -337,6 +337,8 @@
return;
}
+ ngx_http_busy_unlock(p->lcf->busy_lock, &p->busy_lock);
+
if (rc == NGX_DONE) {
ft_type = NGX_HTTP_PROXY_FT_BUSY_LOCK;
@@ -1053,27 +1055,24 @@
if (p->upstream->peer.connection) {
if (ep->upstream_done && p->cachable) {
if (ngx_http_proxy_update_cache(p) == NGX_ERROR) {
- ngx_http_busy_unlock_cachable(p->lcf->busy_lock, &p->busy_lock);
+ ngx_http_busy_unlock(p->lcf->busy_lock, &p->busy_lock);
ngx_http_proxy_finalize_request(p, 0);
return;
}
- ngx_http_busy_unlock_cachable(p->lcf->busy_lock, &p->busy_lock);
-
} else if (ep->upstream_eof && p->cachable) {
/* TODO: check length & update cache */
if (ngx_http_proxy_update_cache(p) == NGX_ERROR) {
- ngx_http_busy_unlock_cachable(p->lcf->busy_lock, &p->busy_lock);
+ ngx_http_busy_unlock(p->lcf->busy_lock, &p->busy_lock);
ngx_http_proxy_finalize_request(p, 0);
return;
}
-
- ngx_http_busy_unlock_cachable(p->lcf->busy_lock, &p->busy_lock);
}
if (ep->upstream_done || ep->upstream_eof || ep->upstream_error) {
+ ngx_http_busy_unlock(p->lcf->busy_lock, &p->busy_lock);
ngx_http_proxy_close_connection(p);
}
}
@@ -1104,6 +1103,8 @@
ngx_log_debug(p->request->connection->log, "next upstream: %d" _ ft_type);
+ ngx_http_busy_unlock(p->lcf->busy_lock, &p->busy_lock);
+
if (ft_type != NGX_HTTP_PROXY_FT_HTTP_404) {
ngx_event_connect_peer_failed(&p->upstream->peer);
}