diff options
author | Igor Sysoev <igor@sysoev.ru> | 2006-11-27 11:18:50 +0000 |
---|---|---|
committer | Jonathan Kolb <jon@b0g.us> | 2006-11-27 11:18:50 +0000 |
commit | 03789a0a1c208ac62bee429497b9f6a46c0aa5ff (patch) | |
tree | 32f1bb5197e419a4dc9c8d7fa2e05eaf86c1998f /src/event | |
parent | e0cae6b0a5df2466cdb9749dc1a37664fff21ff5 (diff) | |
download | nginx-0.4.tar.gz |
*) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
*) Bugfix: ngx_http_perl_module did nto work with perl built with the
threads support; bug appeared in 0.3.38.
*) Bugfix: !!!!!!!!!! segfault perl.
*) Bugfix: !!!!!!!!!! recursive perl.
*) Bugfix: nginx ignored a host name in an request line.
*) Bugfix: !!!!!!!!!! endless loop when too many FastCGI sent too many
to stderr
*) Bugfix: !!!!!!!! negative upstream response time
*) Bugfix: the "Auth-Login-Attempt" parameter was not sent to IMAP/POP3
proxy authentication server when POP3 was used.
*) Bugfix: a segmentation fault might occur if connect to IMAP/POP3
proxy authentication server failed.
Diffstat (limited to 'src/event')
-rw-r--r-- | src/event/ngx_event.c | 16 | ||||
-rw-r--r-- | src/event/ngx_event_pipe.c | 8 | ||||
-rw-r--r-- | src/event/ngx_event_timer.c | 1 |
3 files changed, 10 insertions, 15 deletions
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c index 66baf1aec..563186e3e 100644 --- a/src/event/ngx_event.c +++ b/src/event/ngx_event.c @@ -483,18 +483,7 @@ ngx_event_module_init(ngx_cycle_t *cycle) return NGX_OK; } - if (ngx_accept_mutex_ptr) { - - /* reinit ngx_accept_mutex */ - - if (ngx_shmtx_create(&ngx_accept_mutex, (void *) ngx_accept_mutex_ptr, - ccf->lock_file.data, cycle->log) - != NGX_OK) - { - return NGX_ERROR; - } - return NGX_OK; } @@ -528,8 +517,7 @@ ngx_event_module_init(ngx_cycle_t *cycle) ngx_accept_mutex_ptr = (ngx_atomic_t *) shared; - if (ngx_shmtx_create(&ngx_accept_mutex, shared, ccf->lock_file.data, - cycle->log) + if (ngx_shmtx_create(&ngx_accept_mutex, shared, cycle->lock_file.data) != NGX_OK) { return NGX_ERROR; @@ -596,7 +584,7 @@ ngx_event_process_init(ngx_cycle_t *cycle) ccf = (ngx_core_conf_t *) ngx_get_conf(cycle->conf_ctx, ngx_core_module); ecf = ngx_event_get_conf(cycle->conf_ctx, ngx_event_core_module); - if (ccf->worker_processes > 1 && ecf->accept_mutex) { + if (ccf->master && ccf->worker_processes > 1 && ecf->accept_mutex) { ngx_use_accept_mutex = 1; ngx_accept_mutex_held = 0; ngx_accept_mutex_delay = ecf->accept_mutex_delay; diff --git a/src/event/ngx_event_pipe.c b/src/event/ngx_event_pipe.c index bb371691b..59b89b0f9 100644 --- a/src/event/ngx_event_pipe.c +++ b/src/event/ngx_event_pipe.c @@ -295,6 +295,7 @@ ngx_event_pipe_read_upstream(ngx_event_pipe_t *p) p->read_length += n; cl = chain; + p->free_raw_bufs = NULL; while (cl && n > 0) { @@ -322,7 +323,12 @@ ngx_event_pipe_read_upstream(ngx_event_pipe_t *p) } } - p->free_raw_bufs = cl; + if (cl) { + for (ln = cl; ln->next; ln = ln->next) { /* void */ } + + ln->next = p->free_raw_bufs; + p->free_raw_bufs = cl; + } } #if (NGX_DEBUG) diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c index 3eb23f6d3..ababb819a 100644 --- a/src/event/ngx_event_timer.c +++ b/src/event/ngx_event_timer.c @@ -23,6 +23,7 @@ ngx_event_timer_init(ngx_log_t *log) { ngx_event_timer_rbtree.root = &ngx_event_timer_sentinel; ngx_event_timer_rbtree.sentinel = &ngx_event_timer_sentinel; + ngx_event_timer_rbtree.insert = ngx_rbtree_insert_timer_value; #if (NGX_THREADS) |