nginx-0.3.21-RELEASE import

    *) Feature: the ngx_http_perl_module.

    *) Change: the "valid_referers" directive allows the referreres without
       URI part.
diff --git a/auto/lib/conf b/auto/lib/conf
index 70053b5..62d6029 100644
--- a/auto/lib/conf
+++ b/auto/lib/conf
@@ -26,3 +26,7 @@
 if [ $USE_ZLIB = YES ]; then
     . auto/lib/zlib/conf
 fi
+
+if [ $USE_PERL = YES ]; then
+    . auto/lib/perl/conf
+fi
diff --git a/auto/lib/make b/auto/lib/make
index ef571c5..60cd7bc 100644
--- a/auto/lib/make
+++ b/auto/lib/make
@@ -17,3 +17,7 @@
 if [ $ZLIB != NONE -a $ZLIB != NO -a $ZLIB != YES ]; then
     . auto/lib/zlib/make
 fi
+
+if [ $USE_PERL = YES ]; then
+    . auto/lib/perl/make
+fi
diff --git a/auto/lib/perl/conf b/auto/lib/perl/conf
new file mode 100644
index 0000000..1d7fe3b
--- /dev/null
+++ b/auto/lib/perl/conf
@@ -0,0 +1,53 @@
+
+# Copyright (C) Igor Sysoev
+
+
+echo "checking for perl"
+
+
+NGX_PERL_VER=`$NGX_PERL -v 2>&1 | grep '^This is perl' 2>&1 \
+                                | sed -e 's/^This is perl, \(.*\)/\1/'`
+
+if test -n "$NGX_PERL_VER"; then
+    echo " + perl version: $NGX_PERL_VER"
+
+    if [ "`echo 'use 5.006001; print "OK"' | $NGX_PERL 2>&1`" != OK ]; then
+        echo
+        echo "$0: error: perl 5.6.1 or higher is required"
+        echo
+
+        exit 1;
+    fi
+
+    CFLAGS="$CFLAGS `$NGX_PERL -MExtUtils::Embed -e ccopts`"
+    ngx_perl_ldopts=`$NGX_PERL -MExtUtils::Embed -e ldopts`
+
+    if $NGX_PERL -V:usemultiplicity | grep define > /dev/null; then
+        have=NGX_HAVE_PERL_MULTIPLICITY . auto/have
+        echo " + perl interpreter multiplicity found"
+    fi
+
+    if $NGX_PERL -V:useithreads | grep define > /dev/null; then
+        have=NGX_HAVE_PERL_CLONE . auto/have
+        echo " + perl_clone() found"
+
+    else
+        # FreeBSD port wants to link with -pthread non-threaded perl
+        ngx_perl_ldopts=`echo $ngx_perl_ldopts | sed 's/ -pthread//'`
+    fi
+
+    CORE_LINK="$CORE_LINK $ngx_perl_ldopts"
+    LINK_DEPS="$LINK_DEPS $NGX_OBJS/src/http/modules/perl/blib/arch/auto/nginx/nginx.so"
+
+    if test -n "$NGX_PERL_MODULES"; then
+        have=NGX_PERL_MODULES value="(u_char *) \"$NGX_PERL_MODULES\""
+        . auto/define
+    fi
+
+else
+    echo
+    echo "$0: error: perl 5.6.1 or higher is required"
+    echo
+
+    exit 1;
+fi
diff --git a/auto/lib/perl/make b/auto/lib/perl/make
new file mode 100644
index 0000000..3654422
--- /dev/null
+++ b/auto/lib/perl/make
@@ -0,0 +1,33 @@
+
+# Copyright (C) Igor Sysoev
+
+
+cat << END                                                    >> $NGX_MAKEFILE
+
+$NGX_OBJS/src/http/modules/perl/blib/arch/auto/nginx/nginx.so:		\
+		src/http/modules/perl/nginx.pm				\
+		src/http/modules/perl/nginx.xs				\
+		src/http/modules/perl/ngx_http_perl_module.h		\
+		$NGX_OBJS/src/http/modules/perl/Makefile
+
+	cp -p src/http/modules/perl/nginx.* $NGX_OBJS/src/http/modules/perl/
+
+	cd $NGX_OBJS/src/http/modules/perl && make
+
+
+$NGX_OBJS/src/http/modules/perl/Makefile: src/http/modules/perl/Makefile.PL
+
+	cp -p src/http/modules/perl/nginx.* $NGX_OBJS/src/http/modules/perl/
+	cp -p src/http/modules/perl/typemap $NGX_OBJS/src/http/modules/perl/
+	cp -p src/http/modules/perl/Makefile.PL $NGX_OBJS/src/http/modules/perl/
+
+	cd $NGX_OBJS/src/http/modules/perl				\
+		&& NGX_PERL_CFLAGS="$NGX_PERL_CFLAGS"			\
+			NGX_PCRE=$PCRE					\
+			NGX_ZLIB=$ZLIB					\
+			NGX_OBJS=$NGX_OBJS				\
+		$NGX_PERL Makefile.PL					\
+			LIB=$NGX_PERL_MODULES
+
+
+END