diff 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
line wrap: on
line diff
--- 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_conn
     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_conn
             }
         }
 
-        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_conn
         }
     }
 
-    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" _ p
 
 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) {