Mercurial > hg > nginx
annotate src/http/ngx_http_upstream_round_robin.h @ 4292:b272408fa698
Version bump.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Tue, 15 Nov 2011 20:33:37 +0000 |
parents | 4fc91bae6f83 |
children | d620f497c50f |
rev | line source |
---|---|
884 | 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 | |
1344
8f5b5641966c
fair upstream weight balancer
Igor Sysoev <igor@sysoev.ru>
parents:
1284
diff
changeset
|
21 ngx_int_t current_weight; |
8f5b5641966c
fair upstream weight balancer
Igor Sysoev <igor@sysoev.ru>
parents:
1284
diff
changeset
|
22 ngx_int_t weight; |
884 | 23 |
24 ngx_uint_t fails; | |
25 time_t accessed; | |
4207
4fc91bae6f83
Better recheck of dead upstream servers.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3264
diff
changeset
|
26 time_t checked; |
884 | 27 |
28 ngx_uint_t max_fails; | |
29 time_t fail_timeout; | |
30 | |
31 ngx_uint_t down; /* unsigned down:1; */ | |
32 | |
1344
8f5b5641966c
fair upstream weight balancer
Igor Sysoev <igor@sysoev.ru>
parents:
1284
diff
changeset
|
33 #if (NGX_HTTP_SSL) |
1284
be2b895d31e0
fix segfault when session was freed twice
Igor Sysoev <igor@sysoev.ru>
parents:
954
diff
changeset
|
34 ngx_ssl_session_t *ssl_session; /* local to a process */ |
884 | 35 #endif |
36 } ngx_http_upstream_rr_peer_t; | |
37 | |
38 | |
1378 | 39 typedef struct ngx_http_upstream_rr_peers_s ngx_http_upstream_rr_peers_t; |
40 | |
41 struct ngx_http_upstream_rr_peers_s { | |
42 ngx_uint_t single; /* unsigned single:1; */ | |
884 | 43 ngx_uint_t number; |
44 ngx_uint_t last_cached; | |
45 | |
46 /* ngx_mutex_t *mutex; */ | |
47 ngx_connection_t **cached; | |
48 | |
49 ngx_str_t *name; | |
50 | |
1378 | 51 ngx_http_upstream_rr_peers_t *next; |
52 | |
884 | 53 ngx_http_upstream_rr_peer_t peer[1]; |
1378 | 54 }; |
884 | 55 |
56 | |
57 typedef struct { | |
58 ngx_http_upstream_rr_peers_t *peers; | |
59 ngx_uint_t current; | |
954
f16424aa5d89
style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
884
diff
changeset
|
60 uintptr_t *tried; |
884 | 61 uintptr_t data; |
62 } ngx_http_upstream_rr_peer_data_t; | |
63 | |
64 | |
65 ngx_int_t ngx_http_upstream_init_round_robin(ngx_conf_t *cf, | |
66 ngx_http_upstream_srv_conf_t *us); | |
67 ngx_int_t ngx_http_upstream_init_round_robin_peer(ngx_http_request_t *r, | |
68 ngx_http_upstream_srv_conf_t *us); | |
1658 | 69 ngx_int_t ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r, |
70 ngx_http_upstream_resolved_t *ur); | |
884 | 71 ngx_int_t ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, |
72 void *data); | |
73 void ngx_http_upstream_free_round_robin_peer(ngx_peer_connection_t *pc, | |
74 void *data, ngx_uint_t state); | |
75 | |
76 #if (NGX_HTTP_SSL) | |
1284
be2b895d31e0
fix segfault when session was freed twice
Igor Sysoev <igor@sysoev.ru>
parents:
954
diff
changeset
|
77 ngx_int_t |
be2b895d31e0
fix segfault when session was freed twice
Igor Sysoev <igor@sysoev.ru>
parents:
954
diff
changeset
|
78 ngx_http_upstream_set_round_robin_peer_session(ngx_peer_connection_t *pc, |
be2b895d31e0
fix segfault when session was freed twice
Igor Sysoev <igor@sysoev.ru>
parents:
954
diff
changeset
|
79 void *data); |
be2b895d31e0
fix segfault when session was freed twice
Igor Sysoev <igor@sysoev.ru>
parents:
954
diff
changeset
|
80 void ngx_http_upstream_save_round_robin_peer_session(ngx_peer_connection_t *pc, |
884 | 81 void *data); |
82 #endif | |
83 | |
84 | |
85 #endif /* _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ */ |