mirror of
https://github.com/nginx/nginx.git
synced 2025-02-25 18:55:26 -06:00
nginx-0.1.2-RELEASE import
*) Feature: the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS
options in configure.
*) Feature: the server_name directive supports *.domain.tld.
*) Bugfix: the portability improvements.
*) Bugfix: if configuration file was set in command line, the
reconfiguration was impossible; the bug had appeared in 0.1.1.
*) Bugfix: proxy module may get caught in an endless loop when sendfile
is not used.
*) Bugfix: with sendfile the response was not recoded according to the
charset module directives; the bug had appeared in 0.1.1.
*) Bugfix: very seldom bug in the kqueue processing.
*) Bugfix: the gzip module compressed the proxied responses that was
already compressed.
This commit is contained in:
69
auto/os/conf
69
auto/os/conf
@@ -31,21 +31,7 @@ case $PLATFORM in
|
||||
;;
|
||||
|
||||
win32)
|
||||
CORE_INCS="$WIN32_INCS"
|
||||
CORE_DEPS="$WIN32_DEPS"
|
||||
CORE_SRCS="$WIN32_SRCS $IOCP_SRCS"
|
||||
OS_CONFIG="$WIN32_CONFIG"
|
||||
EVENT_MODULES="$EVENT_MODULES $IOCP_MODULE"
|
||||
EVENT_FOUND=YES
|
||||
|
||||
if [ $EVENT_SELECT = NO ]; then
|
||||
CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
|
||||
EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
|
||||
fi
|
||||
|
||||
have=HAVE_AIO . auto/have
|
||||
have=HAVE_IOCP . auto/have
|
||||
CORE_LIBS="$CORE_LIBS ws2_32.lib"
|
||||
. auto/os/win32
|
||||
;;
|
||||
|
||||
*)
|
||||
@@ -55,3 +41,56 @@ case $PLATFORM in
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
|
||||
if [ $PLATFORM != win32 ]; then
|
||||
|
||||
ngx_feature="/dev/poll"
|
||||
ngx_feature_name="devpoll"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sys/devpoll.h>"
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="int n, dp; struct dvpoll dvp;
|
||||
dp = 0;
|
||||
dvp.dp_fds = NULL;
|
||||
dvp.dp_nfds = 0;
|
||||
dvp.dp_timeout = 0;
|
||||
n = ioctl(dp, DP_POLL, &dvp)"
|
||||
. auto/feature
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
have=HAVE_DEVPOLL . auto/have
|
||||
CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
|
||||
EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
|
||||
EVENT_FOUND=YES
|
||||
fi
|
||||
|
||||
|
||||
if test -z "$NGX_KQUEUE_CHECKED"; then
|
||||
ngx_feature="kqueue"
|
||||
ngx_feature_name="kqueue"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sys/event.h>"
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="int kq; kq = kqueue()"
|
||||
. auto/feature
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
|
||||
have=HAVE_KQUEUE . auto/have
|
||||
have=HAVE_CLEAR_EVENT . auto/have
|
||||
EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
|
||||
CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
|
||||
EVENT_FOUND=YES
|
||||
|
||||
ngx_feature="kqueue's NOTE_LOWAT"
|
||||
ngx_feature_name="HAVE_LOWAT_EVENT"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sys/event.h>"
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="struct kevent kev;
|
||||
kev.fflags = NOTE_LOWAT;"
|
||||
. auto/feature
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -2,19 +2,33 @@
|
||||
# Copyright (C) Igor Sysoev
|
||||
|
||||
|
||||
cat << END >> $NGX_AUTO_HEADERS_H
|
||||
|
||||
#ifndef NGX_FREEBSD
|
||||
#define NGX_FREEBSD 1
|
||||
#endif
|
||||
|
||||
END
|
||||
|
||||
|
||||
CORE_INCS="$UNIX_INCS"
|
||||
CORE_DEPS="$UNIX_DEPS $FREEBSD_DEPS"
|
||||
CORE_SRCS="$UNIX_SRCS $FREEBSD_SRCS"
|
||||
|
||||
PIPE="-pipe"
|
||||
ngx_spacer='
|
||||
'
|
||||
|
||||
|
||||
# __FreeBSD_version is the best way to determine whether
|
||||
# some capability exists and is safe to use
|
||||
# __FreeBSD_version and sysctl kern.osreldate are the best ways
|
||||
# to determine whether some capability exists and is safe to use.
|
||||
# __FreeBSD_version is used for the testing of the build enviroment.
|
||||
# sysctl kern.osreldate is used for the testing of the kernel capabilities.
|
||||
|
||||
version=`grep "#define __FreeBSD_version" /usr/include/osreldate.h \
|
||||
| sed -e 's/^.* \(.*\)$/\1/'`
|
||||
|
||||
osreldate=`/sbin/sysctl -n kern.osreldate`
|
||||
|
||||
|
||||
# setproctitle() in libutil
|
||||
|
||||
@@ -28,7 +42,7 @@ fi
|
||||
|
||||
# sendfile
|
||||
|
||||
if [ $version -gt 300007 ]; then
|
||||
if [ $osreldate -gt 300007 ]; then
|
||||
echo " + using sendfile()"
|
||||
|
||||
have=HAVE_SENDFILE . auto/have
|
||||
@@ -38,8 +52,8 @@ fi
|
||||
|
||||
# kqueue
|
||||
|
||||
if [ \( $version -lt 500000 -a $version -ge 410000 \) \
|
||||
-o $version -ge 500011 ]
|
||||
if [ \( $osreldate -lt 500000 -a $osreldate -ge 410000 \) \
|
||||
-o $osreldate -ge 500011 ]
|
||||
then
|
||||
echo " + using kqueue"
|
||||
|
||||
@@ -50,6 +64,8 @@ then
|
||||
EVENT_FOUND=YES
|
||||
fi
|
||||
|
||||
NGX_KQUEUE_CHECKED=YES
|
||||
|
||||
|
||||
# kqueue's NOTE_LAWAT
|
||||
|
||||
|
||||
@@ -2,15 +2,23 @@
|
||||
# Copyright (C) Igor Sysoev
|
||||
|
||||
|
||||
cat << END >> $NGX_AUTO_HEADERS_H
|
||||
|
||||
#ifndef NGX_LINUX
|
||||
#define NGX_LINUX 1
|
||||
#endif
|
||||
|
||||
END
|
||||
|
||||
CORE_INCS="$UNIX_INCS"
|
||||
CORE_DEPS="$UNIX_DEPS $LINUX_DEPS"
|
||||
CORE_SRCS="$UNIX_SRCS $LINUX_SRCS"
|
||||
EVENT_MODULES="$EVENT_MODULES"
|
||||
|
||||
PIPE="-pipe"
|
||||
ngx_spacer='
|
||||
'
|
||||
|
||||
|
||||
CC_TEST_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
|
||||
CC_AUX_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||
|
||||
# Linux kernel version
|
||||
|
||||
@@ -31,14 +39,18 @@ fi
|
||||
|
||||
# epoll, EPOLLET version
|
||||
|
||||
ngx_func="epoll";
|
||||
ngx_func_inc="#include <sys/epoll.h>"
|
||||
ngx_func_test="int efd = 0, fd = 1, n;
|
||||
struct epoll_event ee;
|
||||
ee.events = EPOLLIN|EPOLLOUT|EPOLLET;
|
||||
ee.data.ptr = NULL;
|
||||
n = epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)"
|
||||
. auto/func
|
||||
ngx_feature="epoll"
|
||||
ngx_feature_name="epoll"
|
||||
ngx_feature_run=yes
|
||||
ngx_feature_incs="#include <sys/epoll.h>"
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="int efd = 0, fd = 1, n;
|
||||
struct epoll_event ee;
|
||||
ee.events = EPOLLIN|EPOLLOUT|EPOLLET;
|
||||
ee.data.ptr = NULL;
|
||||
efd = epoll_create(100);
|
||||
if (efd == -1) return 1;"
|
||||
. auto/feature
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
have=HAVE_EPOLL . auto/have
|
||||
@@ -51,13 +63,16 @@ fi
|
||||
|
||||
# sendfile()
|
||||
|
||||
CC_TEST_FLAGS="-D_GNU_SOURCE"
|
||||
ngx_func="sendfile()";
|
||||
ngx_func_inc="#include <sys/sendfile.h>"
|
||||
ngx_func_test="int s = 0, fd = 1;
|
||||
ssize_t n; off_t off = 0;
|
||||
n = sendfile(s, fd, &off, 1)"
|
||||
. auto/func
|
||||
CC_AUX_FLAGS="-D_GNU_SOURCE"
|
||||
ngx_feature="sendfile()"
|
||||
ngx_feature_name="sendfile"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sys/sendfile.h>"
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="int s = 0, fd = 1;
|
||||
ssize_t n; off_t off = 0;
|
||||
n = sendfile(s, fd, &off, 1)"
|
||||
. auto/feature
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS"
|
||||
@@ -66,17 +81,26 @@ fi
|
||||
|
||||
# sendfile64()
|
||||
|
||||
CC_TEST_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE"
|
||||
ngx_func="sendfile64()"; . auto/func
|
||||
CC_AUX_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||
ngx_feature="sendfile64()"
|
||||
ngx_feature_name="HAVE_SENDFILE64"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sys/sendfile.h>"
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="int s = 0, fd = 1;
|
||||
ssize_t n; off_t off = 0;
|
||||
n = sendfile(s, fd, &off, 1)"
|
||||
. auto/feature
|
||||
|
||||
|
||||
ngx_include="sys/prctl.h"; . auto/include
|
||||
|
||||
# prctl(PR_SET_DUMPABLE)
|
||||
|
||||
ngx_func="prctl()";
|
||||
ngx_func_inc="#include <sys/prctl.h>"
|
||||
ngx_func_test="prctl(PR_SET_DUMPABLE, 1, 0, 0, 0)"
|
||||
. auto/func
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
have=HAVE_PR_SET_DUMPABLE . auto/have
|
||||
fi
|
||||
ngx_feature="prctl(PR_SET_DUMPABLE)"
|
||||
ngx_feature_name="HAVE_PR_SET_DUMPABLE"
|
||||
ngx_feature_run=yes
|
||||
ngx_feature_incs="#include <sys/prctl.h>"
|
||||
ngx_feature_libs=
|
||||
ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1"
|
||||
. auto/feature
|
||||
|
||||
@@ -2,6 +2,14 @@
|
||||
# Copyright (C) Igor Sysoev
|
||||
|
||||
|
||||
cat << END >> $NGX_AUTO_HEADERS_H
|
||||
|
||||
#ifndef NGX_SOLARIS
|
||||
#define NGX_SOLARIS 1
|
||||
#endif
|
||||
|
||||
END
|
||||
|
||||
CORE_INCS="$UNIX_INCS"
|
||||
CORE_DEPS="$UNIX_DEPS $SOLARIS_DEPS"
|
||||
CORE_SRCS="$UNIX_SRCS $SOLARIS_SRCS "
|
||||
@@ -9,40 +17,17 @@ EVENT_MODULES="$EVENT_MODULES"
|
||||
|
||||
CORE_LIBS="$CORE_LIBS -lsocket -lnsl -lrt"
|
||||
|
||||
# the Solaris's make support
|
||||
MAKE_SL=YES
|
||||
# Solaris's make does not support a blank line between target and rules
|
||||
ngx_spacer=
|
||||
|
||||
|
||||
CC_TEST_FLAGS="-D_FILE_OFFSET_BITS=64"
|
||||
|
||||
case $PLATFORM in
|
||||
|
||||
SunOS:5.[89]:* | SunOS:5.10:*)
|
||||
PIPE="-pipe"
|
||||
;;
|
||||
|
||||
*)
|
||||
# Solaris 7's /usr/ccs/bin/as does not support "-pipe"
|
||||
;;
|
||||
|
||||
esac
|
||||
CC_AUX_FLAGS="-D_FILE_OFFSET_BITS=64 -lrt"
|
||||
|
||||
|
||||
case $PLATFORM in
|
||||
|
||||
*:sun4u)
|
||||
# "-mcpu=v9" enables the "casa" assembler instruction
|
||||
CFLAGS="$CFLAGS -mcpu=v9"
|
||||
|
||||
if [ ".$CPU" = ".sparc64" ]; then
|
||||
CFLAGS="$CFLAGS -m64"
|
||||
CPU_OPT="-m64"
|
||||
CORE_LINK="$CORE_LINK -m64"
|
||||
|
||||
CC_TEST_FLAGS="$CC_TEST_FLAGS -mcpu=v9 -m64"
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
;;
|
||||
|
||||
esac
|
||||
@@ -57,23 +42,15 @@ if [ $ZLIB_ASM != NO ]; then
|
||||
fi
|
||||
|
||||
|
||||
ngx_inc="sys/devpoll.h"; . auto/inc
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
have=HAVE_DEVPOLL . auto/have
|
||||
CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
|
||||
EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
|
||||
EVENT_FOUND=YES
|
||||
fi
|
||||
|
||||
|
||||
ngx_func="sendfilev()";
|
||||
ngx_func_inc="#include <sys/sendfile.h>"
|
||||
ngx_func_libs="-lsendfile"
|
||||
ngx_func_test="int fd = 1; sendfilevec_t vec[1];
|
||||
size_t sent; ssize_t n;
|
||||
n = sendfilev(fd, vec, 1, &sent)"
|
||||
. auto/func
|
||||
ngx_feature="sendfilev()"
|
||||
ngx_feature_name="sendfile"
|
||||
ngx_feature_run=no
|
||||
ngx_feature_incs="#include <sys/sendfile.h>"
|
||||
ngx_feature_libs="-lsendfile"
|
||||
ngx_feature_test="int fd = 1; sendfilevec_t vec[1];
|
||||
size_t sent; ssize_t n;
|
||||
n = sendfilev(fd, vec, 1, &sent)"
|
||||
. auto/feature
|
||||
|
||||
|
||||
if [ $ngx_found = yes ]; then
|
||||
|
||||
29
auto/os/win32
Normal file
29
auto/os/win32
Normal file
@@ -0,0 +1,29 @@
|
||||
|
||||
# Copyright (C) Igor Sysoev
|
||||
|
||||
|
||||
cat << END >> $NGX_AUTO_HEADERS_H
|
||||
|
||||
#ifndef NGX_WIN32
|
||||
#define NGX_WIN32 1
|
||||
#endif
|
||||
|
||||
END
|
||||
|
||||
|
||||
CORE_INCS="$WIN32_INCS"
|
||||
CORE_DEPS="$WIN32_DEPS"
|
||||
CORE_SRCS="$WIN32_SRCS $IOCP_SRCS"
|
||||
OS_CONFIG="$WIN32_CONFIG"
|
||||
CORE_LIBS="$CORE_LIBS ws2_32.lib"
|
||||
|
||||
EVENT_MODULES="$EVENT_MODULES $IOCP_MODULE"
|
||||
EVENT_FOUND=YES
|
||||
|
||||
if [ $EVENT_SELECT = NO ]; then
|
||||
CORE_SRCS="$CORE_SRCS $SELECT_SRCS"
|
||||
EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE"
|
||||
fi
|
||||
|
||||
have=HAVE_AIO . auto/have
|
||||
have=HAVE_IOCP . auto/have
|
||||
Reference in New Issue
Block a user