diff src/http/ngx_http_event.c @ 44:0e81ac0bb3e2

nginx-0.0.1-2003-01-09-08:36:00 import
author Igor Sysoev <igor@sysoev.ru>
date Thu, 09 Jan 2003 05:36:00 +0000
parents 59e7c7f30d49
children f1ee46c036a4
line wrap: on
line diff
--- a/src/http/ngx_http_event.c
+++ b/src/http/ngx_http_event.c
@@ -12,7 +12,7 @@
 #include <ngx_inet.h>
 #include <ngx_http.h>
 #include <ngx_http_config.h>
-#include <ngx_http_core.h>
+#include <ngx_http_core_module.h>
 
 /* STUB */
 #include <ngx_http_output_filter.h>
@@ -75,16 +75,13 @@ int ngx_http_init_connection(ngx_connect
 {
     ngx_event_t         *ev;
     struct sockaddr     *addr;
-    ngx_http_server_t   *srv;
     ngx_http_log_ctx_t  *ctx;
 
     ev = c->read;
     ev->event_handler = ngx_http_init_request;
 
-    srv = (ngx_http_server_t *) c->server;
-
     ngx_test_null(c->pool,
-                  ngx_create_pool(srv->connection_pool_size, ev->log),
+                  ngx_create_pool(ngx_http_connection_pool_size, ev->log),
                   NGX_ERROR);
 
     ngx_test_null(c->requests, ngx_create_array(c->pool, 10, sizeof(char *)),
@@ -97,12 +94,12 @@ int ngx_http_init_connection(ngx_connect
     ngx_memcpy(addr, c->sockaddr, c->socklen);
     c->sockaddr = addr;
 
-    ngx_test_null(c->addr_text.data, ngx_palloc(c->pool, c->addr_text.len),
+    ngx_test_null(c->addr_text.data, ngx_palloc(c->pool, c->addr_text_max_len),
                   NGX_ERROR);
 
     c->addr_text.len = ngx_inet_ntop(c->family,
                                      (char *)c->sockaddr + c->addr,
-                                     c->addr_text.data, c->addr_text.len);
+                                     c->addr_text.data, c->addr_text_max_len);
     if (c->addr_text.len == 0)
        return NGX_ERROR;
 
@@ -118,7 +115,6 @@ int ngx_http_init_connection(ngx_connect
         return ngx_http_init_request(ev);
     } else {
 #endif
-        /* STUB: post_accept_timeout should be in http_conf */
         ngx_add_timer(ev, c->post_accept_timeout);
 #if (USE_KQUEUE)
         return ngx_add_event(ev, NGX_READ_EVENT, NGX_CLEAR_EVENT);
@@ -143,29 +139,22 @@ int ngx_http_init_connection(ngx_connect
 
 static int ngx_http_init_request(ngx_event_t *ev)
 {
-    ngx_connection_t    *c;
-    ngx_http_server_t   *srv;
-    ngx_http_request_t  *r;
+    ngx_connection_t     *c;
+    ngx_http_request_t   *r;
 
     c = (ngx_connection_t *) ev->data;
-    srv = (ngx_http_server_t *) c->server;
 
     ngx_test_null(r, ngx_pcalloc(c->pool, sizeof(ngx_http_request_t)),
                   NGX_ERROR);
 
     c->data = r;
     r->connection = c;
-    r->server = srv;
     r->file.fd = NGX_INVALID_FILE;
 
-    /* STUB */
-    r->srv_conf = ngx_srv_conf;
-    r->loc_conf = ngx_loc_conf;
-    /**/
-
     if (c->buffer == NULL) {
         ngx_test_null(c->buffer,
-                      ngx_create_temp_hunk(c->pool, srv->header_buffer_size,
+                      ngx_create_temp_hunk(c->pool,
+                                           ngx_http_client_header_buffer_size,
                                            0, 0),
                       NGX_ERROR);
     } else {
@@ -174,7 +163,7 @@ static int ngx_http_init_request(ngx_eve
 
     r->header_in = c->buffer;
 
-    ngx_test_null(r->pool, ngx_create_pool(srv->request_pool_size, ev->log),
+    ngx_test_null(r->pool, ngx_create_pool(ngx_http_request_pool_size, ev->log),
                   ngx_http_close_request(r));
 
     ngx_test_null(r->ctx,
@@ -218,9 +207,7 @@ static int ngx_http_process_request_head
             if (r->header_timeout) {
                 r->header_timeout = 0;
                 ngx_del_timer(ev);
-                /* STUB: r->server->header_timeout
-                         OR r->srv_conf->header_timeout ? */
-                ngx_add_timer(ev, r->server->header_timeout);
+                ngx_add_timer(ev, ngx_http_client_header_timeout);
             }
             return NGX_AGAIN;
         }
@@ -254,7 +241,7 @@ static int ngx_http_process_request_head
     if (r->header_timeout) {
         r->header_timeout = 0;
         ngx_del_timer(ev);
-        ngx_add_timer(ev, r->server->header_timeout);
+        ngx_add_timer(ev, ngx_http_client_header_timeout);
     }
 
     if (rc == NGX_OK)
@@ -591,25 +578,29 @@ static int ngx_http_read_discarded_body(
 {
     size_t   size;
     ssize_t  n;
-    ngx_connection_t    *c;
-    ngx_http_request_t  *r;
-
-    c = (ngx_connection_t *) ev->data;
-    r = (ngx_http_request_t *) c->data;
+    ngx_connection_t          *c;
+    ngx_http_request_t        *r;
+    ngx_http_core_loc_conf_t  *lcf;
 
     ngx_log_debug(ev->log, "http read discarded body");
 
     if (ev->timedout)
         return NGX_ERROR;
 
+    c = (ngx_connection_t *) ev->data;
+    r = (ngx_http_request_t *) c->data;
+
+    lcf = (ngx_http_core_loc_conf_t *)
+                     ngx_http_get_module_loc_conf(r, ngx_http_core_module_ctx);
+
     if (r->discarded_buffer == NULL)
         ngx_test_null(r->discarded_buffer,
-                      ngx_palloc(r->pool, r->server->discarded_buffer_size),
+                      ngx_palloc(r->pool, lcf->discarded_buffer_size),
                       NGX_ERROR);
 
     size = r->client_content_length;
-    if (size > r->server->discarded_buffer_size)
-        size = r->server->discarded_buffer_size;
+    if (size > lcf->discarded_buffer_size)
+        size = lcf->discarded_buffer_size;
 
     n = ngx_event_recv(c, r->discarded_buffer, size);
     if (n == NGX_ERROR)
@@ -624,34 +615,6 @@ static int ngx_http_read_discarded_body(
 }
 
 
-#if 0
-static int ngx_http_discarded_read(ngx_event_t *ev)
-{
-    ssize_t n;
-    ngx_connection_t    *c;
-    ngx_http_request_t  *r;
-
-    c = (ngx_connection_t *) ev->data;
-    r = (ngx_http_request_t *) c->data;
-
-    ngx_log_debug(ev->log, "http discarded read");
-
-    if (ev->timedout)
-        return NGX_ERROR;
-
-    if (r->discarded_buffer == NULL)
-        ngx_test_null(r->discarded_buffer,
-                      ngx_palloc(r->pool, r->server->discarded_buffer_size),
-                      NGX_ERROR);
-
-    n = ngx_event_recv(c, r->discarded_buffer,
-                       r->server->discarded_buffer_size);
-
-    return n;
-}
-#endif
-
-
 static int ngx_http_keepalive_handler(ngx_event_t *ev)
 {
     ssize_t n;
@@ -690,11 +653,16 @@ static int ngx_http_keepalive_handler(ng
 
 static int ngx_http_set_lingering_close(ngx_http_request_t *r)
 {
-    r->lingering_time = ngx_time() + r->server->lingering_time;
+    ngx_http_core_loc_conf_t  *lcf;
+
+    lcf = (ngx_http_core_loc_conf_t *)
+                     ngx_http_get_module_loc_conf(r, ngx_http_core_module_ctx);
+
+    r->lingering_time = ngx_time() + lcf->lingering_time;
     r->connection->read->event_handler = ngx_http_lingering_close_handler;
 
     ngx_del_timer(r->connection->read);
-    ngx_add_timer(r->connection->read, r->server->lingering_timeout);
+    ngx_add_timer(r->connection->read, lcf->lingering_timeout);
 
     if (r->connection->read->blocked) {
         if (ngx_add_event(r->connection->read, NGX_READ_EVENT,
@@ -725,9 +693,7 @@ static int ngx_http_lingering_close_hand
     ngx_msec_t           timer;
     ngx_connection_t    *c;
     ngx_http_request_t  *r;
-
-    c = (ngx_connection_t *) ev->data;
-    r = (ngx_http_request_t *) c->data;
+    ngx_http_core_loc_conf_t  *lcf;
 
     ngx_log_debug(ev->log, "http lingering close handler");
 
@@ -735,25 +701,30 @@ static int ngx_http_lingering_close_hand
         return ngx_http_close_request(r);
     }
 
+    c = (ngx_connection_t *) ev->data;
+    r = (ngx_http_request_t *) c->data;
+
     timer = r->lingering_time - ngx_time();
     if (timer <= 0) {
         return ngx_http_close_request(r);
     }
 
+    lcf = (ngx_http_core_loc_conf_t *)
+                     ngx_http_get_module_loc_conf(r, ngx_http_core_module_ctx);
+
     if (r->discarded_buffer == NULL) {
         if (r->header_in->end - r->header_in->last.mem
-                                         >= r->server->discarded_buffer_size) {
+                                               >= lcf->discarded_buffer_size) {
             r->discarded_buffer = r->header_in->last.mem;
 
         } else {
             ngx_test_null(r->discarded_buffer,
-                          ngx_palloc(c->pool, r->server->discarded_buffer_size),
+                          ngx_palloc(c->pool, lcf->discarded_buffer_size),
                           ngx_http_close_request(r));
         }
     }
 
-    n = ngx_event_recv(c, r->discarded_buffer,
-                       r->server->discarded_buffer_size);
+    n = ngx_event_recv(c, r->discarded_buffer, lcf->discarded_buffer_size);
 
     ngx_log_debug(ev->log, "lingering read: %d" _ n);
 
@@ -762,8 +733,8 @@ static int ngx_http_lingering_close_hand
     }
 
     timer *= 1000;
-    if (timer > r->server->lingering_timeout) {
-        timer = r->server->lingering_timeout;
+    if (timer > lcf->lingering_timeout) {
+        timer = lcf->lingering_timeout;
     }
 
     ngx_del_timer(ev);