Mercurial > hg > nginx
comparison src/event/ngx_event_connect.c @ 168:ba5dbb949603
nginx-0.0.1-2003-10-31-10:10:36 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 31 Oct 2003 07:10:36 +0000 |
parents | 8aef3c72e5da |
children | edf29bb717da |
comparison
equal
deleted
inserted
replaced
167:8aef3c72e5da | 168:ba5dbb949603 |
---|---|
36 } | 36 } |
37 | 37 |
38 pc->cached = 0; | 38 pc->cached = 0; |
39 pc->connection = NULL; | 39 pc->connection = NULL; |
40 | 40 |
41 if (pc->peers->number > 1) { | 41 if (pc->peers->number == 1) { |
42 peer = &pc->peers->peers[0]; | |
43 | |
44 } else { | |
42 | 45 |
43 /* there are several peers */ | 46 /* there are several peers */ |
44 | 47 |
45 if (pc->tries == pc->peers->number) { | 48 if (pc->tries == pc->peers->number) { |
46 | 49 |
51 if (pc->peers->current >= pc->peers->number) { | 54 if (pc->peers->current >= pc->peers->number) { |
52 pc->peers->current = 0; | 55 pc->peers->current = 0; |
53 } | 56 } |
54 } | 57 } |
55 | 58 |
56 if (pc->peers->max_fails > 0) { | 59 if (pc->peers->max_fails == 0) { |
60 peer = &pc->peers->peers[pc->cur_peer]; | |
61 | |
62 } else { | |
57 | 63 |
58 /* the peers support a fault tolerance */ | 64 /* the peers support a fault tolerance */ |
59 | 65 |
60 for ( ;; ) { | 66 for ( ;; ) { |
61 peer = &pc->peers->peers[pc->cur_peer]; | 67 peer = &pc->peers->peers[pc->cur_peer]; |
81 } | 87 } |
82 } | 88 } |
83 } | 89 } |
84 } | 90 } |
85 | 91 |
86 peer = &pc->peers->peers[pc->cur_peer]; | |
87 | |
88 /* ngx_unlock_mutex(pc->peers->mutex); */ | 92 /* ngx_unlock_mutex(pc->peers->mutex); */ |
89 | 93 |
90 #if 0 | |
91 pc->addr_port_text = peer->addr_port_text; | |
92 #endif | |
93 | 94 |
94 s = ngx_socket(AF_INET, SOCK_STREAM, IPPROTO_IP, 0); | 95 s = ngx_socket(AF_INET, SOCK_STREAM, IPPROTO_IP, 0); |
95 | 96 |
96 if (s == -1) { | 97 if (s == -1) { |
97 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno, | 98 ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno, |
261 } | 262 } |
262 | 263 |
263 | 264 |
264 void ngx_event_connect_peer_failed(ngx_peer_connection_t *pc) | 265 void ngx_event_connect_peer_failed(ngx_peer_connection_t *pc) |
265 { | 266 { |
267 time_t now; | |
268 | |
269 now = ngx_time(); | |
270 | |
271 /* ngx_lock_mutex(pc->peers->mutex); */ | |
272 | |
273 pc->peers->peers[pc->cur_peer].fails++; | |
274 pc->peers->peers[pc->cur_peer].accessed = now; | |
275 | |
276 /* ngx_unlock_mutex(pc->peers->mutex); */ | |
277 | |
266 pc->cur_peer++; | 278 pc->cur_peer++; |
267 | 279 |
268 if (pc->cur_peer >= pc->peers->number) { | 280 if (pc->cur_peer >= pc->peers->number) { |
269 pc->cur_peer = 0; | 281 pc->cur_peer = 0; |
270 } | 282 } |