mirror of
https://github.com/nginx/nginx.git
synced 2025-06-07 17:52:38 +08:00
nginx-0.0.1-2002-12-23-21:22:18 import
This commit is contained in:
parent
a6717c4e59
commit
295bb6335d
@ -67,12 +67,14 @@
|
|||||||
#define HAVE_INHERITED_NONBLOCK 1
|
#define HAVE_INHERITED_NONBLOCK 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <sys/stropts.h> /* INFTIM */
|
||||||
|
|
||||||
#endif /* Solaris */
|
#endif /* Solaris */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stddef.h> /* offsetof */
|
#include <stddef.h> /* offsetof */
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
@ -90,6 +92,11 @@
|
|||||||
#ifndef HAVE_POLL
|
#ifndef HAVE_POLL
|
||||||
#define HAVE_POLL 1
|
#define HAVE_POLL 1
|
||||||
#include <poll.h>
|
#include <poll.h>
|
||||||
|
/*
|
||||||
|
#ifndef INFTIM
|
||||||
|
#define INFTIM -1
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ngx_inline inline
|
#define ngx_inline inline
|
||||||
|
@ -179,15 +179,15 @@ int ngx_conf_read_token(ngx_conf_t *cf)
|
|||||||
found = 0;
|
found = 0;
|
||||||
need_space = 0;
|
need_space = 0;
|
||||||
last_space = 1;
|
last_space = 1;
|
||||||
len = 0;
|
|
||||||
quoted = s_quoted = d_quoted = 0;
|
quoted = s_quoted = d_quoted = 0;
|
||||||
|
|
||||||
cf->args->nelts = 0;
|
cf->args->nelts = 0;
|
||||||
h = cf->conf_file->hunk;
|
h = cf->conf_file->hunk;
|
||||||
|
start = h->pos.mem;
|
||||||
|
|
||||||
ngx_log_debug(cf->log, "TOKEN START");
|
ngx_log_debug(cf->log, "TOKEN START");
|
||||||
|
|
||||||
for (start = h->pos.mem; /* void */ ; /* void */) {
|
for ( ;; ) {
|
||||||
|
|
||||||
if (h->pos.mem >= h->last.mem) {
|
if (h->pos.mem >= h->last.mem) {
|
||||||
if (cf->conf_file->file.offset
|
if (cf->conf_file->file.offset
|
||||||
@ -215,14 +215,21 @@ ngx_log_debug(cf->log, "TOKEN START");
|
|||||||
|
|
||||||
ch = *h->pos.mem++;
|
ch = *h->pos.mem++;
|
||||||
|
|
||||||
|
#if 0
|
||||||
ngx_log_debug(cf->log, "%d:%d:%d:%d:%d '%c'" _
|
ngx_log_debug(cf->log, "%d:%d:%d:%d:%d '%c'" _
|
||||||
last_space _ need_space _
|
last_space _ need_space _
|
||||||
quoted _ s_quoted _ d_quoted _ ch);
|
quoted _ s_quoted _ d_quoted _ ch);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (ch == LF) {
|
if (ch == LF) {
|
||||||
cf->conf_file->line++;
|
cf->conf_file->line++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (quoted) {
|
||||||
|
quoted = 0;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (need_space) {
|
if (need_space) {
|
||||||
if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
|
if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
|
||||||
last_space = 1;
|
last_space = 1;
|
||||||
@ -237,16 +244,8 @@ ngx_log_debug(cf->log, "%d:%d:%d:%d:%d '%c'" _
|
|||||||
return NGX_ERROR;
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (quoted) {
|
|
||||||
quoted = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
len++;
|
|
||||||
|
|
||||||
if (last_space) {
|
if (last_space) {
|
||||||
if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
|
if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
|
||||||
len = 0;
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,6 +253,10 @@ ngx_log_debug(cf->log, "%d:%d:%d:%d:%d '%c'" _
|
|||||||
|
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
|
|
||||||
|
case ';':
|
||||||
|
case '{':
|
||||||
|
return NGX_OK;
|
||||||
|
|
||||||
case '\\':
|
case '\\':
|
||||||
quoted = 1;
|
quoted = 1;
|
||||||
last_space = 0;
|
last_space = 0;
|
||||||
@ -261,14 +264,12 @@ ngx_log_debug(cf->log, "%d:%d:%d:%d:%d '%c'" _
|
|||||||
|
|
||||||
case '"':
|
case '"':
|
||||||
start++;
|
start++;
|
||||||
len--;
|
|
||||||
d_quoted = 1;
|
d_quoted = 1;
|
||||||
last_space = 0;
|
last_space = 0;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case '\'':
|
case '\'':
|
||||||
start++;
|
start++;
|
||||||
len--;
|
|
||||||
s_quoted = 1;
|
s_quoted = 1;
|
||||||
last_space = 0;
|
last_space = 0;
|
||||||
continue;
|
continue;
|
||||||
@ -285,7 +286,6 @@ ngx_log_debug(cf->log, "%d:%d:%d:%d:%d '%c'" _
|
|||||||
|
|
||||||
if (d_quoted) {
|
if (d_quoted) {
|
||||||
if (ch == '"') {
|
if (ch == '"') {
|
||||||
len--;
|
|
||||||
d_quoted = 0;
|
d_quoted = 0;
|
||||||
need_space = 1;
|
need_space = 1;
|
||||||
found = 1;
|
found = 1;
|
||||||
@ -293,7 +293,6 @@ ngx_log_debug(cf->log, "%d:%d:%d:%d:%d '%c'" _
|
|||||||
|
|
||||||
} else if (s_quoted) {
|
} else if (s_quoted) {
|
||||||
if (ch == '\'') {
|
if (ch == '\'') {
|
||||||
len--;
|
|
||||||
s_quoted = 0;
|
s_quoted = 0;
|
||||||
need_space = 1;
|
need_space = 1;
|
||||||
found = 1;
|
found = 1;
|
||||||
@ -301,20 +300,19 @@ ngx_log_debug(cf->log, "%d:%d:%d:%d:%d '%c'" _
|
|||||||
|
|
||||||
} else if (ch == ' ' || ch == '\t' || ch == CR || ch == LF
|
} else if (ch == ' ' || ch == '\t' || ch == CR || ch == LF
|
||||||
|| ch == ';' || ch == '{') {
|
|| ch == ';' || ch == '{') {
|
||||||
len--;
|
|
||||||
last_space = 1;
|
last_space = 1;
|
||||||
found = 1;
|
found = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (found) {
|
if (found) {
|
||||||
ngx_test_null(word, ngx_push_array(cf->args), NGX_ERROR);
|
ngx_test_null(word, ngx_push_array(cf->args), NGX_ERROR);
|
||||||
ngx_test_null(word->data, ngx_palloc(cf->pool, len + 1),
|
ngx_test_null(word->data,
|
||||||
|
ngx_palloc(cf->pool, h->pos.mem - start + 1),
|
||||||
NGX_ERROR);
|
NGX_ERROR);
|
||||||
word->len = len;
|
|
||||||
|
|
||||||
for (dst = word->data, src = start;
|
for (dst = word->data, src = start, len = 0;
|
||||||
src < h->pos.mem - 1;
|
src < h->pos.mem - 1;
|
||||||
/* void */)
|
len++)
|
||||||
{
|
{
|
||||||
if (*src == '\\') {
|
if (*src == '\\') {
|
||||||
src++;
|
src++;
|
||||||
@ -322,6 +320,7 @@ ngx_log_debug(cf->log, "%d:%d:%d:%d:%d '%c'" _
|
|||||||
*dst++ = *src++;
|
*dst++ = *src++;
|
||||||
}
|
}
|
||||||
*dst = '\0';
|
*dst = '\0';
|
||||||
|
word->len = len;
|
||||||
|
|
||||||
ngx_log_debug(cf->log, "FOUND %d:'%s'" _ word->len _ word->data);
|
ngx_log_debug(cf->log, "FOUND %d:'%s'" _ word->len _ word->data);
|
||||||
|
|
||||||
@ -330,7 +329,6 @@ ngx_log_debug(cf->log, "FOUND %d:'%s'" _ word->len _ word->data);
|
|||||||
}
|
}
|
||||||
|
|
||||||
found = 0;
|
found = 0;
|
||||||
len = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#include <ngx_config.h>
|
#include <ngx_config.h>
|
||||||
#include <ngx_core.h>
|
#include <ngx_core.h>
|
||||||
#include <ngx_types.h>
|
#include <ngx_types.h>
|
||||||
|
#include <ngx_errno.h>
|
||||||
#include <ngx_log.h>
|
#include <ngx_log.h>
|
||||||
#include <ngx_time.h>
|
#include <ngx_time.h>
|
||||||
#include <ngx_connection.h>
|
#include <ngx_connection.h>
|
||||||
@ -108,6 +109,7 @@ int ngx_poll_del_event(ngx_event_t *ev, int event, u_int flags)
|
|||||||
|
|
||||||
if (e == NULL || e->index == NGX_INVALID_INDEX) {
|
if (e == NULL || e->index == NGX_INVALID_INDEX) {
|
||||||
if (ev->index < --nevents) {
|
if (ev->index < --nevents) {
|
||||||
|
event_list[ev->index] = event_list[nevents];
|
||||||
event_index[ev->index] = event_index[nevents];
|
event_index[ev->index] = event_index[nevents];
|
||||||
event_index[ev->index]->index = ev->index;
|
event_index[ev->index]->index = ev->index;
|
||||||
}
|
}
|
||||||
@ -125,6 +127,7 @@ int ngx_poll_process_events(ngx_log_t *log)
|
|||||||
{
|
{
|
||||||
int i, ready, found;
|
int i, ready, found;
|
||||||
u_int timer, delta;
|
u_int timer, delta;
|
||||||
|
ngx_err_t err;
|
||||||
ngx_event_t *ev;
|
ngx_event_t *ev;
|
||||||
ngx_connection_t *c;
|
ngx_connection_t *c;
|
||||||
|
|
||||||
@ -202,7 +205,7 @@ int ngx_poll_process_events(ngx_log_t *log)
|
|||||||
|
|
||||||
if (c->read->oneshot) {
|
if (c->read->oneshot) {
|
||||||
ngx_del_timer(c->read);
|
ngx_del_timer(c->read);
|
||||||
ngx_select_del_event(c->read, NGX_READ_EVENT, 0);
|
ngx_poll_del_event(c->read, NGX_READ_EVENT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c->read->event_handler(c->read) == NGX_ERROR) {
|
if (c->read->event_handler(c->read) == NGX_ERROR) {
|
||||||
@ -216,7 +219,7 @@ int ngx_poll_process_events(ngx_log_t *log)
|
|||||||
|
|
||||||
if (c->write->oneshot) {
|
if (c->write->oneshot) {
|
||||||
ngx_del_timer(c->write);
|
ngx_del_timer(c->write);
|
||||||
ngx_select_del_event(c->write, NGX_WRITE_EVENT, 0);
|
ngx_poll_del_event(c->write, NGX_WRITE_EVENT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c->write->event_handler(c->write) == NGX_ERROR) {
|
if (c->write->event_handler(c->write) == NGX_ERROR) {
|
||||||
@ -226,7 +229,13 @@ int ngx_poll_process_events(ngx_log_t *log)
|
|||||||
|
|
||||||
if (event_list[i].revents & (POLLERR|POLLHUP|POLLNVAL)) {
|
if (event_list[i].revents & (POLLERR|POLLHUP|POLLNVAL)) {
|
||||||
found = 1;
|
found = 1;
|
||||||
ngx_log_error(NGX_LOG_ERR, log, ngx_errno,
|
|
||||||
|
err = 0;
|
||||||
|
if (event_list[i].revents & POLLNVAL) {
|
||||||
|
err = EBADF;
|
||||||
|
}
|
||||||
|
|
||||||
|
ngx_log_error(NGX_LOG_ERR, log, err,
|
||||||
"poll() error on %d:%d",
|
"poll() error on %d:%d",
|
||||||
event_list[i].fd, event_list[i].revents);
|
event_list[i].fd, event_list[i].revents);
|
||||||
}
|
}
|
||||||
|
@ -35,8 +35,18 @@ ngx_event_type_e ngx_event_type = NGX_POLL_EVENT;
|
|||||||
ngx_event_type_e ngx_event_type = NGX_KQUEUE_EVENT;
|
ngx_event_type_e ngx_event_type = NGX_KQUEUE_EVENT;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#elif (HAVE_POLL)
|
||||||
|
|
||||||
|
#if 0
|
||||||
ngx_event_type_e ngx_event_type = NGX_SELECT_EVENT;
|
ngx_event_type_e ngx_event_type = NGX_SELECT_EVENT;
|
||||||
|
#else
|
||||||
|
ngx_event_type_e ngx_event_type = NGX_POLL_EVENT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
ngx_event_type_e ngx_event_type = NGX_SELECT_EVENT;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ngx_event_actions_t ngx_event_actions;
|
ngx_event_actions_t ngx_event_actions;
|
||||||
|
@ -313,9 +313,11 @@ static int ngx_http_process_request_line(ngx_http_request_t *r)
|
|||||||
ngx_cpystrn(r->exten.data, r->uri_ext, r->exten.len + 1);
|
ngx_cpystrn(r->exten.data, r->uri_ext, r->exten.len + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
ngx_log_debug(r->connection->log, "HTTP: %d, %d, %s %s" _
|
ngx_log_debug(r->connection->log, "HTTP: %d, %d, %s %s" _
|
||||||
r->method _ r->http_version _
|
r->method _ r->http_version _
|
||||||
r->uri.data _ r->exten.data);
|
r->uri.data _ r->exten.data);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (r->http_version == 9)
|
if (r->http_version == 9)
|
||||||
return NGX_OK;
|
return NGX_OK;
|
||||||
|
Loading…
Reference in New Issue
Block a user