nginx-0.0.1-2002-12-23-21:22:18 import
diff --git a/src/core/ngx_config.h b/src/core/ngx_config.h
index f3eb116..51d59da 100644
--- a/src/core/ngx_config.h
+++ b/src/core/ngx_config.h
@@ -67,12 +67,14 @@
#define HAVE_INHERITED_NONBLOCK 1
#endif
+#include <sys/stropts.h> /* INFTIM */
+
#endif /* Solaris */
#include <unistd.h>
-#include <stddef.h> /* offsetof */
+#include <stddef.h> /* offsetof */
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
@@ -90,6 +92,11 @@
#ifndef HAVE_POLL
#define HAVE_POLL 1
#include <poll.h>
+/*
+#ifndef INFTIM
+#define INFTIM -1
+#endif
+*/
#endif
#define ngx_inline inline
diff --git a/src/core/ngx_config_file.c b/src/core/ngx_config_file.c
index 80252e8..0feb21c 100644
--- a/src/core/ngx_config_file.c
+++ b/src/core/ngx_config_file.c
@@ -179,15 +179,15 @@
found = 0;
need_space = 0;
last_space = 1;
- len = 0;
quoted = s_quoted = d_quoted = 0;
cf->args->nelts = 0;
h = cf->conf_file->hunk;
+ start = h->pos.mem;
ngx_log_debug(cf->log, "TOKEN START");
- for (start = h->pos.mem; /* void */ ; /* void */) {
+ for ( ;; ) {
if (h->pos.mem >= h->last.mem) {
if (cf->conf_file->file.offset
@@ -215,14 +215,21 @@
ch = *h->pos.mem++;
+#if 0
ngx_log_debug(cf->log, "%d:%d:%d:%d:%d '%c'" _
last_space _ need_space _
quoted _ s_quoted _ d_quoted _ ch);
+#endif
if (ch == LF) {
cf->conf_file->line++;
}
+ if (quoted) {
+ quoted = 0;
+ continue;
+ }
+
if (need_space) {
if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
last_space = 1;
@@ -237,16 +244,8 @@
return NGX_ERROR;
}
- if (quoted) {
- quoted = 0;
- continue;
- }
-
- len++;
-
if (last_space) {
if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) {
- len = 0;
continue;
}
@@ -254,6 +253,10 @@
switch (ch) {
+ case ';':
+ case '{':
+ return NGX_OK;
+
case '\\':
quoted = 1;
last_space = 0;
@@ -261,14 +264,12 @@
case '"':
start++;
- len--;
d_quoted = 1;
last_space = 0;
continue;
case '\'':
start++;
- len--;
s_quoted = 1;
last_space = 0;
continue;
@@ -285,7 +286,6 @@
if (d_quoted) {
if (ch == '"') {
- len--;
d_quoted = 0;
need_space = 1;
found = 1;
@@ -293,7 +293,6 @@
} else if (s_quoted) {
if (ch == '\'') {
- len--;
s_quoted = 0;
need_space = 1;
found = 1;
@@ -301,20 +300,19 @@
} else if (ch == ' ' || ch == '\t' || ch == CR || ch == LF
|| ch == ';' || ch == '{') {
- len--;
last_space = 1;
found = 1;
}
if (found) {
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);
- word->len = len;
- for (dst = word->data, src = start;
+ for (dst = word->data, src = start, len = 0;
src < h->pos.mem - 1;
- /* void */)
+ len++)
{
if (*src == '\\') {
src++;
@@ -322,6 +320,7 @@
*dst++ = *src++;
}
*dst = '\0';
+ word->len = len;
ngx_log_debug(cf->log, "FOUND %d:'%s'" _ word->len _ word->data);
@@ -330,7 +329,6 @@
}
found = 0;
- len = 0;
}
}
}
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index e10e615..bff4960 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -2,6 +2,7 @@
#include <ngx_config.h>
#include <ngx_core.h>
#include <ngx_types.h>
+#include <ngx_errno.h>
#include <ngx_log.h>
#include <ngx_time.h>
#include <ngx_connection.h>
@@ -108,6 +109,7 @@
if (e == NULL || e->index == NGX_INVALID_INDEX) {
if (ev->index < --nevents) {
+ event_list[ev->index] = event_list[nevents];
event_index[ev->index] = event_index[nevents];
event_index[ev->index]->index = ev->index;
}
@@ -125,6 +127,7 @@
{
int i, ready, found;
u_int timer, delta;
+ ngx_err_t err;
ngx_event_t *ev;
ngx_connection_t *c;
@@ -202,7 +205,7 @@
if (c->read->oneshot) {
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) {
@@ -216,7 +219,7 @@
if (c->write->oneshot) {
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) {
@@ -226,7 +229,13 @@
if (event_list[i].revents & (POLLERR|POLLHUP|POLLNVAL)) {
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",
event_list[i].fd, event_list[i].revents);
}
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index 3cb070c..b91a72a 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -35,8 +35,18 @@
ngx_event_type_e ngx_event_type = NGX_KQUEUE_EVENT;
#endif
-#else
+#elif (HAVE_POLL)
+
+#if 0
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
ngx_event_actions_t ngx_event_actions;
diff --git a/src/http/ngx_http_event.c b/src/http/ngx_http_event.c
index f430bf0..bfb7005 100644
--- a/src/http/ngx_http_event.c
+++ b/src/http/ngx_http_event.c
@@ -313,9 +313,11 @@
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" _
r->method _ r->http_version _
r->uri.data _ r->exten.data);
+#endif
if (r->http_version == 9)
return NGX_OK;