10a11,80 > typedef struct nxt_upstream_proxy_s nxt_upstream_proxy_t; > typedef struct nxt_upstream_round_robin_s nxt_upstream_round_robin_t; > typedef struct nxt_upstream_round_robin_server_s > nxt_upstream_round_robin_server_t; > > > typedef void (*nxt_upstream_peer_ready_t)(nxt_task_t *task, > nxt_upstream_server_t *us); > typedef void (*nxt_upstream_peer_error_t)(nxt_task_t *task, > nxt_upstream_server_t *us); > > > typedef struct { > nxt_upstream_peer_ready_t ready; > nxt_upstream_peer_error_t error; > } nxt_upstream_peer_state_t; > > > typedef nxt_upstream_t *(*nxt_upstream_joint_create_t)( > nxt_router_temp_conf_t *tmcf, nxt_upstream_t *upstream); > typedef void (*nxt_upstream_server_get_t)(nxt_task_t *task, > nxt_upstream_server_t *us); > > > typedef struct { > nxt_upstream_joint_create_t joint_create; > nxt_upstream_server_get_t get; > } nxt_upstream_server_proto_t; > > > struct nxt_upstream_s { > const nxt_upstream_server_proto_t *proto; > > union { > nxt_upstream_proxy_t *proxy; > nxt_upstream_round_robin_t *round_robin; > } type; > > nxt_str_t name; > }; > > > struct nxt_upstreams_s { > uint32_t items; > nxt_upstream_t upstream[0]; > }; > > > struct nxt_upstream_server_s { > nxt_sockaddr_t *sockaddr; > const nxt_upstream_peer_state_t *state; > nxt_upstream_t *upstream; > > uint8_t protocol; > > union { > nxt_upstream_round_robin_server_t *round_robin; > } server; > > union { > nxt_http_peer_t *http; > } peer; > }; > > > nxt_int_t nxt_upstream_round_robin_create(nxt_task_t *task, > nxt_router_temp_conf_t *tmcf, nxt_conf_value_t *upstream_conf, > nxt_upstream_t *upstream); > >