Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2006-03-10 15:51:52 +0300
committerIgor Sysoev <igor@sysoev.ru>2006-03-10 15:51:52 +0300
commit13c68741f29943d0ba45f7c9d5a5c4251d5f16f6 (patch)
tree539580ab05f906419ca310ab8e0d437a1ae7fec8 /auto/os/features
parent15465ff78e5b53c9fb88dfde0adb8c99f6066892 (diff)
nginx-0.3.31-RELEASE importrelease-0.3.31
*) Change: now nginx passes the malformed proxied backend responses. *) Feature: the "listen" directives support the address in the "*:port" form. *) Feature: the EVFILER_TIMER support in MacOSX 10.4. *) Workaround: for MacOSX 64-bit kernel kqueue millisecond timeout bug. Thanks to Andrei Nigmatulin. *) Bugfix: if there were several "listen" directives listening one various addresses inside one server, then server names like "*.domain.tld" worked for first address only; the bug had appeared in 0.3.18. *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive and the request body was in temporarily file then the request was not transferred. *) Bugfix: perl 5.8.8 compatibility.
Diffstat (limited to 'auto/os/features')
-rw-r--r--auto/os/features81
1 files changed, 78 insertions, 3 deletions
diff --git a/auto/os/features b/auto/os/features
index 848e48309..702815187 100644
--- a/auto/os/features
+++ b/auto/os/features
@@ -87,13 +87,88 @@ if test -z "$NGX_KQUEUE_CHECKED"; then
ngx_feature_test="struct kevent kev;
kev.fflags = NOTE_LOWAT;"
. auto/feature
+
+
+ ngx_feature="kqueue's EVFILT_TIMER"
+ ngx_feature_name="NGX_HAVE_TIMER_EVENT"
+ ngx_feature_run=yes
+ ngx_feature_incs="#include <sys/event.h>
+#include <sys/time.h>"
+ ngx_feature_libs=
+ ngx_feature_test="int kq;
+ struct kevent kev;
+ struct timespec ts;
+
+ if ((kq = kqueue()) == -1) return 1;
+
+ kev.ident = 0;
+ kev.filter = EVFILT_TIMER;
+ kev.flags = EV_ADD|EV_ENABLE;
+ kev.fflags = 0;
+ kev.data = 1000;
+ kev.udata = 0;
+
+ ts.tv_sec = 0;
+ ts.tv_nsec = 0;
+
+ if (kevent(kq, &kev, 1, &kev, 1, &ts) == -1) return 1;
+
+ if (kev.flags & EV_ERROR) return 1;"
+
+ . auto/feature
+
+
+ if [ "$NGX_SYSTEM" = "Darwin" ]; then
+
+ ngx_feature="MacOSX 64-bit kqueue millisecond timeout bug"
+ ngx_feature_name=
+ ngx_feature_run=bug
+ ngx_feature_incs="#include <sys/event.h>
+#include <sys/time.h>"
+ ngx_feature_libs=
+ ngx_feature_test="int kq;
+ struct kevent kev;
+ struct timespec ts;
+ struct timeval tv, tv0;
+
+ kq = kqueue();
+
+ ts.tv_sec = 0;
+ ts.tv_nsec = 999000000;
+
+ gettimeofday(&tv, 0);
+ kevent(kq, NULL, 0, &kev, 1, &ts);
+ gettimeofday(&tv0, 0);
+ timersub(&tv0, &tv, &tv);
+
+ if (tv.tv_sec * 1000000 + tv.tv_usec < 900000) return 1;"
+
+ . auto/feature
+
+ ngx_macosx_kevent_bug=$ngx_found
+ fi
fi
fi
-if [ "$NGX_SYSTEM" = "NetBSD" ]; then
- have=NGX_HAVE_TIMER_EVENT . auto/have
- echo " + kqueue's EVFILT_TIMER found"
+if [ ".$ngx_macosx_kevent_bug" = .yes ]; then
+
+ cat << END >> $NGX_AUTO_CONFIG_H
+
+#define NGX_MACOSX_KEVENT_BUG_SHIFT << 32
+
+END
+
+else
+ cat << END >> $NGX_AUTO_CONFIG_H
+
+#define NGX_MACOSX_KEVENT_BUG_SHIFT
+
+END
+fi
+
+
+if [ "$NGX_SYSTEM" = "NetBSD" ]; then
# NetBSD 2.0 incompatibly defines kevent.udata as "intptr_t"