Deleted
Added
1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#ifndef _NXT_UPSTREAM_H_INCLUDED_ 8#define _NXT_UPSTREAM_H_INCLUDED_ 9 10 |
11typedef struct nxt_upstream_proxy_s nxt_upstream_proxy_t; 12typedef struct nxt_upstream_round_robin_s nxt_upstream_round_robin_t; 13typedef struct nxt_upstream_round_robin_server_s 14 nxt_upstream_round_robin_server_t; 15 16 17typedef void (*nxt_upstream_peer_ready_t)(nxt_task_t *task, 18 nxt_upstream_server_t *us); 19typedef void (*nxt_upstream_peer_error_t)(nxt_task_t *task, 20 nxt_upstream_server_t *us); 21 22 23typedef struct { 24 nxt_upstream_peer_ready_t ready; 25 nxt_upstream_peer_error_t error; 26} nxt_upstream_peer_state_t; 27 28 29typedef nxt_upstream_t *(*nxt_upstream_joint_create_t)( 30 nxt_router_temp_conf_t *tmcf, nxt_upstream_t *upstream); 31typedef void (*nxt_upstream_server_get_t)(nxt_task_t *task, 32 nxt_upstream_server_t *us); 33 34 35typedef struct { 36 nxt_upstream_joint_create_t joint_create; 37 nxt_upstream_server_get_t get; 38} nxt_upstream_server_proto_t; 39 40 41struct nxt_upstream_s { 42 const nxt_upstream_server_proto_t *proto; 43 44 union { 45 nxt_upstream_proxy_t *proxy; 46 nxt_upstream_round_robin_t *round_robin; 47 } type; 48 49 nxt_str_t name; 50}; 51 52 53struct nxt_upstreams_s { 54 uint32_t items; 55 nxt_upstream_t upstream[0]; 56}; 57 58 59struct nxt_upstream_server_s { 60 nxt_sockaddr_t *sockaddr; 61 const nxt_upstream_peer_state_t *state; 62 nxt_upstream_t *upstream; 63 64 uint8_t protocol; 65 66 union { 67 nxt_upstream_round_robin_server_t *round_robin; 68 } server; 69 70 union { 71 nxt_http_peer_t *http; 72 } peer; 73}; 74 75 76nxt_int_t nxt_upstream_round_robin_create(nxt_task_t *task, 77 nxt_router_temp_conf_t *tmcf, nxt_conf_value_t *upstream_conf, 78 nxt_upstream_t *upstream); 79 80 |
81#endif /* _NXT_UPSTREAM_H_INCLUDED_ */ |