nginx-0.0.2-2004-03-09-22:47:07 import

This commit is contained in:
Igor Sysoev 2004-03-09 19:47:07 +00:00
parent 833823cbb8
commit fc5a10aedc
34 changed files with 554 additions and 181 deletions

48
auto/cc
View File

@ -31,8 +31,10 @@ case $CC in
have=HAVE_GCC_VARIADIC_MACROS . auto/have
LINK="\$(CC)"
OBJEXT=o
COMPILEONLY="-c "
COMPILEONLY="-c"
OBJOUT="-o "
BINOUT="-o "
@ -58,8 +60,10 @@ case $CC in
have=HAVE_C99_VARIADIC_MACROS . auto/have
LINK="\$(CC)"
OBJEXT=o
COMPILEONLY="-c "
COMPILEONLY="-c"
OBJOUT="-o "
BINOUT="-o "
@ -100,11 +104,14 @@ case $CC in
# disable logo
CFLAGS="$CFLAGS -nologo"
LINK="\$(CC)"
# link flags
CORE_LINK="$CORE_LINK -link"
# msvcrt.dll
CORE_LINK="$CORE_LINK -nodefaultlib:libcmt"
CORE_LIBS="$CORE_LIBS msvcrt.lib"
# static libc
#CORE_LINK="$CORE_LINK -nodefaultlib:msvcrt"
@ -115,16 +122,23 @@ case $CC in
CFLAGS="$CFLAGS -Yd"
CORE_LINK="$CORE_LINK -debug -debugtype:coff"
# precompiled headers
CORE_DEPS="$CORE_DEPS ngx_config.pch"
PCH="ngx_config.pch"
BUILDPCH="-Ycngx_config.h"
USEPCH="-Yungx_config.h"
OBJEXT=obj
COMPILEONLY="-c "
COMPILEONLY="-c"
OBJOUT="-Fo"
BINOUT="-Fe"
BINEXT=.exe
CC_STRONG="$CC -W3 -WX"
;;
wcc386)
wcl386)
# Open Watcom 1.0
# optimization
@ -139,16 +153,18 @@ case $CC in
CFLAGS="$CFLAGS -oe"
# disable stack checking calls
CFLAGS="$CFLAGS -s"
# optimize for Pentium Pro
#CFLAGS="$CFLAGS -6r"
CFLAGS="$CFLAGS -6s"
# optimize for Pentium Pro, register-based arguments
OWC_OPT="-6r"
# optimize for Pentium Pro, stack-based arguments
#OWC_OPT="-6s"
CFLAGS="$CFLAGS $OWC_OPT"
# warnings
#CFLAGS="$CFLAGS -w3"
CFLAGS="$CFLAGS -wx"
# stop on warning
#CFLAGS="$CFLAGS -we"
CFLAGS="$CFLAGS -we"
# built target is NT
CFLAGS="$CFLAGS -bt=nt"
@ -162,13 +178,23 @@ case $CC in
# quiet
CFLAGS="$CFLAGS -zq"
# link traget is NT
# precompiled headers
CORE_DEPS="$CORE_DEPS $OBJS\\ngx_config.pch"
PCH="$OBJS\\ngx_config.pch"
BUILDPCH="-fhq=$OBJS\\ngx_config.pch"
USEPCH="-fh=$OBJS\\ngx_config.pch"
LINK="\$(CC)"
# link flags
CORE_LINK="$CORE_LINK -l=nt"
OBJEXT=obj
COMPILEONLY=
COMPILEONLY="-c"
OBJOUT="-fo"
BINOUT="-fo"
BINOUT="-fe="
BINEXT=.exe
INC_EQ=YES
MAKE_BS=YES
MAKE_SL=YES

View File

@ -9,7 +9,10 @@ NGX_ERR=$OBJS/autoconf.err
CC_WARN=$CC
PCH=NO
USEPCH=
BINEXT=
INC_EQ=NO
MAKE_BS=NO
MAKE_SL=NO

View File

@ -1,18 +1,12 @@
if [ "$PLATFORM" != "win32" ]; then
if [ $PCRE != NO ]; then
. auto/lib/pcre/make
fi
if [ $MD5 != NO ]; then
. auto/lib/md5/make
fi
if [ $ZLIB != NO ]; then
. auto/lib/zlib/make
fi
if [ $MD5 != NO ]; then
. auto/lib/md5/make
fi
if [ $ZLIB != NO ]; then
. auto/lib/zlib/make
fi
if [ $PCRE != NO ]; then
. auto/lib/pcre/make
fi

View File

@ -12,13 +12,25 @@ if [ $MD5 != NONE ]; then
CORE_INCS="$CORE_INCS -I $MD5"
if [ "$PLATFORM" = "win32" ]; then
CORE_LIBS="$CORE_LIBS md5.lib"
CORE_LINK="$CORE_LINK -libpath:$MD5"
else
LINK_DEPS="$LINK_DEPS $MD5/libmd5.a"
CORE_LIBS="$CORE_LIBS -L $MD5 -lmd5"
fi
case $CC in
cl)
LINK_DEPS="$LINK_DEPS $MD5/md5.lib"
CORE_LIBS="$CORE_LIBS md5.lib"
CORE_LINK="$CORE_LINK -libpath:$MD5"
;;
wcl386)
LINK_DEPS="$LINK_DEPS $MD5/md5.lib"
CORE_LIBS="$CORE_LIBS $MD5/md5.lib"
;;
*)
LINK_DEPS="$LINK_DEPS $MD5/libmd5.a"
CORE_LIBS="$CORE_LIBS -L $MD5 -lmd5"
;;
esac
else

View File

@ -1,24 +1,56 @@
echo "$MD5/libmd5.a:" >> $MAKEFILE
case $CC in
cl)
makefile=makefile.msvc
;;
wcl386)
makefile=makefile.owc
;;
esac
case $PLATFORM in
win32)
echo "$MD5/md5.lib:" >> $MAKEFILE
;;
*)
echo "$MD5/libmd5.a:" >> $MAKEFILE
;;
esac
case $PLATFORM in
win32)
cp auto/lib/md5/$makefile $MD5
echo " cd $MD5" >> $MAKEFILE
echo " \$(MAKE) -f $makefile OWC_OPT=$OWC_OPT" >> $MAKEFILE
echo " cd ..\\..\\.." >> $MAKEFILE
;;
SunOS:*:i386)
echo " cd $MD5 && \$(MAKE) x86-solaris" >> $MAKEFILE
echo " cd $MD5 && \$(MAKE) x86-solaris" >> $MAKEFILE
;;
*:i386)
echo " cd $MD5 && \$(MAKE) x86-elf" >> $MAKEFILE
echo " cd $MD5 && \$(MAKE) x86-elf" >> $MAKEFILE
;;
*)
if [ $CC = gcc ]; then
echo " cd $MD5 && \$(MAKE) gcc" >> $MAKEFILE
echo " cd $MD5 && \$(MAKE) gcc" >> $MAKEFILE
else
echo " cd $MD5 && \$(MAKE) cc" >> $MAKEFILE
echo " cd $MD5 && \$(MAKE) cc" >> $MAKEFILE
fi
;;
esac
echo >> $MAKEFILE
echo >> $MAKEFILE

View File

@ -1,6 +1,6 @@
all:
cl -nologo -c -MT -O2 -Ob1 -Oi -Gs -D MD5_ASM -D L_ENDIAN \
md5_dgst.c md5_one.c
CFLAGS = -nologo -c -MT -O2 -Ob1 -Oi -Gs -D MD5_ASM -D L_ENDIAN
link -lib -out:md5.lib md5_dgst.obj md5_one.obj asm/m-win32.obj
md5.lib:
cl $(CFLAGS) md5_dgst.c
link -lib -out:md5.lib md5_dgst.obj asm/m-win32.obj

12
auto/lib/md5/makefile.owc Normal file
View File

@ -0,0 +1,12 @@
CFLAGS = -c -zq -bt=nt -ot -op -oi -oe -s $(OWC_OPT)
md5.lib:
wcl386 $(CFLAGS) -bm -dL_ENDIAN md5_dgst.c
wlib -n md5.lib md5_dgst.obj
#md5.lib:
asm:
wcl386 $(CFLAGS) -bm -dMD5_ASM -dL_ENDIAN md5_dgst.c
wcl386 $(CFLAGS) asm\m-win32.asm
wlib -n md5.lib md5_dgst.obj m-win32.obj

View File

@ -4,37 +4,54 @@ if [ $PCRE != NONE ]; then
CORE_DEPS="$CORE_DEPS $REGEX_DEPS"
CORE_SRCS="$CORE_SRCS $REGEX_SRCS"
if [ "$PLATFORM" = "win32" ]; then
have=HAVE_PCRE . auto/have
have=PCRE_STATIC . auto/have
CORE_LIBS="$CORE_LIBS pcre.lib"
CORE_LINK="$CORE_LINK -libpath:$PCRE"
else
have=HAVE_PCRE . auto/have
CORE_DEPS="$CORE_DEPS $PCRE/.libs/libpcre.a"
CORE_LIBS="$CORE_LIBS -L $PCRE/.libs -lpcre"
fi
case $CC in
cl)
have=HAVE_PCRE . auto/have
have=PCRE_STATIC . auto/have
CORE_DEPS="$CORE_DEPS $PCRE/pcre.lib"
#CORE_DEPS="$PCRE/pcre.lib $CORE_DEPS"
CORE_LIBS="$CORE_LIBS pcre.lib"
CORE_LINK="$CORE_LINK -libpath:$PCRE"
;;
wcl386)
have=HAVE_PCRE . auto/have
have=PCRE_STATIC . auto/have
CORE_DEPS="$CORE_DEPS $PCRE/pcre.lib"
CORE_LIBS="$CORE_LIBS $PCRE/pcre.lib"
;;
*)
have=HAVE_PCRE . auto/have
CORE_DEPS="$CORE_DEPS $PCRE/.libs/libpcre.a"
CORE_LIBS="$CORE_LIBS -L $PCRE/.libs -lpcre"
;;
esac
else
ngx_lib_inc="#include <pcre.h>"
if [ $PLATFORM != win32 ]; then
ngx_lib_inc="#include <pcre.h>"
ngx_lib="PCRE"
ngx_lib_test="pcre *re; pcre_compile(re, 0, NULL, 0, NULL)"
ngx_libs=-lpcre
. auto/lib/test
ngx_lib="PCRE"
ngx_lib_test="pcre *re; pcre_compile(re, 0, NULL, 0, NULL)"
ngx_libs=-lpcre
. auto/lib/test
if [ $ngx_found = yes ]; then
have=HAVE_PCRE . auto/have
if [ $ngx_found = yes ]; then
have=HAVE_PCRE . auto/have
CORE_DEPS="$CORE_DEPS $REGEX_DEPS"
CORE_SRCS="$CORE_SRCS $REGEX_SRCS"
CORE_LIBS="$CORE_LIBS $ngx_libs"
CORE_DEPS="$CORE_DEPS $REGEX_DEPS"
CORE_SRCS="$CORE_SRCS $REGEX_SRCS"
CORE_LIBS="$CORE_LIBS $ngx_libs"
PCRE=YES
else
PCRE=NO
PCRE=YES
else
PCRE=NO
fi
fi
fi

View File

@ -1,7 +1,47 @@
echo "$PCRE/.libs/libpcre.a:" >> $MAKEFILE
echo " cd $PCRE \\" >> $MAKEFILE
echo " && ./configure --disable-shared \\" >> $MAKEFILE
echo " && \$(MAKE)" >> $MAKEFILE
echo >> $MAKEFILE
case $CC in
cl)
makefile=makefile.msvc
;;
wcl386)
makefile=makefile.owc
;;
esac
case $PLATFORM in
win32)
echo "$PCRE/pcre.lib:" >> $MAKEFILE
;;
*)
echo "$PCRE/.libs/libpcre.a:" >> $MAKEFILE
;;
esac
case $PLATFORM in
win32)
cp auto/lib/pcre/patch.pcre $PCRE
cp auto/lib/pcre/patch.config $PCRE
cp auto/lib/pcre/$makefile $PCRE
echo " cd $PCRE" >> $MAKEFILE
echo " \$(MAKE) -f $makefile OWC_OPT=$OWC_OPT" >> $MAKEFILE
echo " cd ..\\..\\.." >> $MAKEFILE
;;
*)
echo " cd $PCRE \\" >> $MAKEFILE
echo " && ./configure --disable-shared \\" >> $MAKEFILE
echo " && \$(MAKE)" >> $MAKEFILE
;;
esac
echo >> $MAKEFILE

View File

@ -1,18 +1,18 @@
CC = cl
CFLAGS = -O2 -Ob1 -Oi -Gs -MT
LINK = link
PCREFLAGS = -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10
all:
$(CC) -Fedftables dftables.c
pcre.lib:
patch -o pcre.h pcre.in patch.pcre
patch -o config.h config.in patch.config
cl -Fedftables dftables.c
dftables > chartables.c
$(CC) -nologo -c $(CFLAGS) $(PCREFLAGS) \
cl -nologo -c $(CFLAGS) $(PCREFLAGS) \
maketables.c get.c study.c pcre.c
$(LINK) -lib -out:pcre.lib -verbose:lib \
link -lib -out:pcre.lib -verbose:lib \
maketables.obj get.obj study.obj pcre.obj

View File

@ -0,0 +1,14 @@
CFLAGS = -c -zq -bt=nt -ot -op -oi -oe -s -bm $(OWC_OPT)
PCREFLAGS = -DPCRE_STATIC -DPOSIX_MALLOC_THRESHOLD=10
pcre.lib:
patch -o pcre.h pcre.in patch.pcre
patch -o config.h config.in patch.config
wcl386 -zq -bt=nt -l=nt -fe=dftables dftables.c
dftables > chartables.c
wcl386 $(CFLAGS) $(PCREFLAGS) maketables.c get.c study.c pcre.c
wlib -n pcre.lib maketables.obj get.obj study.obj pcre.obj

View File

@ -0,0 +1,11 @@
--- config.in.orig Thu Aug 21 14:43:07 2003
+++ config.in Sun Mar 7 02:37:24 2004
@@ -28,7 +28,7 @@
found. */
#define HAVE_STRERROR 0
-#define HAVE_MEMMOVE 0
+#define HAVE_MEMMOVE 1
/* There are some non-Unix systems that don't even have bcopy(). If this macro
is false, an emulation is used. If HAVE_MEMMOVE is set to 1, the value of

15
auto/lib/pcre/patch.pcre Normal file
View File

@ -0,0 +1,15 @@
--- pcre.in.orig Thu Aug 21 14:43:07 2003
+++ pcre.in Sun Mar 7 02:10:11 2004
@@ -10,9 +10,9 @@
/* The file pcre.h is build by "configure". Do not edit it; instead
make changes to pcre.in. */
-#define PCRE_MAJOR @PCRE_MAJOR@
-#define PCRE_MINOR @PCRE_MINOR@
-#define PCRE_DATE @PCRE_DATE@
+#define PCRE_MAJOR 4
+#define PCRE_MINOR 4
+#define PCRE_DATE 21-August-2003
/* Win32 uses DLL by default */

View File

@ -2,13 +2,25 @@
if [ $ZLIB != NONE ]; then
CORE_INCS="$CORE_INCS -I $ZLIB"
if [ "$PLATFORM" = "win32" ]; then
CORE_LIBS="$CORE_LIBS zlib.lib"
CORE_LINK="$CORE_LINK -libpath:$ZLIB"
else
LINK_DEPS="$LINK_DEPS $ZLIB/libz.a"
CORE_LIBS="$CORE_LIBS -L $ZLIB -lz"
fi
case $CC in
cl)
LINK_DEPS="$LINK_DEPS $ZLIB/zlib.lib"
CORE_LIBS="$CORE_LIBS zlib.lib"
CORE_LINK="$CORE_LINK -libpath:$ZLIB"
;;
wcl386)
LINK_DEPS="$LINK_DEPS $ZLIB/zlib.lib"
CORE_LIBS="$CORE_LIBS $ZLIB/zlib.lib"
;;
*)
LINK_DEPS="$LINK_DEPS $ZLIB/libz.a"
CORE_LIBS="$CORE_LIBS -L $ZLIB -lz"
;;
esac
else

View File

@ -1,19 +1,52 @@
echo "$ZLIB/libz.a:" >> $MAKEFILE
case $CC in
case $PLATFORM in
*:i386)
echo " cd $ZLIB \\" >> $MAKEFILE
echo " && cp contrib/asm686/match.S . \\" >> $MAKEFILE
echo " && CFLAGS=\"-O3 -DASMV\" ./configure \\" >> $MAKEFILE
echo " && \$(MAKE) OBJA=match.o" >> $MAKEFILE
cl)
makefile=makefile.msvc
;;
*)
echo " cd $ZLIB && ./configure && \$(MAKE)" >> $MAKEFILE
wcl386)
makefile=makefile.owc
;;
esac
echo >> $MAKEFILE
case $PLATFORM in
win32)
echo "$ZLIB/zlib.lib:" >> $MAKEFILE
;;
*)
echo "$ZLIB/libz.a:" >> $MAKEFILE
;;
esac
case $PLATFORM in
win32)
cp auto/lib/zlib/$makefile $ZLIB
echo " cd $ZLIB" >> $MAKEFILE
echo " \$(MAKE) -f $makefile OWC_OPT=$OWC_OPT" >> $MAKEFILE
echo " cd ..\\..\\.." >> $MAKEFILE
;;
*:i386)
echo " cd $ZLIB \\" >> $MAKEFILE
echo " && cp contrib/asm686/match.S . \\" >> $MAKEFILE
echo " && CFLAGS=\"-O3 -DASMV\" ./configure \\" >> $MAKEFILE
echo " && \$(MAKE) OBJA=match.o" >> $MAKEFILE
;;
*)
echo " cd $ZLIB && ./configure && \$(MAKE)" >> $MAKEFILE
;;
esac
echo >> $MAKEFILE

View File

@ -0,0 +1,8 @@
CFLAGS = -nologo -c -MT -O2 -Ob1 -Oi -Gs
zlib.lib:
cl $(CFLAGS) adler32.c crc32.c deflate.c trees.c zutil.c
link -lib -out:zlib.lib adler32.obj crc32.obj deflate.obj \
trees.obj zutil.obj

View File

@ -0,0 +1,6 @@
CFLAGS = -c -zq -bt=nt -ot -op -oi -oe -s -bm $(OWC_OPT)
zlib.lib:
wcl386 $(CFLAGS) adler32.c crc32.c deflate.c trees.c zutil.c
wlib -n zlib.lib adler32.obj crc32.obj deflate.obj trees.obj zutil.obj

View File

@ -5,10 +5,31 @@ mkdir -p $OBJS/src/core $OBJS/src/event $OBJS/src/event/modules \
echo "CC = $CC" > $MAKEFILE
echo "LINK = $LINK" >> $MAKEFILE
if [ $CC = wcl386 ]; then
echo MAKE = wmake >> $MAKEFILE
fi
echo "CFLAGS = $CFLAGS" >> $MAKEFILE
echo >> $MAKEFILE
if [ $MAKE_SL = YES ]; then
echo >> $MAKEFILE
fi
all_inc="$CORE_INCS -I $OBJS $HTTP_INCS"
if [ $INC_EQ = YES ]; then
all_inc=`echo $all_inc | sed -e "s/-I /-i=/g"`
fi
if [ $MAKE_BS = YES ]; then
all_inc=`echo $all_inc | sed -e "s/\//\\\\\\/g"`
fi
echo "ALL_INCS = $all_inc" >> $MAKEFILE
echo >> $MAKEFILE
# CORE_DEPS
if [ $MAKE_SL = YES ]; then
@ -96,9 +117,9 @@ echo >> $MAKEFILE
# nginx
if [ $MAKE_SL = YES ]; then
echo $ngx_n "nginx: " $ngx_c >> $MAKEFILE
echo $ngx_n "nginx$BINEXT: " $ngx_c >> $MAKEFILE
else
echo "nginx: \\" >> $MAKEFILE
echo "nginx$BINEXT: \\" >> $MAKEFILE
fi
@ -140,9 +161,9 @@ echo >> $MAKEFILE
# nginx build
if [ $MAKE_SL = YES ]; then
echo $ngx_n " \$(CC) ${BINOUT}nginx" $ngx_c >> $MAKEFILE
echo $ngx_n " \$(LINK) ${BINOUT}nginx" $ngx_c >> $MAKEFILE
else
echo " \$(CC) ${BINOUT}nginx \\" >> $MAKEFILE
echo " \$(LINK) ${BINOUT}nginx \\" >> $MAKEFILE
fi
@ -190,7 +211,12 @@ fi
# ngx_modules.c
deps="\$(CORE_DEPS)"
args="\$(CFLAGS) \$(CORE_INCS)"
if [ $PCH != NO ]; then
args="\$(CFLAGS) $USEPCH \$(ALL_INCS)"
else
args="\$(CFLAGS) $USEPCH \$(CORE_INCS)"
fi
if [ $MAKE_SL = YES ]; then
echo "$obj: $NGX_MODULES_C $deps" >> $MAKEFILE
@ -237,7 +263,12 @@ done
# http sources
deps="\$(CORE_DEPS) \$(HTTP_DEPS)"
args="\$(CFLAGS) \$(CORE_INCS) \$(HTTP_INCS)"
if [ $PCH != NO ]; then
args="\$(CFLAGS) $USEPCH \$(ALL_INCS)"
else
args="\$(CFLAGS) $USEPCH \$(CORE_INCS) \$(HTTP_INCS)"
fi
for src in $HTTP_SRCS
do
@ -262,3 +293,23 @@ do
echo >> $MAKEFILE
fi
done
# precompiled headers
if [ $PCH != NO ]; then
echo "#include <ngx_config.h>" > $OBJS/pch.c
pch="$PCH: src/core/ngx_config.h $OS_CONFIG $OBJS/ngx_auto_config.h"
src="\$(CC) \$(CFLAGS) $BUILDPCH $COMPILEONLY \$(ALL_INCS)"
src="$src $OBJOUT$OBJS/pch.obj $OBJS/pch.c"
if [ $MAKE_BS = YES ]; then
pch=`echo $pch | sed -e "s/\//\\\\\\/g"`
src=`echo $src | sed -e "s/\//\\\\\\/g"`
fi
echo "$pch" >> $MAKEFILE
echo " $src" >> $MAKEFILE
echo >> $MAKEFILE
fi

View File

@ -31,15 +31,13 @@ case $PLATFORM in
CORE_INCS="$WIN32_INCS"
CORE_DEPS="$WIN32_DEPS"
CORE_SRCS="$WIN32_SRCS $SELECT_SRCS $IOCP_SRCS"
OS_CONFIG="$WIN32_CONFIG"
EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE $IOCP_MODULE"
EVENT_FOUND=YES
have=HAVE_AIO . auto/have
have=HAVE_IOCP . auto/have
CORE_LIBS="$CORE_LIBS ws2_32.lib"
# msvcrt.dll
CORE_LIBS="$CORE_LIBS msvcrt.lib"
;;
esac

View File

@ -148,6 +148,8 @@ WIN32_DEPS="$CORE_DEPS $EVENT_DEPS \
src/os/win32/ngx_os.h \
src/os/win32/ngx_process_cycle.h"
WIN32_CONFIG=src/os/win32/ngx_win32_config.h
WIN32_SRCS="$CORE_SRCS $EVENT_SRCS \
src/os/win32/ngx_errno.c \
src/os/win32/ngx_files.c \

View File

@ -8,6 +8,7 @@ if [ $USE_PCRE = DISABLED ]; then
else
case $PCRE in
YES) echo " + using system PCRE library" ;;
NONE) echo " + PCRE library is not used" ;;
NO) echo " + PCRE library is not found" ;;
*) echo " + using PCRE library: $PCRE" ;;
esac

View File

@ -35,7 +35,7 @@ static int ngx_worker_thread_cycle(void *data);
#endif
static ngx_int_t ngx_add_inherited_sockets(ngx_cycle_t *cycle, char **envp);
static ngx_int_t ngx_add_inherited_sockets(ngx_cycle_t *cycle);
static ngx_int_t ngx_getopt(ngx_master_ctx_t *ctx, ngx_cycle_t *cycle);
static ngx_int_t ngx_core_module_init(ngx_cycle_t *cycle);
static char *ngx_set_user(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
@ -112,7 +112,7 @@ ngx_int_t ngx_reopen;
ngx_int_t ngx_change_binary;
int main(int argc, char *const *argv, char **envp)
int main(int argc, char *const *argv)
{
ngx_int_t i;
ngx_log_t *log;
@ -145,6 +145,10 @@ int main(int argc, char *const *argv, char **envp)
init_cycle.log = log;
ngx_cycle = &init_cycle;
#if 0
/* STUB */ log->log_level = NGX_LOG_DEBUG_ALL;
#endif
ngx_memzero(&ctx, sizeof(ngx_master_ctx_t));
ctx.argc = argc;
ctx.argv = argv;
@ -172,7 +176,7 @@ int main(int argc, char *const *argv, char **envp)
return 1;
}
if (ngx_add_inherited_sockets(&init_cycle, envp) == NGX_ERROR) {
if (ngx_add_inherited_sockets(&init_cycle) == NGX_ERROR) {
return 1;
}
@ -256,49 +260,48 @@ int main(int argc, char *const *argv, char **envp)
}
static ngx_int_t ngx_add_inherited_sockets(ngx_cycle_t *cycle, char **envp)
static ngx_int_t ngx_add_inherited_sockets(ngx_cycle_t *cycle)
{
char *p, *v;
char *p, *v, *inherited;
ngx_socket_t s;
ngx_listening_t *ls;
for ( /* void */ ; *envp; envp++) {
if (ngx_strncmp(*envp, NGINX_VAR, NGINX_VAR_LEN) != 0) {
continue;
}
inherited = getenv(NGINX_VAR);
ngx_log_error(NGX_LOG_INFO, cycle->log, 0,
"using inherited sockets from \"%s\"", *envp);
ngx_init_array(cycle->listening, cycle->pool,
10, sizeof(ngx_listening_t), NGX_ERROR);
for (p = *envp + NGINX_VAR_LEN, v = p; *p; p++) {
if (*p == ':' || *p == ';') {
s = ngx_atoi(v, p - v);
if (s == NGX_ERROR) {
ngx_log_error(NGX_LOG_EMERG, cycle->log, 0,
"invalid socket number \"%s\" "
"in NGINX enviroment variable, "
"ignoring the rest of the variable", v);
break;
}
v = p + 1;
if (!(ls = ngx_push_array(&cycle->listening))) {
return NGX_ERROR;
}
ls->fd = s;
}
}
ngx_inherited = 1;
return ngx_set_inherited_sockets(cycle);
if (inherited == NULL) {
return NGX_OK;
}
return NGX_OK;
ngx_log_error(NGX_LOG_INFO, cycle->log, 0,
"using inherited sockets from \"%s\"", inherited);
ngx_init_array(cycle->listening, cycle->pool,
10, sizeof(ngx_listening_t), NGX_ERROR);
for (p = inherited, v = p; *p; p++) {
if (*p == ':' || *p == ';') {
s = ngx_atoi(v, p - v);
if (s == NGX_ERROR) {
ngx_log_error(NGX_LOG_EMERG, cycle->log, 0,
"invalid socket number \"%s\" in "
NGINX_VAR " enviroment variable, "
"ignoring the rest of the variable", v);
break;
}
v = p + 1;
if (!(ls = ngx_push_array(&cycle->listening))) {
return NGX_ERROR;
}
ls->fd = s;
}
}
ngx_inherited = 1;
return ngx_set_inherited_sockets(cycle);
}
@ -314,17 +317,19 @@ ngx_pid_t ngx_exec_new_binary(ngx_cycle_t *cycle, char *const *argv)
ctx.name = "new binary process";
ctx.argv = argv;
var = ngx_alloc(NGINX_VAR_LEN
+ cycle->listening.nelts * (NGX_INT32_LEN + 1) + 1,
var = ngx_alloc(sizeof(NGINX_VAR)
+ cycle->listening.nelts * (NGX_INT32_LEN + 1) + 2,
cycle->log);
p = ngx_cpymem(var, NGINX_VAR, NGINX_VAR_LEN);
p = ngx_cpymem(var, NGINX_VAR "=", sizeof(NGINX_VAR));
ls = cycle->listening.elts;
for (i = 0; i < cycle->listening.nelts; i++) {
p += ngx_snprintf(p, NGX_INT32_LEN + 2, "%u;", ls[i].fd);
}
ngx_log_debug1(NGX_LOG_DEBUG_CORE, cycle->log, 0, "inherited: %s", var);
env[0] = var;
env[1] = NULL;
ctx.envp = (char *const *) &env;

View File

@ -8,8 +8,7 @@
#define NGINX_NEW_PID_EXT ".newbin"
#define NGINX_NEW_PID NGINX_PID NGINX_NEW_PID_EXT
#define NGINX_VAR "NGINX="
#define NGINX_VAR_LEN (sizeof(NGINX_VAR) - 1)
#define NGINX_VAR "NGINX"
extern ngx_module_t ngx_core_module;

View File

@ -78,7 +78,7 @@ ngx_int_t ngx_open_listening_sockets(ngx_cycle_t *cycle)
/* TODO: tries configurable */
for (tries = 10; tries; tries--) {
for (tries = /* STUB */ 1; tries; tries--) {
failed = 0;
/* for each listening socket */

View File

@ -227,9 +227,13 @@ ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle)
}
#if (WIN32)
#if 0
/* TODO: TEST */
fprintf(stderr, "BEFORE\n");
CloseHandle(GetStdHandle(STD_ERROR_HANDLE));
SetStdHandle(STD_ERROR_HANDLE, cycle->log->file->fd);
fprintf(stderr, "AFTER\n");
#endif
#else
if (dup2(cycle->log->file->fd, STDERR_FILENO) == NGX_ERROR) {
ngx_log_error(NGX_LOG_EMERG, log, ngx_errno,

View File

@ -245,7 +245,7 @@ static ngx_int_t ngx_iocp_process_events(ngx_log_t *log)
ev->available = bytes;
ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0,
"iocp event handler: %08x" PTR_FMT, ev->event_handler);
"iocp event handler: " PTR_FMT, ev->event_handler);
ev->event_handler(ev);
}

View File

@ -549,9 +549,9 @@ static void *ngx_http_gzip_filter_alloc(void *opaque, u_int items, u_int size)
static void ngx_http_gzip_filter_free(void *opaque, void *address)
{
#if 0
ngx_http_gzip_ctx_t *ctx = opaque;
#if 0
ngx_log_debug1(NGX_LOG_DEBUG_HTTP, ctx->request->connection->log, 0,
"gzip free: %X", address);
#endif

View File

@ -844,13 +844,16 @@ static char *ngx_location_block(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy)
{
char *rv;
ngx_int_t m;
ngx_str_t *value, err;
ngx_str_t *value;
ngx_http_module_t *module;
ngx_conf_t pvcf;
ngx_http_conf_ctx_t *ctx, *pvctx;
ngx_http_core_srv_conf_t *cscf;
ngx_http_core_loc_conf_t *clcf, **clcfp;
#if (HAVE_PCRE)
ngx_str_t err;
char errstr[NGX_MAX_CONF_ERRSTR];
#endif
if (!(ctx = ngx_pcalloc(cf->pool, sizeof(ngx_http_conf_ctx_t)))) {
return NGX_CONF_ERROR;

View File

@ -95,9 +95,6 @@ ngx_module_t ngx_http_log_module = {
static ngx_str_t http_access_log = ngx_string("access.log");
static char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
static ngx_str_t ngx_http_combined_fmt =
ngx_string("%addr - - [%time] \"%request\" %status %apache_length "
"\"%{Referer}i\" \"%{User-Agent}i\"");

View File

@ -25,4 +25,22 @@ sig_atomic_t ngx_change_binary;
void ngx_master_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
{
ngx_int_t i;
ngx_init_temp_number();
for (i = 0; ngx_modules[i]; i++) {
if (ngx_modules[i]->init_process) {
if (ngx_modules[i]->init_process(cycle) == NGX_ERROR) {
/* fatal */
exit(2);
}
}
}
for ( ;; ) {
ngx_log_debug0(NGX_LOG_DEBUG_EVENT, cycle->log, 0, "worker cycle");
ngx_process_events(cycle->log);
}
}

View File

@ -35,6 +35,62 @@ int ngx_blocking(ngx_socket_t s);
#define ngx_close_socket_n "closesocket()"
#ifndef WSAID_ACCEPTEX
typedef BOOL (PASCAL FAR * LPFN_ACCEPTEX)(
IN SOCKET sListenSocket,
IN SOCKET sAcceptSocket,
IN PVOID lpOutputBuffer,
IN DWORD dwReceiveDataLength,
IN DWORD dwLocalAddressLength,
IN DWORD dwRemoteAddressLength,
OUT LPDWORD lpdwBytesReceived,
IN LPOVERLAPPED lpOverlapped
);
#define WSAID_ACCEPTEX \
{0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
#endif
#ifndef WSAID_GETACCEPTEXSOCKADDRS
typedef VOID (PASCAL FAR * LPFN_GETACCEPTEXSOCKADDRS)(
IN PVOID lpOutputBuffer,
IN DWORD dwReceiveDataLength,
IN DWORD dwLocalAddressLength,
IN DWORD dwRemoteAddressLength,
OUT struct sockaddr **LocalSockaddr,
OUT LPINT LocalSockaddrLength,
OUT struct sockaddr **RemoteSockaddr,
OUT LPINT RemoteSockaddrLength
);
#define WSAID_GETACCEPTEXSOCKADDRS \
{0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
#endif
#ifndef LPFN_TRANSMITFILE
typedef BOOL (PASCAL FAR * LPFN_TRANSMITFILE)(
IN SOCKET hSocket,
IN HANDLE hFile,
IN DWORD nNumberOfBytesToWrite,
IN DWORD nNumberOfBytesPerSend,
IN LPOVERLAPPED lpOverlapped,
IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
IN DWORD dwReserved
);
#define WSAID_TRANSMITFILE \
{0xb5367df0,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
#endif
extern LPFN_ACCEPTEX acceptex;
extern LPFN_GETACCEPTEXSOCKADDRS getacceptexsockaddrs;
extern LPFN_TRANSMITFILE transmitfile;

View File

@ -7,13 +7,9 @@
#define STRICT
#define WIN32_LEAN_AND_MEAN
#ifdef __WATCOMC__
#pragma disable_message(107)
#endif
/*
* we need to include windows.h explicity before winsock2.h because
* warning 4201 is enabled in windows.h
* the warning 4201 is enabled in windows.h
*/
#include <windows.h>
@ -35,19 +31,16 @@
#pragma warning(disable:4100)
/* STUB */
#if 0
#pragma warning(disable:4127)
#endif
#endif
#ifdef __WATCOMC__
#pragma enable_message(107)
#if 0
/* Symbol 'ngx_rbtree_min' has been defined, but not referenced */
/* disable "Symbol 'ngx_rbtree_min' has been defined, but not referenced" */
#pragma disable_message(202)
#endif
/* No prototype found for 'stricmp' */
#pragma disable_message(301)
#endif
#include <ngx_auto_config.h>

View File

@ -17,6 +17,13 @@ ngx_os_io_t ngx_os_io = {
};
typedef struct {
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
} ngx_osviex_stub_t;
/* Should these pointers be per protocol ? */
LPFN_ACCEPTEX acceptex;
LPFN_GETACCEPTEXSOCKADDRS getacceptexsockaddrs;
@ -29,11 +36,12 @@ static GUID tf_guid = WSAID_TRANSMITFILE;
int ngx_os_init(ngx_log_t *log)
{
u_int osviex;
DWORD bytes;
SOCKET s;
WSADATA wsd;
OSVERSIONINFOEX osvi;
u_int osviex;
DWORD bytes;
SOCKET s;
WSADATA wsd;
OSVERSIONINFOEX osvi;
ngx_osviex_stub_t *osviex_stub;
/* get Windows version */
@ -75,17 +83,16 @@ int ngx_os_init(ngx_log_t *log)
ngx_win32_version += osvi.wServicePackMajor * 10
+ osvi.wServicePackMinor;
ngx_log_error(NGX_LOG_INFO, log, 0,
"OS: %u build:%u, \"%s\", suite:%x, type:%u",
ngx_win32_version, osvi.dwBuildNumber, osvi.szCSDVersion,
osvi.wReserved[0], osvi.wReserved[1]);
/*
* the MSVC 6.0 SP2 defines wSuiteMask and wProductType
* as WORD wReserved[2]
*/
osviex_stub = (ngx_osviex_stub_t *) &osvi.wServicePackMinor;
#if 0
ngx_log_error(NGX_LOG_INFO, log, 0,
"OS: %u build:%u, \"%s\", suite:%x, type:%u",
ngx_win32_version, osvi.dwBuildNumber, osvi.szCSDVersion,
osvi.wSuiteMask, osvi.wProductType);
#endif
osviex_stub->wSuiteMask, osviex_stub->wProductType);
} else {
if (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
@ -123,6 +130,10 @@ int ngx_os_init(ngx_log_t *log)
return NGX_ERROR;
}
if (ngx_win32_version < NGX_WIN_NT) {
return NGX_OK;
}
/* get AcceptEx(), GetAcceptExSockAddrs() and TransmitFile() addresses */
s = ngx_socket(AF_INET, SOCK_STREAM, IPPROTO_IP, 0);

View File

@ -64,7 +64,7 @@ ssize_t ngx_overlapped_wsarecv(ngx_connection_t *c, char *buf, size_t size)
rev = c->read;
if (!rev->ready) {
ngx_log_error(NGX_LOG_ALERT, rev->log, 0, "second wsa post");
ngx_log_error(NGX_LOG_ALERT, c->log, 0, "second wsa post");
return NGX_AGAIN;
}