comparison src/http/modules/proxy/ngx_http_event_proxy_handler.c @ 86:3973260705cc

nginx-0.0.1-2003-05-12-19:52:24 import
author Igor Sysoev <igor@sysoev.ru>
date Mon, 12 May 2003 15:52:24 +0000
parents fab4cb00fe5b
children
comparison
equal deleted inserted replaced
85:3549c2bf9eaf 86:3973260705cc
479 } 479 }
480 480
481 481
482 static int ngx_http_proxy_connect(ngx_http_proxy_ctx_t *p) 482 static int ngx_http_proxy_connect(ngx_http_proxy_ctx_t *p)
483 { 483 {
484 int rc, event; 484 int rc, event, instance;
485 struct sockaddr_in *addr; 485 struct sockaddr_in *addr;
486 ngx_err_t err; 486 ngx_err_t err;
487 ngx_socket_t s; 487 ngx_socket_t s;
488 ngx_event_t *rev, *wev; 488 ngx_event_t *rev, *wev;
489 ngx_connection_t *c; 489 ngx_connection_t *c;
588 588
589 c = &ngx_connections[s]; 589 c = &ngx_connections[s];
590 rev = &ngx_read_events[s]; 590 rev = &ngx_read_events[s];
591 wev = &ngx_write_events[s]; 591 wev = &ngx_write_events[s];
592 592
593 instance = rev->instance;
594
593 ngx_memzero(c, sizeof(ngx_connection_t)); 595 ngx_memzero(c, sizeof(ngx_connection_t));
594 ngx_memzero(rev, sizeof(ngx_event_t)); 596 ngx_memzero(rev, sizeof(ngx_event_t));
595 ngx_memzero(wev, sizeof(ngx_event_t)); 597 ngx_memzero(wev, sizeof(ngx_event_t));
596 598
597 rev->index = wev->index = NGX_INVALID_INDEX; 599 rev->index = wev->index = NGX_INVALID_INDEX;
598 rev->data = wev->data = c; 600 rev->data = wev->data = c;
599 c->read = rev; 601 c->read = rev;
600 c->write = wev; 602 c->write = wev;
601 rev->first = wev->first = 1; 603
604 rev->instance = wev->instance = !instance;
605
602 rev->log = wev->log = c->log = p->log; 606 rev->log = wev->log = c->log = p->log;
603 c->fd = s; 607 c->fd = s;
604 wev->close_handler = rev->close_handler = ngx_event_close_connection; 608 wev->close_handler = rev->close_handler = ngx_event_close_connection;
605 609
606 if (ngx_event_flags & NGX_HAVE_EDGE_EVENT) { 610 if (ngx_event_flags & NGX_HAVE_EDGE_EVENT) {
1000 ngx_http_request_t *r; 1004 ngx_http_request_t *r;
1001 1005
1002 r = p->request; 1006 r = p->request;
1003 1007
1004 for ( ;; ) { 1008 for ( ;; ) {
1005 rc = ngx_read_http_header_line(r, p->header_in); 1009 rc = ngx_parse_http_header_line(r, p->header_in);
1006 1010
1007 /* a header line has been parsed successfully */ 1011 /* a header line has been parsed successfully */
1008 1012
1009 if (rc == NGX_OK) { 1013 if (rc == NGX_OK) {
1010 if (ngx_http_proxy_process_upstream_header_line(p) == NGX_ERROR) { 1014 if (ngx_http_proxy_process_upstream_header_line(p) == NGX_ERROR) {