nginx-0.0.1-2003-10-27-19:16:17 import

This commit is contained in:
Igor Sysoev 2003-10-27 16:16:17 +00:00
parent 10fc9ef775
commit 425a42ce3d
5 changed files with 19 additions and 4 deletions

View File

@ -201,7 +201,7 @@ static int ngx_kqueue_add_event(ngx_event_t *ev, int event, u_int flags)
{ {
c = ev->data; c = ev->data;
ngx_log_error(NGX_LOG_ALERT, ev->log, 0, ngx_log_error(NGX_LOG_ALERT, ev->log, 0,
"previous event were not passed in kernel", c->fd); "previous event on #%d were not passed in kernel", c->fd);
return NGX_ERROR; return NGX_ERROR;
} }

View File

@ -38,8 +38,6 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
pc->cached = 0; pc->cached = 0;
pc->connection = NULL; pc->connection = NULL;
peer = &pc->peers->peers[0];
if (pc->peers->number > 1) { if (pc->peers->number > 1) {
/* there are several peers */ /* there are several peers */
@ -85,6 +83,8 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
} }
} }
peer = &pc->peers->peers[pc->cur_peer];
/* ngx_unlock_mutex(pc->peers->mutex); */ /* ngx_unlock_mutex(pc->peers->mutex); */
#if 0 #if 0
@ -182,6 +182,8 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
addr.sin_addr.s_addr = peer->addr; addr.sin_addr.s_addr = peer->addr;
addr.sin_port = peer->port; 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)); rc = connect(s, (struct sockaddr *) &addr, sizeof(struct sockaddr_in));
if (rc == -1) { if (rc == -1) {
@ -232,6 +234,12 @@ int ngx_event_connect_peer(ngx_peer_connection_t *pc)
void ngx_event_connect_peer_failed(ngx_peer_connection_t *pc) 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--; pc->tries--;
return; return;

View File

@ -457,6 +457,7 @@ static void ngx_http_proxy_send_request(ngx_http_proxy_ctx_t *p)
return; return;
} }
ngx_event_connect_peer_failed(&p->upstream);
ngx_http_proxy_close_connection(c); ngx_http_proxy_close_connection(c);
} }

View File

@ -629,7 +629,7 @@ static void ngx_http_process_request_headers(ngx_event_t *rev)
return; return;
} }
if (r->header_timeout_set) { if (rev->timer_set) {
ngx_del_timer(rev); ngx_del_timer(rev);
} }

View File

@ -157,6 +157,12 @@ int ngx_http_special_response_handler(ngx_http_request_t *r, int error)
ngx_chain_t *out, **ll, *cl; ngx_chain_t *out, **ll, *cl;
ngx_http_core_loc_conf_t *clcf; ngx_http_core_loc_conf_t *clcf;
rc = ngx_http_discard_body(r);
if (rc != NGX_OK) {
return rc;
}
r->headers_out.status = error; r->headers_out.status = error;
if (error < NGX_HTTP_BAD_REQUEST) { if (error < NGX_HTTP_BAD_REQUEST) {