Mercurial > hg > nginx-quic
annotate src/http/ngx_http_upstream_round_robin.h @ 5922:68f64bc17fa4
Syslog: allowed underscore symbol in tag (ticket #667).
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Thu, 20 Nov 2014 20:02:21 +0300 |
parents | efc84a5723b3 |
children | 94ce52db3367 |
rev | line source |
---|---|
884 | 1 |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4412 | 4 * Copyright (C) Nginx, Inc. |
884 | 5 */ |
6 | |
7 | |
8 #ifndef _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ | |
9 #define _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ | |
10 | |
11 | |
12 #include <ngx_config.h> | |
13 #include <ngx_core.h> | |
14 #include <ngx_http.h> | |
15 | |
16 | |
17 typedef struct { | |
18 struct sockaddr *sockaddr; | |
19 socklen_t socklen; | |
20 ngx_str_t name; | |
5717
efc84a5723b3
Upstream: generic hash module.
Roman Arutyunyan <arut@nginx.com>
parents:
5136
diff
changeset
|
21 ngx_str_t server; |
884 | 22 |
1344
8f5b5641966c
fair upstream weight balancer
Igor Sysoev <igor@sysoev.ru>
parents:
1284
diff
changeset
|
23 ngx_int_t current_weight; |
4621
c90801720a0c
Upstream: smooth weighted round-robin balancing.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
24 ngx_int_t effective_weight; |
1344
8f5b5641966c
fair upstream weight balancer
Igor Sysoev <igor@sysoev.ru>
parents:
1284
diff
changeset
|
25 ngx_int_t weight; |
884 | 26 |
27 ngx_uint_t fails; | |
28 time_t accessed; | |
4207
4fc91bae6f83
Better recheck of dead upstream servers.
Maxim Dounin <mdounin@mdounin.ru>
parents:
3264
diff
changeset
|
29 time_t checked; |
884 | 30 |
31 ngx_uint_t max_fails; | |
32 time_t fail_timeout; | |
33 | |
34 ngx_uint_t down; /* unsigned down:1; */ | |
35 | |
1344
8f5b5641966c
fair upstream weight balancer
Igor Sysoev <igor@sysoev.ru>
parents:
1284
diff
changeset
|
36 #if (NGX_HTTP_SSL) |
1284
be2b895d31e0
fix segfault when session was freed twice
Igor Sysoev <igor@sysoev.ru>
parents:
954
diff
changeset
|
37 ngx_ssl_session_t *ssl_session; /* local to a process */ |
884 | 38 #endif |
39 } ngx_http_upstream_rr_peer_t; | |
40 | |
41 | |
1378 | 42 typedef struct ngx_http_upstream_rr_peers_s ngx_http_upstream_rr_peers_t; |
43 | |
44 struct ngx_http_upstream_rr_peers_s { | |
884 | 45 ngx_uint_t number; |
46 | |
47 /* ngx_mutex_t *mutex; */ | |
48 | |
4655
382c523d253a
Upstream: weights support in ip_hash balancer.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4621
diff
changeset
|
49 ngx_uint_t total_weight; |
382c523d253a
Upstream: weights support in ip_hash balancer.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4621
diff
changeset
|
50 |
382c523d253a
Upstream: weights support in ip_hash balancer.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4621
diff
changeset
|
51 unsigned single:1; |
382c523d253a
Upstream: weights support in ip_hash balancer.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4621
diff
changeset
|
52 unsigned weighted:1; |
382c523d253a
Upstream: weights support in ip_hash balancer.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4621
diff
changeset
|
53 |
884 | 54 ngx_str_t *name; |
55 | |
1378 | 56 ngx_http_upstream_rr_peers_t *next; |
57 | |
884 | 58 ngx_http_upstream_rr_peer_t peer[1]; |
1378 | 59 }; |
884 | 60 |
61 | |
62 typedef struct { | |
63 ngx_http_upstream_rr_peers_t *peers; | |
64 ngx_uint_t current; | |
954
f16424aa5d89
style fix: remove trailing spaces
Igor Sysoev <igor@sysoev.ru>
parents:
884
diff
changeset
|
65 uintptr_t *tried; |
884 | 66 uintptr_t data; |
67 } ngx_http_upstream_rr_peer_data_t; | |
68 | |
69 | |
70 ngx_int_t ngx_http_upstream_init_round_robin(ngx_conf_t *cf, | |
71 ngx_http_upstream_srv_conf_t *us); | |
72 ngx_int_t ngx_http_upstream_init_round_robin_peer(ngx_http_request_t *r, | |
73 ngx_http_upstream_srv_conf_t *us); | |
1658 | 74 ngx_int_t ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r, |
75 ngx_http_upstream_resolved_t *ur); | |
884 | 76 ngx_int_t ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, |
77 void *data); | |
78 void ngx_http_upstream_free_round_robin_peer(ngx_peer_connection_t *pc, | |
79 void *data, ngx_uint_t state); | |
80 | |
81 #if (NGX_HTTP_SSL) | |
1284
be2b895d31e0
fix segfault when session was freed twice
Igor Sysoev <igor@sysoev.ru>
parents:
954
diff
changeset
|
82 ngx_int_t |
be2b895d31e0
fix segfault when session was freed twice
Igor Sysoev <igor@sysoev.ru>
parents:
954
diff
changeset
|
83 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
|
84 void *data); |
be2b895d31e0
fix segfault when session was freed twice
Igor Sysoev <igor@sysoev.ru>
parents:
954
diff
changeset
|
85 void ngx_http_upstream_save_round_robin_peer_session(ngx_peer_connection_t *pc, |
884 | 86 void *data); |
87 #endif | |
88 | |
89 | |
90 #endif /* _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ */ |