Mercurial > hg > nginx-quic
comparison src/http/ngx_http_core_module.c @ 164:84036764e215
nginx-0.0.1-2003-10-29-11:30:44 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 29 Oct 2003 08:30:44 +0000 |
parents | fb61ba77beba |
children | 894a01c6aea3 |
comparison
equal
deleted
inserted
replaced
163:fb61ba77beba | 164:84036764e215 |
---|---|
2 #include <ngx_config.h> | 2 #include <ngx_config.h> |
3 #include <ngx_core.h> | 3 #include <ngx_core.h> |
4 #include <ngx_event.h> | 4 #include <ngx_event.h> |
5 #include <ngx_http.h> | 5 #include <ngx_http.h> |
6 #include <nginx.h> | 6 #include <nginx.h> |
7 | 7 #if __FreeBSD__ |
8 #include <ngx_freebsd_init.h> | |
9 #endif | |
8 | 10 |
9 | 11 |
10 static void ngx_http_phase_event_handler(ngx_event_t *rev); | 12 static void ngx_http_phase_event_handler(ngx_event_t *rev); |
11 static void ngx_http_run_phases(ngx_http_request_t *r); | 13 static void ngx_http_run_phases(ngx_http_request_t *r); |
12 | 14 |
29 static char *ngx_set_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); | 31 static char *ngx_set_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); |
30 static char *ngx_set_server_name(ngx_conf_t *cf, ngx_command_t *cmd, | 32 static char *ngx_set_server_name(ngx_conf_t *cf, ngx_command_t *cmd, |
31 void *conf); | 33 void *conf); |
32 static char *ngx_set_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); | 34 static char *ngx_set_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); |
33 | 35 |
36 static char *ngx_http_lowat_check(ngx_conf_t *cf, void *post, void *data); | |
37 | |
38 static ngx_conf_post_t ngx_http_lowat_post = { ngx_http_lowat_check } ; | |
39 | |
34 | 40 |
35 static ngx_command_t ngx_http_core_commands[] = { | 41 static ngx_command_t ngx_http_core_commands[] = { |
36 | 42 |
37 {ngx_string("server"), | 43 {ngx_string("server"), |
38 NGX_HTTP_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS, | 44 NGX_HTTP_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS, |
149 ngx_conf_set_msec_slot, | 155 ngx_conf_set_msec_slot, |
150 NGX_HTTP_LOC_CONF_OFFSET, | 156 NGX_HTTP_LOC_CONF_OFFSET, |
151 offsetof(ngx_http_core_loc_conf_t, send_timeout), | 157 offsetof(ngx_http_core_loc_conf_t, send_timeout), |
152 NULL}, | 158 NULL}, |
153 | 159 |
160 {ngx_string("send_lowat"), | |
161 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | |
162 ngx_conf_set_size_slot, | |
163 NGX_HTTP_LOC_CONF_OFFSET, | |
164 offsetof(ngx_http_core_loc_conf_t, send_lowat), | |
165 &ngx_http_lowat_post}, | |
166 | |
154 {ngx_string("keepalive_timeout"), | 167 {ngx_string("keepalive_timeout"), |
155 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, | 168 NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1, |
156 ngx_conf_set_msec_slot, | 169 ngx_conf_set_msec_slot, |
157 NGX_HTTP_LOC_CONF_OFFSET, | 170 NGX_HTTP_LOC_CONF_OFFSET, |
158 offsetof(ngx_http_core_loc_conf_t, keepalive_timeout), | 171 offsetof(ngx_http_core_loc_conf_t, keepalive_timeout), |
502 ngx_log_debug(r->connection->log, "RESET http delay"); | 515 ngx_log_debug(r->connection->log, "RESET http delay"); |
503 return NGX_DECLINED; | 516 return NGX_DECLINED; |
504 } | 517 } |
505 | 518 |
506 #endif | 519 #endif |
520 | |
521 | |
522 ngx_table_elt_t *ngx_http_add_header(void *header, | |
523 ngx_http_header_t *http_headers) | |
524 { | |
525 int i, j; | |
526 char *prev; | |
527 ngx_table_t *headers; | |
528 ngx_table_elt_t *h, *new; | |
529 | |
530 headers = *(ngx_table_t **) header; | |
531 | |
532 prev = headers->elts; | |
533 | |
534 if (!(new = ngx_push_table(headers))) { | |
535 return NULL; | |
536 } | |
537 | |
538 if (prev == headers->elts) { | |
539 return new; | |
540 } | |
541 | |
542 h = headers->elts; | |
543 for (i = 0; i < headers->nelts; i++) { | |
544 if (h[i].key.len == 0) { | |
545 continue; | |
546 } | |
547 | |
548 for (j = 0; http_headers[j].name.len != 0; j++) { | |
549 if (http_headers[j].name.len != h[i].key.len) { | |
550 continue; | |
551 } | |
552 | |
553 if (ngx_strcasecmp(http_headers[j].name.data, h[i].key.data) == 0) { | |
554 *((ngx_table_elt_t **) | |
555 ((char *) &header + http_headers[j].offset)) = &h[i]; | |
556 break; | |
557 } | |
558 } | |
559 } | |
560 | |
561 return new; | |
562 } | |
507 | 563 |
508 | 564 |
509 static int ngx_http_core_init(ngx_cycle_t *cycle) | 565 static int ngx_http_core_init(ngx_cycle_t *cycle) |
510 { | 566 { |
511 #if 0 | 567 #if 0 |
850 */ | 906 */ |
851 | 907 |
852 lcf->client_body_timeout = NGX_CONF_UNSET; | 908 lcf->client_body_timeout = NGX_CONF_UNSET; |
853 lcf->sendfile = NGX_CONF_UNSET; | 909 lcf->sendfile = NGX_CONF_UNSET; |
854 lcf->send_timeout = NGX_CONF_UNSET; | 910 lcf->send_timeout = NGX_CONF_UNSET; |
911 lcf->send_lowat = NGX_CONF_UNSET; | |
855 lcf->discarded_buffer_size = NGX_CONF_UNSET; | 912 lcf->discarded_buffer_size = NGX_CONF_UNSET; |
856 lcf->keepalive_timeout = NGX_CONF_UNSET; | 913 lcf->keepalive_timeout = NGX_CONF_UNSET; |
857 lcf->lingering_time = NGX_CONF_UNSET; | 914 lcf->lingering_time = NGX_CONF_UNSET; |
858 lcf->lingering_timeout = NGX_CONF_UNSET; | 915 lcf->lingering_timeout = NGX_CONF_UNSET; |
859 | 916 |
923 | 980 |
924 ngx_conf_merge_msec_value(conf->client_body_timeout, | 981 ngx_conf_merge_msec_value(conf->client_body_timeout, |
925 prev->client_body_timeout, 10000); | 982 prev->client_body_timeout, 10000); |
926 ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0); | 983 ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0); |
927 ngx_conf_merge_msec_value(conf->send_timeout, prev->send_timeout, 10000); | 984 ngx_conf_merge_msec_value(conf->send_timeout, prev->send_timeout, 10000); |
985 ngx_conf_merge_size_value(conf->send_lowat, prev->send_lowat, 0); | |
928 ngx_conf_merge_size_value(conf->discarded_buffer_size, | 986 ngx_conf_merge_size_value(conf->discarded_buffer_size, |
929 prev->discarded_buffer_size, 1500); | 987 prev->discarded_buffer_size, 1500); |
930 ngx_conf_merge_msec_value(conf->keepalive_timeout, | 988 ngx_conf_merge_msec_value(conf->keepalive_timeout, |
931 prev->keepalive_timeout, 70000); | 989 prev->keepalive_timeout, 70000); |
932 ngx_conf_merge_msec_value(conf->lingering_time, | 990 ngx_conf_merge_msec_value(conf->lingering_time, |
1061 ngx_log_create_errlog(cf->cycle, &value[1]), | 1119 ngx_log_create_errlog(cf->cycle, &value[1]), |
1062 NGX_CONF_ERROR); | 1120 NGX_CONF_ERROR); |
1063 | 1121 |
1064 return NGX_CONF_OK; | 1122 return NGX_CONF_OK; |
1065 } | 1123 } |
1124 | |
1125 | |
1126 static char *ngx_http_lowat_check(ngx_conf_t *cf, void *post, void *data) | |
1127 { | |
1128 int *np = data; | |
1129 | |
1130 #if (HAVE_LOWAT_EVENT) | |
1131 | |
1132 if (*np >= ngx_freebsd_net_inet_tcp_sendspace) { | |
1133 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | |
1134 "\"send_lowat\" must be less than %d " | |
1135 "(sysctl net.inet.tcp.sendspace)", | |
1136 ngx_freebsd_net_inet_tcp_sendspace); | |
1137 | |
1138 return NGX_CONF_ERROR; | |
1139 } | |
1140 | |
1141 #else | |
1142 | |
1143 ngx_conf_log_error(NGX_LOG_WARN, cf, 0, | |
1144 "\"send_lowat\" is not supported, ignored"); | |
1145 | |
1146 #endif | |
1147 | |
1148 return NGX_CONF_OK; | |
1149 } |