Mercurial > hg > nginx-ranges
comparison src/http/ngx_http_upstream_round_robin.h @ 260:0effe91f6083 NGINX_0_5_0
nginx 0.5.0
*) Change: the parameters in the "%name" form in the "log_format"
directive are not supported anymore.
*) Change: the "proxy_upstream_max_fails",
"proxy_upstream_fail_timeout", "fastcgi_upstream_max_fails",
"fastcgi_upstream_fail_timeout", "memcached_upstream_max_fails", and
"memcached_upstream_fail_timeout" directives are not supported
anymore.
*) Feature: the "server" directive in the "upstream" context supports
the "max_fails", "fail_timeout", and "down" parameters.
*) Feature: the "ip_hash" directive inside the "upstream" block.
*) Feature: the WAIT status in the "Auth-Status" header line of the
IMAP/POP3 proxy authentication server response.
*) Bugfix: nginx could not be built on 64-bit platforms; bug appeared
in 0.4.14.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 04 Dec 2006 00:00:00 +0300 |
parents | |
children | 29a6403156b0 |
comparison
equal
deleted
inserted
replaced
259:c68f18041059 | 260:0effe91f6083 |
---|---|
1 | |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4 */ | |
5 | |
6 | |
7 #ifndef _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ | |
8 #define _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ | |
9 | |
10 | |
11 #include <ngx_config.h> | |
12 #include <ngx_core.h> | |
13 #include <ngx_http.h> | |
14 | |
15 | |
16 typedef struct { | |
17 struct sockaddr *sockaddr; | |
18 socklen_t socklen; | |
19 ngx_str_t name; | |
20 | |
21 ngx_uint_t current_weight; | |
22 ngx_uint_t weight; | |
23 | |
24 ngx_uint_t fails; | |
25 time_t accessed; | |
26 | |
27 ngx_uint_t max_fails; | |
28 time_t fail_timeout; | |
29 | |
30 ngx_uint_t down; /* unsigned down:1; */ | |
31 | |
32 #if (NGX_SSL) | |
33 ngx_ssl_session_t *ssl_session; | |
34 #endif | |
35 } ngx_http_upstream_rr_peer_t; | |
36 | |
37 | |
38 typedef struct { | |
39 ngx_uint_t current; | |
40 | |
41 ngx_uint_t number; | |
42 ngx_uint_t last_cached; | |
43 | |
44 /* ngx_mutex_t *mutex; */ | |
45 ngx_connection_t **cached; | |
46 | |
47 ngx_str_t *name; | |
48 | |
49 ngx_http_upstream_rr_peer_t peer[1]; | |
50 } ngx_http_upstream_rr_peers_t; | |
51 | |
52 | |
53 typedef struct { | |
54 ngx_http_upstream_rr_peers_t *peers; | |
55 ngx_uint_t current; | |
56 uintptr_t *tried; | |
57 uintptr_t data; | |
58 } ngx_http_upstream_rr_peer_data_t; | |
59 | |
60 | |
61 ngx_int_t ngx_http_upstream_init_round_robin(ngx_conf_t *cf, | |
62 ngx_http_upstream_srv_conf_t *us); | |
63 ngx_int_t ngx_http_upstream_init_round_robin_peer(ngx_http_request_t *r, | |
64 ngx_http_upstream_srv_conf_t *us); | |
65 ngx_int_t ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, | |
66 void *data); | |
67 void ngx_http_upstream_free_round_robin_peer(ngx_peer_connection_t *pc, | |
68 void *data, ngx_uint_t state); | |
69 | |
70 #if (NGX_HTTP_SSL) | |
71 void ngx_http_upstream_save_round_robin_peer(ngx_peer_connection_t *pc, | |
72 void *data); | |
73 #endif | |
74 | |
75 | |
76 | |
77 #endif /* _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ */ |