diff src/event/ngx_event_connect.c @ 161:88abd07d9f62

nginx-0.0.1-2003-10-27-19:16:17 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 27 Oct 2003 16:16:17 +0000
parents 5afee0074707
children 96993d4d5067
line wrap: on
line diff
--- a/src/event/ngx_event_connect.c
+++ b/src/event/ngx_event_connect.c
@@ -38,8 +38,6 @@ int ngx_event_connect_peer(ngx_peer_conn
     pc->cached = 0;
     pc->connection = NULL;
 
-    peer = &pc->peers->peers[0];
-
     if (pc->peers->number > 1) {
 
         /* there are several peers */
@@ -85,6 +83,8 @@ int ngx_event_connect_peer(ngx_peer_conn
         }
     }
 
+    peer = &pc->peers->peers[pc->cur_peer];
+
     /* ngx_unlock_mutex(pc->peers->mutex); */
 
 #if 0
@@ -182,6 +182,8 @@ int ngx_event_connect_peer(ngx_peer_conn
     addr.sin_addr.s_addr = peer->addr;
     addr.sin_port = peer->port;
 
+ngx_log_debug(pc->log, "CONNECT: %s" _ peer->addr_port_text.data);
+
     rc = connect(s, (struct sockaddr *) &addr, sizeof(struct sockaddr_in));
 
     if (rc == -1) {
@@ -232,6 +234,12 @@ int ngx_event_connect_peer(ngx_peer_conn
 
 void ngx_event_connect_peer_failed(ngx_peer_connection_t *pc)
 {
+    pc->cur_peer++;
+
+    if (pc->cur_peer >= pc->peers->number) {
+        pc->cur_peer = 0;
+    }
+
     pc->tries--;
 
     return;