aboutsummaryrefslogtreecommitdiff
path: root/src/event/ngx_event_connect.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2003-10-31 07:10:36 +0000
committerIgor Sysoev <igor@sysoev.ru>2003-10-31 07:10:36 +0000
commit219d44dd5d6a2726f39dbb1fdb9ca2a66fd2ee24 (patch)
tree84da926421cdaabbe60205b3bf24d53825922510 /src/event/ngx_event_connect.c
parentb5910d497e51bac754b0a5bdbd58318b653e0859 (diff)
downloadnginx-219d44dd5d6a2726f39dbb1fdb9ca2a66fd2ee24.tar.gz
nginx-219d44dd5d6a2726f39dbb1fdb9ca2a66fd2ee24.zip
nginx-0.0.1-2003-10-31-10:10:36 import
Diffstat (limited to 'src/event/ngx_event_connect.c')
-rw-r--r--src/event/ngx_event_connect.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c
index e42efb8cb..2e4a33554 100644
--- a/src/event/ngx_event_connect.c
+++ b/src/event/ngx_event_connect.c
@@ -38,7 +38,10 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
pc->cached = 0;
pc->connection = NULL;
- if (pc->peers->number > 1) {
+ if (pc->peers->number == 1) {
+ peer = &pc->peers->peers[0];
+
+ } else {
/* there are several peers */
@@ -53,7 +56,10 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
}
}
- if (pc->peers->max_fails > 0) {
+ if (pc->peers->max_fails == 0) {
+ peer = &pc->peers->peers[pc->cur_peer];
+
+ } else {
/* the peers support a fault tolerance */
@@ -83,13 +89,8 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
}
}
- peer = &pc->peers->peers[pc->cur_peer];
-
/* ngx_unlock_mutex(pc->peers->mutex); */
-#if 0
- pc->addr_port_text = peer->addr_port_text;
-#endif
s = ngx_socket(AF_INET, SOCK_STREAM, IPPROTO_IP, 0);
@@ -263,6 +264,17 @@ ngx_log_debug(pc->log, "CONNECT: %s" _ peer->addr_port_text.data);
void ngx_event_connect_peer_failed(ngx_peer_connection_t *pc)
{
+ time_t now;
+
+ now = ngx_time();
+
+ /* ngx_lock_mutex(pc->peers->mutex); */
+
+ pc->peers->peers[pc->cur_peer].fails++;
+ pc->peers->peers[pc->cur_peer].accessed = now;
+
+ /* ngx_unlock_mutex(pc->peers->mutex); */
+
pc->cur_peer++;
if (pc->cur_peer >= pc->peers->number) {