mirror of
https://github.com/nginx/nginx.git
synced 2024-12-01 13:09:10 -06:00
sort upstream weights
This commit is contained in:
parent
6876bcdad6
commit
7a8e33993a
@ -9,6 +9,7 @@
|
||||
#include <ngx_http.h>
|
||||
|
||||
|
||||
static int ngx_http_upstream_cmp_servers(const void *one, const void *two);
|
||||
static ngx_uint_t
|
||||
ngx_http_upstream_get_peer(ngx_http_upstream_rr_peers_t *peers);
|
||||
|
||||
@ -69,6 +70,10 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
|
||||
|
||||
us->peer.data = peers;
|
||||
|
||||
ngx_sort(&peers->peer[0], (size_t) n,
|
||||
sizeof(ngx_http_upstream_rr_peer_t),
|
||||
ngx_http_upstream_cmp_servers);
|
||||
|
||||
/* backup servers */
|
||||
|
||||
n = 0;
|
||||
@ -118,6 +123,10 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
|
||||
|
||||
peers->next = backup;
|
||||
|
||||
ngx_sort(&backup->peer[0], (size_t) n,
|
||||
sizeof(ngx_http_upstream_rr_peer_t),
|
||||
ngx_http_upstream_cmp_servers);
|
||||
|
||||
return NGX_OK;
|
||||
}
|
||||
|
||||
@ -179,6 +188,18 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
ngx_http_upstream_cmp_servers(const void *one, const void *two)
|
||||
{
|
||||
ngx_http_upstream_rr_peer_t *first, *second;
|
||||
|
||||
first = (ngx_http_upstream_rr_peer_t *) one;
|
||||
second = (ngx_http_upstream_rr_peer_t *) two;
|
||||
|
||||
return (first->weight < second->weight);
|
||||
}
|
||||
|
||||
|
||||
ngx_int_t
|
||||
ngx_http_upstream_init_round_robin_peer(ngx_http_request_t *r,
|
||||
ngx_http_upstream_srv_conf_t *us)
|
||||
|
Loading…
Reference in New Issue
Block a user