Mercurial > hg > nginx-vendor-current
comparison src/core/ngx_rbtree.h @ 258:6ae1357b7b7c NGINX_0_4_14
nginx 0.4.14
*) Feature: the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
*) Feature: now configure detects system PCRE library on FreeBSD,
Linux, and NetBSD.
*) Bugfix: ngx_http_perl_module did not work with perl built with the
threads support; bug appeared in 0.3.38.
*) Bugfix: ngx_http_perl_module did not work if perl was called
recursively.
*) Bugfix: nginx ignored a host name in an request line.
*) Bugfix: a worker process may got caught in an endless loop, if a
FastCGI server sent too many data to the stderr.
*) Bugfix: the $upstream_response_time variable may be negative if the
system time was changed backward.
*) 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.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 27 Nov 2006 00:00:00 +0300 |
parents | 91372f004adf |
children | 29a6403156b0 |
comparison
equal
deleted
inserted
replaced
257:0e566ee1bcd5 | 258:6ae1357b7b7c |
---|---|
21 struct ngx_rbtree_node_s { | 21 struct ngx_rbtree_node_s { |
22 ngx_rbtree_key_t key; | 22 ngx_rbtree_key_t key; |
23 ngx_rbtree_node_t *left; | 23 ngx_rbtree_node_t *left; |
24 ngx_rbtree_node_t *right; | 24 ngx_rbtree_node_t *right; |
25 ngx_rbtree_node_t *parent; | 25 ngx_rbtree_node_t *parent; |
26 char color; | 26 u_char color; |
27 u_char data; | |
27 }; | 28 }; |
28 | 29 |
29 | 30 |
30 typedef struct ngx_rbtree_s ngx_rbtree_t; | 31 typedef struct ngx_rbtree_s ngx_rbtree_t; |
31 | 32 |
32 typedef ngx_rbtree_node_t *(*ngx_rbtree_insert_pt) (ngx_rbtree_node_t *root, | 33 typedef void (*ngx_rbtree_insert_pt) (ngx_rbtree_node_t *root, |
33 ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel); | 34 ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel); |
34 | 35 |
35 struct ngx_rbtree_s { | 36 struct ngx_rbtree_s { |
36 ngx_rbtree_node_t *root; | 37 ngx_rbtree_node_t *root; |
37 ngx_rbtree_node_t *sentinel; | 38 ngx_rbtree_node_t *sentinel; |
38 /* ngx_rbtree_insert_pt insert; */ | 39 ngx_rbtree_insert_pt insert; |
39 }; | 40 }; |
40 | 41 |
41 | 42 |
42 void ngx_rbtree_insert(ngx_thread_volatile ngx_rbtree_t *tree, | 43 void ngx_rbtree_insert(ngx_thread_volatile ngx_rbtree_t *tree, |
43 ngx_rbtree_node_t *node); | 44 ngx_rbtree_node_t *node); |
44 void ngx_rbtree_delete(ngx_thread_volatile ngx_rbtree_t *tree, | 45 void ngx_rbtree_delete(ngx_thread_volatile ngx_rbtree_t *tree, |
45 ngx_rbtree_node_t *node); | 46 ngx_rbtree_node_t *node); |
47 void ngx_rbtree_insert_value(ngx_rbtree_node_t *root, ngx_rbtree_node_t *node, | |
48 ngx_rbtree_node_t *sentinel); | |
49 void ngx_rbtree_insert_timer_value(ngx_rbtree_node_t *root, | |
50 ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel); | |
46 | 51 |
47 | 52 |
48 static ngx_inline ngx_rbtree_node_t * | 53 static ngx_inline ngx_rbtree_node_t * |
49 ngx_rbtree_min(ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel) | 54 ngx_rbtree_min(ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel) |
50 { | 55 { |