3 * Copyright (C) Igor Sysoev
4 * Copyright (C) Nginx, Inc.
8 #ifndef _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_
9 #define _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_
12 #include <ngx_config.h>
18 struct sockaddr
*sockaddr
;
22 ngx_int_t current_weight
;
23 ngx_int_t effective_weight
;
33 ngx_uint_t down
; /* unsigned down:1; */
36 ngx_ssl_session_t
*ssl_session
; /* local to a process */
38 } ngx_http_upstream_rr_peer_t
;
41 typedef struct ngx_http_upstream_rr_peers_s ngx_http_upstream_rr_peers_t
;
43 struct ngx_http_upstream_rr_peers_s
{
46 /* ngx_mutex_t *mutex; */
48 ngx_uint_t total_weight
;
55 ngx_http_upstream_rr_peers_t
*next
;
57 ngx_http_upstream_rr_peer_t peer
[1];
62 ngx_http_upstream_rr_peers_t
*peers
;
66 } ngx_http_upstream_rr_peer_data_t
;
69 ngx_int_t
ngx_http_upstream_init_round_robin(ngx_conf_t
*cf
,
70 ngx_http_upstream_srv_conf_t
*us
);
71 ngx_int_t
ngx_http_upstream_init_round_robin_peer(ngx_http_request_t
*r
,
72 ngx_http_upstream_srv_conf_t
*us
);
73 ngx_int_t
ngx_http_upstream_create_round_robin_peer(ngx_http_request_t
*r
,
74 ngx_http_upstream_resolved_t
*ur
);
75 ngx_int_t
ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t
*pc
,
77 void ngx_http_upstream_free_round_robin_peer(ngx_peer_connection_t
*pc
,
78 void *data
, ngx_uint_t state
);
82 ngx_http_upstream_set_round_robin_peer_session(ngx_peer_connection_t
*pc
,
84 void ngx_http_upstream_save_round_robin_peer_session(ngx_peer_connection_t
*pc
,
89 #endif /* _NGX_HTTP_UPSTREAM_ROUND_ROBIN_H_INCLUDED_ */