summaryrefslogtreecommitdiffhomepage
path: root/src/event
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2003-10-02 05:39:37 +0000
committerIgor Sysoev <igor@sysoev.ru>2003-10-02 05:39:37 +0000
commit87a01ea908356173d6387aea2af94ad0fe236bb4 (patch)
tree1abe9d49f56322c179e224b9154a9c871d13dacb /src/event
parent2cdd7e9e5bd7c0ddcc5dbf57aa3ffb998fd3335f (diff)
downloadnginx-87a01ea908356173d6387aea2af94ad0fe236bb4.tar.gz
nginx-87a01ea908356173d6387aea2af94ad0fe236bb4.tar.bz2
nginx-0.0.1-2003-10-02-09:39:37 import
Diffstat (limited to '')
-rw-r--r--src/event/ngx_event_connect.c32
-rw-r--r--src/event/ngx_event_connect.h22
2 files changed, 35 insertions, 19 deletions
diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c
index 17ef6a0be..f9ed3adc5 100644
--- a/src/event/ngx_event_connect.c
+++ b/src/event/ngx_event_connect.c
@@ -1,4 +1,7 @@
+#include <ngx_config.h>
+#include <ngx_core.h>
+#include <ngx_event.h>
#include <ngx_event_connect.h>
@@ -6,10 +9,14 @@
int ngx_event_connect_peer(ngx_peer_connection_t *pc)
{
+ int rc, instance;
time_t now;
- ngx_peer_r *peer;
+ ngx_err_t err;
+ ngx_peer_t *peer;
ngx_socket_t s;
- struct sockaddr_in *addr;
+ ngx_event_t *rev, *wev;
+ ngx_connection_t *c;
+ struct sockaddr_in addr;
now = ngx_time();
@@ -31,6 +38,8 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
pc->cached = 0;
pc->connection = NULL;
+ peer = &pc->peers->peers[0];
+
if (pc->peers->number > 1) {
/* there are several peers */
@@ -41,7 +50,7 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
pc->cur_peer = pc->peers->current++;
- if (cp->peers->current >= cp->peers->number) {
+ if (pc->peers->current >= pc->peers->number) {
pc->peers->current = 0;
}
}
@@ -69,6 +78,7 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
if (pc->tries == 0) {
/* ngx_unlock_mutex(pc->peers->mutex); */
+
return NGX_ERROR;
}
}
@@ -77,7 +87,9 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
/* 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);
@@ -163,13 +175,11 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
}
}
- addr = p->sockaddr;
+ addr.sin_family = AF_INET;
+ addr.sin_addr.s_addr = peer->addr;
+ addr.sin_port = htons(peer->port);
- addr->sin_family = AF_INET;
- addr->sin_addr.s_addr = peer->addr;
- addr->sin_port = htons(peer->port);
-
- rc = connect(s, p->sockaddr, sizeof(struct sockaddr_in));
+ rc = connect(s, (struct sockaddr *) &addr, sizeof(struct sockaddr_in));
if (rc == -1) {
err = ngx_socket_errno;
@@ -185,9 +195,7 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
}
}
- c->data = ???;
-
-
+ return NGX_OK;
}
diff --git a/src/event/ngx_event_connect.h b/src/event/ngx_event_connect.h
index 6626e2ec7..16068c166 100644
--- a/src/event/ngx_event_connect.h
+++ b/src/event/ngx_event_connect.h
@@ -7,6 +7,9 @@
#include <ngx_event.h>
+#define NGX_CONNECT_ERROR -10
+
+
typedef struct {
u_int32_t addr;
ngx_str_t host;
@@ -19,15 +22,16 @@ typedef struct {
typedef struct {
- int current;
- int number;
- int max_fails;
- int fail_timeout;
+ int current;
+ int number;
+ int max_fails;
+ int fail_timeout;
+ int last_cached;
- /* ngx_mutex_t *mutex; */
- ngx_connection_t *cached;
+ /* ngx_mutex_t *mutex; */
+ ngx_connection_t **cached;
- ngx_peer_t peers[1];
+ ngx_peer_t peers[1];
} ngx_peers_t;
@@ -46,4 +50,8 @@ typedef struct {
} ngx_peer_connection_t;
+int ngx_event_connect_peer(ngx_peer_connection_t *pc);
+void ngx_event_connect_peer_failed(ngx_peer_connection_t *pc);
+
+
#endif /* _NGX_EVENT_CONNECT_H_INCLUDED_ */