diff options
author | Arno Töll <arno@debian.org> | 2012-11-21 23:57:42 +0100 |
---|---|---|
committer | Arno Töll <arno@debian.org> | 2012-11-21 23:57:42 +0100 |
commit | 47236ea4c1d5601fc6bea1b280d36152ec5ff32b (patch) | |
tree | 89c109c0bef460fa747a3413610034002fac1cb4 /tests | |
parent | dae92c799e85ec3b65f46da6a776e4386bc99d6c (diff) | |
download | lighttpd-47236ea4c1d5601fc6bea1b280d36152ec5ff32b.tar.gz |
Imported Upstream version 1.4.32
Diffstat (limited to 'tests')
67 files changed, 3550 insertions, 1149 deletions
diff --git a/tests/404-handler.conf b/tests/404-handler.conf new file mode 100644 index 0000000..03dfd97 --- /dev/null +++ b/tests/404-handler.conf @@ -0,0 +1,49 @@ +debug.log-request-handling = "enable" +debug.log-response-header = "enable" +debug.log-request-header = "enable" + +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" + +## bind to port (default: 80) +server.port = 2048 + +## bind to localhost (default: all interfaces) +server.bind = "localhost" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" +server.name = "www.example.org" +server.tag = "Apache 1.3.29" + + +server.modules = ( + "mod_fastcgi", + "mod_cgi", + "mod_accesslog" ) + +######################## MODULE CONFIG ############################ + + +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" + +mimetype.assign = ( ".html" => "text/html" ) + +cgi.assign = (".pl" => "/usr/bin/perl" ) + +# fastcgi.server += ( "/404.pl" => +# ( "404-handler" => +# ( +# "socket" => env.SRCDIR + "/tmp/pl-404-fastcgi-1.socket", +# "bin-path" => server.document-root + "/404.pl", +# "max-procs" => 1, +# "check-local" => "disable", +# "broken-scriptfilename" => "enable", +# ) +# ), +# ) + +$HTTP["url"] =~ "^/static/" { + server.error-handler-404 = "/404.html" +} +else $HTTP["url"] =~ "." { + server.error-handler-404 = "/404.pl" +} diff --git a/tests/LightyTest.pm b/tests/LightyTest.pm index 85a08ef..ebdfd36 100755 --- a/tests/LightyTest.pm +++ b/tests/LightyTest.pm @@ -6,6 +6,8 @@ use IO::Socket; use Test::More; use Socket; use Cwd 'abs_path'; +use POSIX qw(:sys_wait_h dup2); +use Errno qw(EADDRINUSE); sub mtime { my $file = shift; @@ -30,14 +32,17 @@ sub new { if (mtime($self->{BASEDIR}.'/src/lighttpd') > mtime($self->{BASEDIR}.'/build/lighttpd')) { - $self->{LIGHTTPD_PATH} = $self->{BASEDIR}.'/src/lighttpd'; - $self->{MODULES_PATH} = $self->{BASEDIR}.'/src/.libs'; + $self->{BINDIR} = $self->{BASEDIR}.'/src'; + if (mtime($self->{BASEDIR}.'/src/.libs')) { + $self->{MODULES_PATH} = $self->{BASEDIR}.'/src/.libs'; + } else { + $self->{MODULES_PATH} = $self->{BASEDIR}.'/src'; + } } else { - $self->{LIGHTTPD_PATH} = $self->{BASEDIR}.'/build/lighttpd'; + $self->{BINDIR} = $self->{BASEDIR}.'/build'; $self->{MODULES_PATH} = $self->{BASEDIR}.'/build'; } - $self->{LIGHTTPD_PIDFILE} = $self->{TESTDIR}.'/tmp/lighttpd/lighttpd.pid'; - $self->{PIDOF_PIDFILE} = $self->{TESTDIR}.'/tmp/lighttpd/pidof.pid'; + $self->{LIGHTTPD_PATH} = $self->{BINDIR}.'/lighttpd'; $self->{PORT} = 2048; my ($name, $aliases, $addrtype, $net) = gethostbyaddr(inet_aton("127.0.0.1"), AF_INET); @@ -66,56 +71,80 @@ sub listening_on { sub stop_proc { my $self = shift; - open F, $self->{LIGHTTPD_PIDFILE} or return -1; - my $pid = <F>; - close F; - - if (defined $pid) { - kill('TERM',$pid) or return -1; - select(undef, undef, undef, 0.01); + my $pid = $self->{LIGHTTPD_PID}; + if (defined $pid && $pid != -1) { + kill('TERM', $pid) or return -1; + return -1 if ($pid != waitpid($pid, 0)); + } else { + diag("\nProcess not started, nothing to stop"); + return -1; } return 0; } +sub wait_for_port_with_proc { + my $self = shift; + my $port = shift; + my $child = shift; + my $timeout = 5*10; # 5 secs, select waits 0.1 s + + while (0 == $self->listening_on($port)) { + select(undef, undef, undef, 0.1); + $timeout--; + + # the process is gone, we failed + if (0 != waitpid($child, WNOHANG)) { + return -1; + } + if (0 >= $timeout) { + diag("\nTimeout while trying to connect; killing child"); + kill('TERM', $child); + return -1; + } + } + + return 0; +} sub start_proc { my $self = shift; # kill old proc if necessary - $self->stop_proc; + #$self->stop_proc; # pre-process configfile if necessary # - unlink($self->{TESTDIR}."/tmp/cfg.file"); - system("cat ".$self->{SRCDIR}."/".$self->{CONFIGFILE}.' | perl -pe "s#\@SRCDIR\@#'.$self->{BASEDIR}.'/tests/#" > '.$self->{TESTDIR}.'/tmp/cfg.file'); - - unlink($self->{LIGHTTPD_PIDFILE}); - if (1) { - system($self->{LIGHTTPD_PATH}." -f ".$self->{TESTDIR}."/tmp/cfg.file -m ".$self->{MODULES_PATH}); - } else { - system("valgrind --tool=memcheck --show-reachable=yes --leak-check=yes --logfile=foo ".$self->{LIGHTTPD_PATH}." -D -f ".$self->{TESTDIR}."/tmp/cfg.file -m ".$self->{MODULES_PATH}." &"); - } - - select(undef, undef, undef, 0.1); - if (not -e $self->{LIGHTTPD_PIDFILE} or 0 == kill 0, `cat $self->{LIGHTTPD_PIDFILE}`) { - select(undef, undef, undef, 2); + $ENV{'SRCDIR'} = $self->{BASEDIR}.'/tests'; + $ENV{'PORT'} = $self->{PORT}; + + my $cmdline = $self->{LIGHTTPD_PATH}." -D -f ".$self->{SRCDIR}."/".$self->{CONFIGFILE}." -m ".$self->{MODULES_PATH}; + if (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'strace') { + $cmdline = "strace -tt -s 512 -o strace ".$cmdline; + } elsif (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'truss') { + $cmdline = "truss -a -l -w all -v all -o strace ".$cmdline; + } elsif (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'gdb') { + $cmdline = "gdb --batch --ex 'run' --ex 'bt full' --args ".$cmdline." > gdb.out"; + } elsif (defined $ENV{"TRACEME"} && $ENV{"TRACEME"} eq 'valgrind') { + $cmdline = "valgrind --tool=memcheck --show-reachable=yes --leak-check=yes --log-file=valgrind ".$cmdline; } - - unlink($self->{TESTDIR}."/tmp/cfg.file"); - - # no pidfile, we failed - if (not -e $self->{LIGHTTPD_PIDFILE}) { - diag(sprintf('Could not find pidfile: %s', $self->{LIGHTTPD_PIDFILE})); + # diag("\nstarting lighttpd at :".$self->{PORT}.", cmdline: ".$cmdline ); + my $child = fork(); + if (not defined $child) { + diag("\nFork failed"); return -1; } + if ($child == 0) { + exec $cmdline or die($?); + } - # the process is gone, we failed - if (0 == kill 0, `cat $self->{LIGHTTPD_PIDFILE}`) { - diag(sprintf('the process referenced by %s is not up', $self->{LIGHTTPD_PIDFILE})); + if (0 != $self->wait_for_port_with_proc($self->{PORT}, $child)) { + diag(sprintf('\nThe process %i is not up', $child)); return -1; } + $self->{LIGHTTPD_PID} = $child; + 0; } @@ -128,6 +157,8 @@ sub handle_http { my @request = $t->{REQUEST}; my @response = $t->{RESPONSE}; + my $slow = defined $t->{SLOWREQUEST}; + my $is_debug = $ENV{"TRACE_HTTP"}; my $remote = IO::Socket::INET->new(Proto => "tcp", @@ -135,26 +166,56 @@ sub handle_http { PeerPort => $self->{PORT}); if (not defined $remote) { - diag("connect failed: $!"); + diag("\nconnect failed: $!"); return -1; } $remote->autoflush(1); - foreach(@request) { - # pipeline requests - s/\r//g; - s/\n/$EOL/g; + if (!$slow) { + diag("\nsending request header to ".$host.":".$self->{PORT}) if $is_debug; + foreach(@request) { + # pipeline requests + s/\r//g; + s/\n/$EOL/g; - print $remote $_.$BLANK; + print $remote $_.$BLANK; + diag("\n<< ".$_) if $is_debug; + } + shutdown($remote, 1); # I've stopped writing data + } else { + diag("\nsending request header to ".$host.":".$self->{PORT}) if $is_debug; + foreach(@request) { + # pipeline requests + chomp; + s/\r//g; + s/\n/$EOL/g; + + print $remote $_; + diag("<< ".$_."\n") if $is_debug; + select(undef, undef, undef, 0.1); + print $remote "\015"; + select(undef, undef, undef, 0.1); + print $remote "\012"; + select(undef, undef, undef, 0.1); + print $remote "\015"; + select(undef, undef, undef, 0.1); + print $remote "\012"; + select(undef, undef, undef, 0.1); + } + } + diag("\n... done") if $is_debug; my $lines = ""; + diag("\nreceiving response") if $is_debug; # read everything while(<$remote>) { $lines .= $_; + diag(">> ".$_) if $is_debug; } + diag("\n... done") if $is_debug; close $remote; @@ -172,7 +233,7 @@ sub handle_http { (my $line, $lines) = split($EOL, $lines, 2); # header finished - last if(length($line) == 0); + last if(!defined $line or length($line) == 0); if ($ln == 0) { # response header @@ -184,18 +245,27 @@ sub handle_http { (my $h = $1) =~ tr/[A-Z]/[a-z]/; if (defined $resp_hdr{$h}) { - diag(sprintf("header %s is duplicated: %s and %s\n", - $h, $resp_hdr{$h}, $2)); +# diag(sprintf("\nheader '%s' is duplicated: '%s' and '%s'\n", +# $h, $resp_hdr{$h}, $2)); + $resp_hdr{$h} .= ', '.$2; } else { $resp_hdr{$h} = $2; } } else { - diag(sprintf("unexpected line '$line'\n")); + diag(sprintf("\nunexpected line '%s'", $line)); return -1; } } } + if (not defined($resp_line)) { + diag(sprintf("\nempty response")); + return -1; + } + + $t->{etag} = $resp_hdr{'etag'}; + $t->{date} = $resp_hdr{'date'}; + # check length if (defined $resp_hdr{"content-length"}) { $resp_body = substr($lines, 0, $resp_hdr{"content-length"}); @@ -213,29 +283,29 @@ sub handle_http { # check conditions if ($resp_line =~ /^(HTTP\/1\.[01]) ([0-9]{3}) .+$/) { if ($href->{'HTTP-Protocol'} ne $1) { - diag(sprintf("proto failed: expected '%s', got '%s'\n", $href->{'HTTP-Protocol'}, $1)); + diag(sprintf("\nproto failed: expected '%s', got '%s'", $href->{'HTTP-Protocol'}, $1)); return -1; } if ($href->{'HTTP-Status'} ne $2) { - diag(sprintf("status failed: expected '%s', got '%s'\n", $href->{'HTTP-Status'}, $2)); + diag(sprintf("\nstatus failed: expected '%s', got '%s'", $href->{'HTTP-Status'}, $2)); return -1; } } else { - diag(sprintf("unexpected resp_line '$resp_line'\n")); + diag(sprintf("\nunexpected resp_line '%s'", $resp_line)); return -1; } if (defined $href->{'HTTP-Content'}) { $resp_body = "" unless defined $resp_body; if ($href->{'HTTP-Content'} ne $resp_body) { - diag(sprintf("body failed: expected '%s', got '%s'\n", $href->{'HTTP-Content'}, $resp_body)); + diag(sprintf("\nbody failed: expected '%s', got '%s'", $href->{'HTTP-Content'}, $resp_body)); return -1; } } if (defined $href->{'-HTTP-Content'}) { if (defined $resp_body && $resp_body ne '') { - diag(sprintf("body failed: expected empty body, got '%s'\n", $resp_body)); + diag(sprintf("\nbody failed: expected empty body, got '%s'", $resp_body)); return -1; } } @@ -248,28 +318,40 @@ sub handle_http { (my $k = $_) =~ tr/[A-Z]/[a-z]/; - my $no_val = 0; + my $verify_value = 1; + my $key_inverted = 0; if (substr($k, 0, 1) eq '+') { $k = substr($k, 1); - $no_val = 1; - - } + $verify_value = 0; + } elsif (substr($k, 0, 1) eq '-') { + ## the key should NOT exist + $k = substr($k, 1); + $key_inverted = 1; + $verify_value = 0; ## skip the value check + } - if (!defined $resp_hdr{$k}) { - diag(sprintf("required header '%s' is missing\n", $k)); - return -1; + if ($key_inverted) { + if (defined $resp_hdr{$k}) { + diag(sprintf("\nheader '%s' MUST not be set", $k)); + return -1; + } + } else { + if (not defined $resp_hdr{$k}) { + diag(sprintf("\nrequired header '%s' is missing", $k)); + return -1; + } } - if ($no_val == 0) { + if ($verify_value) { if ($href->{$_} =~ /^\/(.+)\/$/) { if ($resp_hdr{$k} !~ /$1/) { - diag(sprintf("response-header failed: expected '%s', got '%s', regex: %s\n", + diag(sprintf("\nresponse-header failed: expected '%s', got '%s', regex: %s", $href->{$_}, $resp_hdr{$k}, $1)); return -1; } } elsif ($href->{$_} ne $resp_hdr{$k}) { - diag(sprintf("response-header failed: expected '%s', got '%s'\n", + diag(sprintf("\nresponse-header failed: expected '%s', got '%s'", $href->{$_}, $resp_hdr{$k})); return -1; } @@ -279,12 +361,44 @@ sub handle_http { # we should have sucked up everything if (defined $lines) { - diag(sprintf("unexpected lines '$lines'\n")); + diag(sprintf("\nunexpected lines '%s'", $lines)); return -1; } return 0; } - -1; +sub spawnfcgi { + my ($self, $binary, $port) = @_; + my $child = fork(); + if (not defined $child) { + diag("\nCouldn't fork"); + return -1; + } + if ($child == 0) { + my $iaddr = inet_aton('localhost') || die "no host: localhost"; + my $proto = getprotobyname('tcp'); + socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!"; + setsockopt(SOCK, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)) || die "setsockopt: $!"; + bind(SOCK, sockaddr_in($port, $iaddr)) || die "bind: $!"; + listen(SOCK, 1024) || die "listen: $!"; + dup2(fileno(SOCK), 0) || die "dup2: $!"; + exec $binary or die($?); + } else { + if (0 != $self->wait_for_port_with_proc($port, $child)) { + diag(sprintf("\nThe process %i is not up (port %i, %s)", $child, $port, $binary)); + return -1; + } + return $child; + } +} + +sub endspawnfcgi { + my ($self, $pid) = @_; + return -1 if (-1 == $pid); + kill(2, $pid); + waitpid($pid, 0); + return 0; +} + +1; diff --git a/tests/Makefile.am b/tests/Makefile.am index d4a9b10..2472741 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -31,25 +31,35 @@ CONFS=fastcgi-10.conf \ core-response.t \ core-keepalive.t \ core.t \ + mod-proxy.t \ + proxy.conf \ + mod-secdownload.t \ mod-access.t \ mod-auth.t \ mod-cgi.t \ mod-compress.t \ + mod-compress.conf \ mod-fastcgi.t \ mod-redirect.t \ - mod-userdir.t \ mod-rewrite.t \ + mod-userdir.t \ + symlink.t \ request.t \ mod-ssi.t \ LightyTest.pm \ - mod-setenv.t - + mod-setenv.t \ + lowercase.t \ + lowercase.conf \ + cachable.t \ + core-404-handler.t \ + 404-handler.conf -TESTS_ENVIRONMENT=$(srcdir)/wrapper.sh $(srcdir) $(top_builddir) +TESTS_ENVIRONMENT=$(srcdir)/wrapper.sh $(srcdir) $(top_builddir) EXTRA_DIST=wrapper.sh lighttpd.conf \ lighttpd.user \ lighttpd.htpasswd \ + SConscript \ $(CONFS) \ $(TESTS) @@ -59,7 +69,7 @@ leak-check: for i in $(TESTS); do \ $(srcdir)/$$i; \ echo $$?; \ - done + done clean-local: rm -f *.out diff --git a/tests/Makefile.in b/tests/Makefile.in index 2827b2f..4da3984 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,17 +14,29 @@ # PARTICULAR PURPOSE. @SET_MAKE@ -SOURCES = $(fcgi_auth_SOURCES) $(fcgi_responder_SOURCES) - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -43,49 +56,108 @@ target_triplet = @target@ subdir = tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = am__fcgi_auth_SOURCES_DIST = fcgi-auth.c @CHECK_WITH_FASTCGI_TRUE@am_fcgi_auth_OBJECTS = fcgi-auth.$(OBJEXT) fcgi_auth_OBJECTS = $(am_fcgi_auth_OBJECTS) fcgi_auth_DEPENDENCIES = +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent am__fcgi_responder_SOURCES_DIST = fcgi-responder.c @CHECK_WITH_FASTCGI_TRUE@am_fcgi_responder_OBJECTS = \ @CHECK_WITH_FASTCGI_TRUE@ fcgi-responder.$(OBJEXT) fcgi_responder_OBJECTS = $(am_fcgi_responder_OBJECTS) fcgi_responder_DEPENDENCIES = -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles +am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ CCLD = $(CC) -LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(fcgi_auth_SOURCES) $(fcgi_responder_SOURCES) DIST_SOURCES = $(am__fcgi_auth_SOURCES_DIST) \ $(am__fcgi_responder_SOURCES_DIST) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir ETAGS = etags CTAGS = ctags +am__tty_colors = \ +red=; grn=; lgn=; blu=; std= DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ATTR_LIB = @ATTR_LIB@ AUTOCONF = @AUTOCONF@ @@ -96,69 +168,73 @@ BZ_LIB = @BZ_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CHECK_WITH_FASTCGI_FALSE = @CHECK_WITH_FASTCGI_FALSE@ -CHECK_WITH_FASTCGI_TRUE = @CHECK_WITH_FASTCGI_TRUE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CROSS_COMPILING_FALSE = @CROSS_COMPILING_FALSE@ -CROSS_COMPILING_TRUE = @CROSS_COMPILING_TRUE@ CRYPT_LIB = @CRYPT_LIB@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DL_LIB = @DL_LIB@ -ECHO = @ECHO@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -F77 = @F77@ FAM_CFLAGS = @FAM_CFLAGS@ FAM_LIBS = @FAM_LIBS@ -FFLAGS = @FFLAGS@ +FGREP = @FGREP@ GDBM_LIB = @GDBM_LIB@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LBER_LIB = @LBER_LIB@ +LD = @LD@ LDAP_LIB = @LDAP_LIB@ LDFLAGS = @LDFLAGS@ +LIBEV_CFLAGS = @LIBEV_CFLAGS@ +LIBEV_LIBS = @LIBEV_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ -LUACONFIG = @LUACONFIG@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_LIBS = @LUA_LIBS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MEMCACHE_LIB = @MEMCACHE_LIB@ +MKDIR_P = @MKDIR_P@ MYSQL_CONFIG = @MYSQL_CONFIG@ MYSQL_INCLUDE = @MYSQL_INCLUDE@ MYSQL_LIBS = @MYSQL_LIBS@ -NO_RDYNAMIC_FALSE = @NO_RDYNAMIC_FALSE@ -NO_RDYNAMIC_TRUE = @NO_RDYNAMIC_TRUE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCRECONFIG = @PCRECONFIG@ PCRE_LIB = @PCRE_LIB@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ +SED = @SED@ SENDFILE_LIB = @SENDFILE_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -166,21 +242,18 @@ SQLITE_CFLAGS = @SQLITE_CFLAGS@ SQLITE_LIBS = @SQLITE_LIBS@ SSL_LIB = @SSL_LIB@ STRIP = @STRIP@ -U = @U@ +UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ Z_LIB = @Z_LIB@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -192,32 +265,44 @@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ # lighttpd.conf and conformance.pl expect this directory testdir = $(srcdir)/tmp/lighttpd/ @@ -245,23 +330,34 @@ CONFS = fastcgi-10.conf \ core-response.t \ core-keepalive.t \ core.t \ + mod-proxy.t \ + proxy.conf \ + mod-secdownload.t \ mod-access.t \ mod-auth.t \ mod-cgi.t \ mod-compress.t \ + mod-compress.conf \ mod-fastcgi.t \ mod-redirect.t \ - mod-userdir.t \ mod-rewrite.t \ + mod-userdir.t \ + symlink.t \ request.t \ mod-ssi.t \ LightyTest.pm \ - mod-setenv.t - -TESTS_ENVIRONMENT = $(srcdir)/wrapper.sh $(srcdir) $(top_builddir) + mod-setenv.t \ + lowercase.t \ + lowercase.conf \ + cachable.t \ + core-404-handler.t \ + 404-handler.conf + +TESTS_ENVIRONMENT = $(srcdir)/wrapper.sh $(srcdir) $(top_builddir) EXTRA_DIST = wrapper.sh lighttpd.conf \ lighttpd.user \ lighttpd.htpasswd \ + SConscript \ $(CONFS) \ $(TESTS) @@ -270,18 +366,18 @@ all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu tests/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -295,23 +391,26 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) +$(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): clean-checkPROGRAMS: - @list='$(check_PROGRAMS)'; for p in $$list; do \ - f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - echo " rm -f $$p $$f"; \ - rm -f $$p $$f ; \ - done -fcgi-auth$(EXEEXT): $(fcgi_auth_OBJECTS) $(fcgi_auth_DEPENDENCIES) + @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +fcgi-auth$(EXEEXT): $(fcgi_auth_OBJECTS) $(fcgi_auth_DEPENDENCIES) $(EXTRA_fcgi_auth_DEPENDENCIES) @rm -f fcgi-auth$(EXEEXT) - $(LINK) $(fcgi_auth_LDFLAGS) $(fcgi_auth_OBJECTS) $(fcgi_auth_LDADD) $(LIBS) -fcgi-responder$(EXEEXT): $(fcgi_responder_OBJECTS) $(fcgi_responder_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(fcgi_auth_OBJECTS) $(fcgi_auth_LDADD) $(LIBS) +fcgi-responder$(EXEEXT): $(fcgi_responder_OBJECTS) $(fcgi_responder_DEPENDENCIES) $(EXTRA_fcgi_responder_DEPENDENCIES) @rm -f fcgi-responder$(EXEEXT) - $(LINK) $(fcgi_responder_LDFLAGS) $(fcgi_responder_OBJECTS) $(fcgi_responder_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(fcgi_responder_OBJECTS) $(fcgi_responder_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -323,25 +422,25 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcgi-responder.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: -@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo @@ -349,10 +448,6 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -distclean-libtool: - -rm -f libtool -uninstall-info-am: - # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, @@ -360,7 +455,7 @@ uninstall-info-am: # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -377,16 +472,15 @@ $(RECURSIVE_TARGETS): else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -412,16 +506,16 @@ maintainer-clean-recursive: else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) @@ -429,14 +523,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ @@ -448,39 +542,43 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags @@ -488,7 +586,8 @@ distclean-tags: check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ - list='$(TESTS)'; \ + list=' $(TESTS) '; \ + $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ @@ -497,49 +596,63 @@ check-TESTS: $(TESTS) if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ - *" $$tst "*) \ + *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ - echo "XPASS: $$tst"; \ + col=$$red; res=XPASS; \ ;; \ *) \ - echo "PASS: $$tst"; \ + col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ - *" $$tst "*) \ + *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ - echo "XFAIL: $$tst"; \ + col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ - echo "FAIL: $$tst"; \ + col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ - echo "SKIP: $$tst"; \ + col=$$blu; res=SKIP; \ fi; \ + echo "$${col}$$res$${std}: $$tst"; \ done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ - banner="All $$all tests passed"; \ + banner="$$All$$all $$tests passed"; \ else \ - banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ - banner="$$failed of $$all tests failed"; \ + banner="$$failed of $$all $$tests failed"; \ else \ - banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ - skipped="($$skip tests were not run)"; \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ @@ -550,52 +663,70 @@ check-TESTS: $(TESTS) dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - test -z "$$skipped" || echo "$$skipped"; \ - test -z "$$report" || echo "$$report"; \ - echo "$$dashes"; \ + if test "$$failed" -eq 0; then \ + col="$$grn"; \ + else \ + col="$$red"; \ + fi; \ + echo "$${col}$$dashes$${std}"; \ + echo "$${col}$$banner$${std}"; \ + test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ + test -z "$$report" || echo "$${col}$$report$${std}"; \ + echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ @@ -617,16 +748,22 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -640,7 +777,7 @@ distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ - distclean-libtool distclean-tags + distclean-tags dvi: dvi-recursive @@ -648,18 +785,38 @@ dvi-am: html: html-recursive +html-am: + info: info-recursive info-am: install-data-am: +install-dvi: install-dvi-recursive + +install-dvi-am: + install-exec-am: +install-html: install-html-recursive + +install-html-am: + install-info: install-info-recursive +install-info-am: + install-man: +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-recursive @@ -680,33 +837,36 @@ ps: ps-recursive ps-am: -uninstall-am: uninstall-info-am +uninstall-am: -uninstall-info: uninstall-info-recursive +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \ + ctags-recursive install-am install-strip tags-recursive -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ - clean-local clean-recursive ctags ctags-recursive distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ - tags tags-recursive uninstall uninstall-am uninstall-info-am +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-TESTS check-am clean \ + clean-checkPROGRAMS clean-generic clean-libtool clean-local \ + ctags ctags-recursive distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am leak-check: for i in $(TESTS); do \ $(srcdir)/$$i; \ echo $$?; \ - done + done clean-local: rm -f *.out + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/tests/SConscript b/tests/SConscript new file mode 100644 index 0000000..4ce7e1e --- /dev/null +++ b/tests/SConscript @@ -0,0 +1,46 @@ +Import('env') + +tests = Split('prepare.sh \ + run-tests.pl \ + cleanup.sh') + +extra_dist = Split('fastcgi-10.conf \ + fastcgi-auth.conf \ + fastcgi-responder.conf \ + fastcgi-13.conf \ + bug-06.conf \ + bug-12.conf \ + core-var-include.t \ + var-include.conf \ + var-include-sub.conf \ + condition.conf \ + core-condition.t \ + core-request.t \ + core-response.t \ + core-keepalive.t \ + core.t \ + mod-access.t \ + mod-auth.t \ + mod-cgi.t \ + mod-compress.t \ + mod-compress.conf \ + mod-fastcgi.t \ + mod-redirect.t \ + mod-userdir.t \ + mod-rewrite.t \ + request.t \ + mod-ssi.t \ + LightyTest.pm \ + mod-setenv.t') + +t = env.Command('foo1', 'prepare.sh', '(cd ./tests/; ./prepare.sh; cd ..)') +t += env.Command('foo2', 'run-tests.pl', '( cd ./tests/; SHELL=/bin/sh ./run-tests.pl; cd ..)') +t += env.Command('foo3', 'cleanup.sh', '(cd ./tests/; ./cleanup.sh; cd ..)') + +if env['LIBFCGI']: + fcgis = [] + fcgis += env.Program("fcgi-auth", "fcgi-auth.c", LIBS=env['LIBFCGI']) + fcgis += env.Program("fcgi-responder", "fcgi-responder.c", LIBS=env['LIBFCGI']) + env.Depends(t, fcgis) + +env.Alias('check', t ) diff --git a/tests/bug-06.conf b/tests/bug-06.conf index 5273c4a..8835535 100644 --- a/tests/bug-06.conf +++ b/tests/bug-06.conf @@ -1,5 +1,4 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" -server.pid-file = "@SRCDIR@/tmp/lighttpd/lighttpd.pid" +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" ## bind to port (default: 80) server.port = 2048 @@ -8,12 +7,13 @@ server.port = 2048 ## bind to localhost (default: all interfaces) server.bind = "localhost" -server.errorlog = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.error.log" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" server.name = "www.example.org" server.tag = "Apache 1.3.29" -## +## ## Format: <errorfile-prefix><status>.html ## -> ..../status-404.html for 'File not found' #server.errorfile-prefix = "/home/weigon/projects/lighttpd/doc/status-" @@ -24,24 +24,24 @@ server.dir-listing = "enable" #server.event-handler = "linux-rtsig" #server.modules.path = "" -server.modules = ( +server.modules = ( "mod_rewrite", "mod_setenv", - "mod_access", + "mod_access", "mod_auth", # "mod_httptls", - "mod_status", + "mod_status", "mod_expire", "mod_simple_vhost", - "mod_redirect", + "mod_redirect", # "mod_evhost", # "mod_localizer", "mod_fastcgi", "mod_cgi", "mod_compress", - "mod_accesslog" ) + "mod_accesslog" ) -server.indexfiles = ( "index.html", +server.indexfiles = ( "index.html", "index.htm", "default.htm", "index.php" ) #,-- only root can use these options @@ -53,15 +53,15 @@ server.indexfiles = ( "index.html", #|# change uid to <uid> (default: don't care) #| server.groupid wwwrun #| -#`-- +#`-- ######################## MODULE CONFIG ############################ -accesslog.filename = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.access.log" +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" -mimetype.assign = ( ".png" => "image/png", +mimetype.assign = ( ".png" => "image/png", ".jpg" => "image/jpeg", ".jpeg" => "image/jpeg", ".gif" => "image/gif", @@ -77,7 +77,7 @@ mimetype.assign = ( ".png" => "image/png", ".c" => "text/plain", ".conf" => "text/plain" ) -compress.cache-dir = "@SRCDIR@/tmp/lighttpd/cache/compress/" +compress.cache-dir = env.SRCDIR + "/tmp/lighttpd/cache/compress/" compress.filetype = ("text/plain", "text/html") setenv.add-environment = ( "TRAC_ENV" => "foo") @@ -85,50 +85,50 @@ setenv.add-request-header = ( "FOO" => "foo") setenv.add-response-header = ( "BAR" => "foo") fastcgi.debug = 0 -fastcgi.server = ( ".php" => ( - "grisu" => ( +fastcgi.server = ( ".php" => ( + "grisu" => ( "host" => "127.0.0.1", "port" => 1026, # "mode" => "authorizer", -# "docroot" => "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/", +# "docroot" => env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/", ) ) ) - + cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl", ".py" => "/usr/bin/python" ) - + ssl.engine = "disable" -ssl.pemfile = "server.pem" +# ssl.pemfile = "server.pem" auth.backend = "plain" -auth.backend.plain.userfile = "@SRCDIR@/tmp/lighttpd/lighttpd.user" +auth.backend.plain.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.user" auth.backend.plain.groupfile = "lighttpd.group" auth.backend.ldap.hostname = "localhost" auth.backend.ldap.base-dn = "dc=my-domain,dc=com" auth.backend.ldap.filter = "(uid=$)" -auth.require = ( "/server-status" => - ( +auth.require = ( "/server-status" => + ( "method" => "digest", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "host=192.168.2.10") "require" => "group=www|user=jan|host=192.168.2.10" ), - "/auth.php" => - ( + "/auth.php" => + ( "method" => "basic", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "host=192.168.2.10") "require" => "user=jan" ), - "/server-config" => - ( + "/server-config" => + ( "method" => "basic", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "user=weigon", "host=192.168.2.10") @@ -149,15 +149,15 @@ status.status-url = "/server-status" status.config-url = "/server-config" simple-vhost.document-root = "pages" -simple-vhost.server-root = "@SRCDIR@/tmp/lighttpd/servers/" +simple-vhost.server-root = env.SRCDIR + "/tmp/lighttpd/servers/" simple-vhost.default-host = "www.example.org" $HTTP["host"] == "vvv.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" } $HTTP["host"] == "zzz.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "zzz.example.org" } diff --git a/tests/bug-12.conf b/tests/bug-12.conf index 491ff9e..61cba0e 100644 --- a/tests/bug-12.conf +++ b/tests/bug-12.conf @@ -1,5 +1,4 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" -server.pid-file = "@SRCDIR@/tmp/lighttpd/lighttpd.pid" +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" ## bind to port (default: 80) server.port = 2048 @@ -8,12 +7,13 @@ server.port = 2048 ## bind to localhost (default: all interfaces) server.bind = "localhost" -server.errorlog = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.error.log" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" server.name = "www.example.org" server.tag = "Apache 1.3.29" -## +## ## Format: <errorfile-prefix><status>.html ## -> ..../status-404.html for 'File not found' #server.errorfile-prefix = "/home/weigon/projects/lighttpd/doc/status-" @@ -24,24 +24,24 @@ server.dir-listing = "enable" #server.event-handler = "linux-rtsig" #server.modules.path = "" -server.modules = ( +server.modules = ( "mod_rewrite", "mod_setenv", - "mod_access", + "mod_access", "mod_auth", # "mod_httptls", - "mod_status", + "mod_status", "mod_expire", "mod_simple_vhost", - "mod_redirect", + "mod_redirect", # "mod_evhost", # "mod_localizer", "mod_fastcgi", "mod_cgi", "mod_compress", - "mod_accesslog" ) + "mod_accesslog" ) -server.indexfiles = ( "index.html", +server.indexfiles = ( "index.html", "index.htm", "default.htm", "index.php" ) server.error-handler-404 = "/indexfile/return-404.php" @@ -55,15 +55,15 @@ server.error-handler-404 = "/indexfile/return-404.php" #|# change uid to <uid> (default: don't care) #| server.groupid wwwrun #| -#`-- +#`-- ######################## MODULE CONFIG ############################ -accesslog.filename = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.access.log" +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" -mimetype.assign = ( ".png" => "image/png", +mimetype.assign = ( ".png" => "image/png", ".jpg" => "image/jpeg", ".jpeg" => "image/jpeg", ".gif" => "image/gif", @@ -79,7 +79,7 @@ mimetype.assign = ( ".png" => "image/png", ".c" => "text/plain", ".conf" => "text/plain" ) -compress.cache-dir = "@SRCDIR@/tmp/lighttpd/cache/compress/" +compress.cache-dir = env.SRCDIR + "/tmp/lighttpd/cache/compress/" compress.filetype = ("text/plain", "text/html") setenv.add-environment = ( "TRAC_ENV" => "foo") @@ -87,50 +87,50 @@ setenv.add-request-header = ( "FOO" => "foo") setenv.add-response-header = ( "BAR" => "foo") fastcgi.debug = 0 -fastcgi.server = ( ".php" => ( - "grisu" => ( +fastcgi.server = ( ".php" => ( + "grisu" => ( "host" => "127.0.0.1", "port" => 1026, # "mode" => "authorizer", -# "docroot" => "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/", +# "docroot" => env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/", ) ) ) - + cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl", ".py" => "/usr/bin/python" ) - + ssl.engine = "disable" -ssl.pemfile = "server.pem" +# ssl.pemfile = "server.pem" auth.backend = "plain" -auth.backend.plain.userfile = "@SRCDIR@/tmp/lighttpd/lighttpd.user" +auth.backend.plain.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.user" auth.backend.plain.groupfile = "lighttpd.group" auth.backend.ldap.hostname = "localhost" auth.backend.ldap.base-dn = "dc=my-domain,dc=com" auth.backend.ldap.filter = "(uid=$)" -auth.require = ( "/server-status" => - ( +auth.require = ( "/server-status" => + ( "method" => "digest", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "host=192.168.2.10") "require" => "group=www|user=jan|host=192.168.2.10" ), - "/auth.php" => - ( + "/auth.php" => + ( "method" => "basic", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "host=192.168.2.10") "require" => "user=jan" ), - "/server-config" => - ( + "/server-config" => + ( "method" => "basic", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "user=weigon", "host=192.168.2.10") @@ -151,15 +151,15 @@ status.status-url = "/server-status" status.config-url = "/server-config" simple-vhost.document-root = "pages" -simple-vhost.server-root = "@SRCDIR@/tmp/lighttpd/servers/" +simple-vhost.server-root = env.SRCDIR + "/tmp/lighttpd/servers/" simple-vhost.default-host = "www.example.org" $HTTP["host"] == "vvv.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" } $HTTP["host"] == "zzz.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "zzz.example.org" } diff --git a/tests/cachable.t b/tests/cachable.t new file mode 100755 index 0000000..605a68f --- /dev/null +++ b/tests/cachable.t @@ -0,0 +1,121 @@ +#!/usr/bin/env perl +BEGIN { + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; +} + +use strict; +use IO::Socket; +use Test::More tests => 13; +use LightyTest; + +my $tf = LightyTest->new(); +my $t; + +$tf->{CONFIGFILE} = 'lighttpd.conf'; + +ok($tf->start_proc == 0, "Starting lighttpd") or die(); + +## check if If-Modified-Since, If-None-Match works + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-Modified-Since: Sun, 01 Jan 1970 00:00:01 GMT +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - old If-Modified-Since'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-Modified-Since: Sun, 01 Jan 1970 00:00:01 GMT; foo +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, '+Last-Modified' => ''} ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - old If-Modified-Since, comment'); + +my $now = $t->{date}; + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-Modified-Since: $now +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 304 } ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - new If-Modified-Since'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-Modified-Since: $now; foo +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 304 } ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - new If-Modified-Since, comment'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-None-Match: foo +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, '+ETag' => ''} ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - old If-None-Match'); + +my $etag = $t->{etag}; + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-None-Match: $etag +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 304 } ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - old If-None-Match'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-None-Match: $etag +If-Modified-Since: Sun, 01 Jan 1970 00:00:01 GMT; foo +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - ETag + old Last-Modified'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-None-Match: $etag +If-Modified-Since: $now; foo +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 304 } ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - ETag, Last-Modified + comment'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-None-Match: Foo +If-Modified-Since: Sun, 01 Jan 1970 00:00:01 GMT; foo +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - old ETAG + old Last-Modified'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-None-Match: $etag +If-Modified-Since: $now foo +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 412 } ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - ETag + Last-Modified + overlong timestamp'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +If-None-Match: $etag +Host: etag.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'Conditional GET - ETag + disabled etags on server side'); + +ok($tf->stop_proc == 0, "Stopping lighttpd"); + diff --git a/tests/condition.conf b/tests/condition.conf index 7fd58d7..d1e8882 100644 --- a/tests/condition.conf +++ b/tests/condition.conf @@ -2,45 +2,45 @@ debug.log-request-handling = "enable" debug.log-condition-handling = "enable" -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" -server.pid-file = "@SRCDIR@/tmp/lighttpd/lighttpd.pid" +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" ## bind to port (default: 80) server.port = 2048 ## bind to localhost (default: all interfaces) server.bind = "localhost" -server.errorlog = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.error.log" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" server.name = "www.example.org" server.tag = "Apache 1.3.29" -server.modules = ( +server.modules = ( "mod_redirect", - "mod_accesslog" ) + "mod_accesslog" ) ######################## MODULE CONFIG ############################ -accesslog.filename = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.access.log" +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" mimetype.assign = ( ".html" => "text/html" ) url.redirect = ("^" => "/default") $HTTP["host"] == "www.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "www.example.org" url.redirect = ("^" => "/match_1") } else $HTTP["host"] == "test1.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "test1.example.org" url.redirect = ("^" => "/match_2") } # comments else $HTTP["host"] == "test2.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "test2.example.org" url.redirect = ("^" => "/match_3") } @@ -48,7 +48,7 @@ else $HTTP["host"] == "test2.example.org" { # comments else $HTTP["host"] == "test3.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "test3.example.org" url.redirect = ("^" => "/match_4") @@ -57,3 +57,13 @@ else $HTTP["host"] == "test3.example.org" { url.redirect = ("^" => "/match_5") } } + +else $HTTP["host"] == "test4.example.org" { + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" + server.name = "test4.example.org" + url.redirect = ("^" => "/match_6") + + $HTTP["url"] =~ "^/subdir/" { + url.redirect = ("^" => "/match_7") + } +} diff --git a/tests/core-404-handler.t b/tests/core-404-handler.t new file mode 100755 index 0000000..599ade2 --- /dev/null +++ b/tests/core-404-handler.t @@ -0,0 +1,76 @@ +#!/usr/bin/env perl +# +# combinations we have to test: +# plain 404 case +# 404-handler -> static file (verify content) +# 404-handler -> fastcgi +# returning 200 +# returning 302 + Location +# returning 404 +# returning no status -> 200 +# +BEGIN { + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; +} + +use strict; +use IO::Socket; +use Test::More tests => 8; +use LightyTest; + +my $tf = LightyTest->new(); +my $t; +$tf->{CONFIGFILE} = '404-handler.conf'; + +ok($tf->start_proc == 0, "Starting lighttpd") or die(); + +$t->{REQUEST} = ( <<EOF +GET /static/notfound HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => "static not found\n" } ]; +ok($tf->handle_http($t) == 0, '404 handler => static'); + +# +# +# +$t->{REQUEST} = ( <<EOF +GET /dynamic/200/notfound HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => "found here\n" } ]; +ok($tf->handle_http($t) == 0, '404 handler => dynamic(200)'); + +$t->{REQUEST} = ( <<EOF +GET /dynamic/302/notfound HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 302, 'Location' => "http://www.example.org/" } ]; +ok($tf->handle_http($t) == 0, '404 handler => dynamic(302)'); + +$t->{REQUEST} = ( <<EOF +GET /dynamic/404/notfound HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 404, 'HTTP-Content' => "Not found here\n" } ]; +ok($tf->handle_http($t) == 0, '404 handler => dynamic(404)'); + +$t->{REQUEST} = ( <<EOF +GET /dynamic/nostatus/notfound HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => "found here\n" } ]; +ok($tf->handle_http($t) == 0, '404 handler => dynamic(nostatus)'); + +$t->{REQUEST} = ( <<EOF +GET /send404.pl HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 404, 'HTTP-Content' => "send404\n" } ]; +ok($tf->handle_http($t) == 0, '404 generated by CGI should stay 404'); + +ok($tf->stop_proc == 0, "Stopping lighttpd"); + diff --git a/tests/core-condition.t b/tests/core-condition.t index 96b05d8..39b24e3 100755 --- a/tests/core-condition.t +++ b/tests/core-condition.t @@ -1,14 +1,14 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; use IO::Socket; -use Test::More tests => 17; +use Test::More tests => 19; use LightyTest; my $tf = LightyTest->new(); @@ -49,6 +49,22 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => "/match_5" } ]; ok($tf->handle_http($t) == 0, 'nesting'); +$t->{REQUEST} = ( <<EOF +GET /subdir/index.html HTTP/1.0 +Host: test4.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => "/match_7" } ]; +ok($tf->handle_http($t) == 0, 'url subdir'); + +$t->{REQUEST} = ( <<EOF +GET /subdir/../css/index.html HTTP/1.0 +Host: test4.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => "/match_6" } ]; +ok($tf->handle_http($t) == 0, 'url subdir with path traversal'); + ok($tf->stop_proc == 0, "Stopping lighttpd"); $tf->{CONFIGFILE} = 'lighttpd.conf'; diff --git a/tests/core-keepalive.t b/tests/core-keepalive.t index e3f6541..b4f51f9 100755 --- a/tests/core-keepalive.t +++ b/tests/core-keepalive.t @@ -1,10 +1,9 @@ #!/usr/bin/env perl - BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; @@ -40,7 +39,7 @@ Host: 123.example.org GET /12345.txt HTTP/1.0 Host: 123.example.org -Connection: keep-alive +Connection: close EOF ); $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } , { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; diff --git a/tests/core-request.t b/tests/core-request.t index f4db937..a24777f 100755 --- a/tests/core-request.t +++ b/tests/core-request.t @@ -1,14 +1,14 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; use IO::Socket; -use Test::More tests => 33; +use Test::More tests => 36; use LightyTest; my $tf = LightyTest->new(); @@ -223,7 +223,7 @@ ok($tf->handle_http($t) == 0, 'Content-Length > max-request-size'); $t->{REQUEST} = ( <<EOF POST /12345.txt HTTP/1.0 Host: 123.example.org -Content-Length: +Content-Length: EOF ); $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 411 } ]; @@ -273,6 +273,38 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; ok($tf->handle_http($t) == 0, 'uppercase filenames'); +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +Location: foo +Location: foobar + baz +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, '#1232 - duplicate headers with line-wrapping'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +Location: +Location: foobar + baz +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, '#1232 - duplicate headers with line-wrapping - test 2'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/1.0 +A: +Location: foobar + baz +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, '#1232 - duplicate headers with line-wrapping - test 3'); + + + ok($tf->stop_proc == 0, "Stopping lighttpd"); diff --git a/tests/core-response.t b/tests/core-response.t index a8fbd00..ff2cf1d 100755 --- a/tests/core-response.t +++ b/tests/core-response.t @@ -1,10 +1,9 @@ #!/usr/bin/env perl - BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; @@ -14,7 +13,7 @@ use LightyTest; my $tf = LightyTest->new(); my $t; - + ok($tf->start_proc == 0, "Starting lighttpd") or die(); ## Low-Level Response-Header Parsing - HTTP/1.1 diff --git a/tests/core-var-include.t b/tests/core-var-include.t index a6ccbd3..8161751 100755 --- a/tests/core-var-include.t +++ b/tests/core-var-include.t @@ -1,9 +1,9 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; @@ -37,13 +37,13 @@ my $tests = { "var.myvar" => "/good_var_myvar" . $myvar, "myvar" => "/good_myvar" . $myvar, "env" => "/" . $ENV{"env_test"}, - + "number1" => "/good_number" . "1", "number2" => "1" . "/good_number", "array_append" => "/good_array_append", "string_append" => "/good_" . $mystr, "number_append" => "/good_" . "2", - + "include_shell" => "/good_include_shell_" . "456" }; diff --git a/tests/core.t b/tests/core.t index 6d11cc6..b196666 100755 --- a/tests/core.t +++ b/tests/core.t @@ -1,15 +1,14 @@ #!/usr/bin/env perl - BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; use IO::Socket; -use Test::More tests => 17; +use Test::More tests => 21; use LightyTest; my $tf = LightyTest->new(); @@ -32,6 +31,36 @@ $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 400 } ]; ok($tf->handle_http($t) == 0, 'missing Protocol'); $t->{REQUEST} = ( <<EOF +GET / HTTP/01.01 +Host: foo +Connection: close +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'zeros in protocol version'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/.01 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 400 } ]; +ok($tf->handle_http($t) == 0, 'missing major version'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/01. +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 400 } ]; +ok($tf->handle_http($t) == 0, 'missing minor version'); + +$t->{REQUEST} = ( <<EOF +GET / HTTP/a.b +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 400 } ]; +ok($tf->handle_http($t) == 0, 'strings as version'); + +$t->{REQUEST} = ( <<EOF BC / EOF ); @@ -93,7 +122,7 @@ ok($tf->handle_http($t) == 0, 'no whitespace'); $t->{REQUEST} = ( <<EOF GET / HTTP/1.0 -ABC:foo +ABC:foo bc EOF ); diff --git a/tests/docroot/123/Makefile.am b/tests/docroot/123/Makefile.am index 64712d7..e998042 100644 --- a/tests/docroot/123/Makefile.am +++ b/tests/docroot/123/Makefile.am @@ -1 +1 @@ -EXTRA_DIST=12345.html 12345.txt dummyfile.bla phpinfo.php +EXTRA_DIST=12345.html 12345.txt dummyfile.bla phpinfo.php diff --git a/tests/docroot/123/Makefile.in b/tests/docroot/123/Makefile.in index cabff31..263d661 100644 --- a/tests/docroot/123/Makefile.in +++ b/tests/docroot/123/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,15 +14,29 @@ # PARTICULAR PURPOSE. @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../../.. +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -39,19 +54,33 @@ target_triplet = @target@ subdir = tests/docroot/123 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ATTR_LIB = @ATTR_LIB@ AUTOCONF = @AUTOCONF@ @@ -62,69 +91,73 @@ BZ_LIB = @BZ_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CHECK_WITH_FASTCGI_FALSE = @CHECK_WITH_FASTCGI_FALSE@ -CHECK_WITH_FASTCGI_TRUE = @CHECK_WITH_FASTCGI_TRUE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CROSS_COMPILING_FALSE = @CROSS_COMPILING_FALSE@ -CROSS_COMPILING_TRUE = @CROSS_COMPILING_TRUE@ CRYPT_LIB = @CRYPT_LIB@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DL_LIB = @DL_LIB@ -ECHO = @ECHO@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -F77 = @F77@ FAM_CFLAGS = @FAM_CFLAGS@ FAM_LIBS = @FAM_LIBS@ -FFLAGS = @FFLAGS@ +FGREP = @FGREP@ GDBM_LIB = @GDBM_LIB@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LBER_LIB = @LBER_LIB@ +LD = @LD@ LDAP_LIB = @LDAP_LIB@ LDFLAGS = @LDFLAGS@ +LIBEV_CFLAGS = @LIBEV_CFLAGS@ +LIBEV_LIBS = @LIBEV_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ -LUACONFIG = @LUACONFIG@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_LIBS = @LUA_LIBS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MEMCACHE_LIB = @MEMCACHE_LIB@ +MKDIR_P = @MKDIR_P@ MYSQL_CONFIG = @MYSQL_CONFIG@ MYSQL_INCLUDE = @MYSQL_INCLUDE@ MYSQL_LIBS = @MYSQL_LIBS@ -NO_RDYNAMIC_FALSE = @NO_RDYNAMIC_FALSE@ -NO_RDYNAMIC_TRUE = @NO_RDYNAMIC_TRUE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCRECONFIG = @PCRECONFIG@ PCRE_LIB = @PCRE_LIB@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ +SED = @SED@ SENDFILE_LIB = @SENDFILE_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -132,21 +165,18 @@ SQLITE_CFLAGS = @SQLITE_CFLAGS@ SQLITE_LIBS = @SQLITE_LIBS@ SSL_LIB = @SSL_LIB@ STRIP = @STRIP@ -U = @U@ +UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ Z_LIB = @Z_LIB@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -158,48 +188,60 @@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -EXTRA_DIST = 12345.html 12345.txt dummyfile.bla phpinfo.php +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = 12345.html 12345.txt dummyfile.bla phpinfo.php all: all-am .SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docroot/123/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu tests/docroot/123/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/docroot/123/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/docroot/123/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -213,20 +255,17 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) +$(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: tags: TAGS TAGS: @@ -235,29 +274,32 @@ CTAGS: distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -275,16 +317,22 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -295,7 +343,7 @@ clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool +distclean-am: clean-am distclean-generic dvi: dvi-am @@ -303,18 +351,38 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: install-data-am: +install-dvi: install-dvi-am + +install-dvi-am: + install-exec-am: +install-html: install-html-am + +install-html-am: + install-info: install-info-am +install-info-am: + install-man: +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-am @@ -333,17 +401,21 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am +uninstall-am: + +.MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-info-am + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/tests/docroot/Makefile.in b/tests/docroot/Makefile.in index 5d39cdf..b367eec 100644 --- a/tests/docroot/Makefile.in +++ b/tests/docroot/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,15 +14,29 @@ # PARTICULAR PURPOSE. @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -39,28 +54,73 @@ target_triplet = @target@ subdir = tests/docroot DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ATTR_LIB = @ATTR_LIB@ AUTOCONF = @AUTOCONF@ @@ -71,69 +131,73 @@ BZ_LIB = @BZ_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CHECK_WITH_FASTCGI_FALSE = @CHECK_WITH_FASTCGI_FALSE@ -CHECK_WITH_FASTCGI_TRUE = @CHECK_WITH_FASTCGI_TRUE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CROSS_COMPILING_FALSE = @CROSS_COMPILING_FALSE@ -CROSS_COMPILING_TRUE = @CROSS_COMPILING_TRUE@ CRYPT_LIB = @CRYPT_LIB@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DL_LIB = @DL_LIB@ -ECHO = @ECHO@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -F77 = @F77@ FAM_CFLAGS = @FAM_CFLAGS@ FAM_LIBS = @FAM_LIBS@ -FFLAGS = @FFLAGS@ +FGREP = @FGREP@ GDBM_LIB = @GDBM_LIB@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LBER_LIB = @LBER_LIB@ +LD = @LD@ LDAP_LIB = @LDAP_LIB@ LDFLAGS = @LDFLAGS@ +LIBEV_CFLAGS = @LIBEV_CFLAGS@ +LIBEV_LIBS = @LIBEV_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ -LUACONFIG = @LUACONFIG@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_LIBS = @LUA_LIBS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MEMCACHE_LIB = @MEMCACHE_LIB@ +MKDIR_P = @MKDIR_P@ MYSQL_CONFIG = @MYSQL_CONFIG@ MYSQL_INCLUDE = @MYSQL_INCLUDE@ MYSQL_LIBS = @MYSQL_LIBS@ -NO_RDYNAMIC_FALSE = @NO_RDYNAMIC_FALSE@ -NO_RDYNAMIC_TRUE = @NO_RDYNAMIC_TRUE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCRECONFIG = @PCRECONFIG@ PCRE_LIB = @PCRE_LIB@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ +SED = @SED@ SENDFILE_LIB = @SENDFILE_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -141,21 +205,18 @@ SQLITE_CFLAGS = @SQLITE_CFLAGS@ SQLITE_LIBS = @SQLITE_LIBS@ SSL_LIB = @SSL_LIB@ STRIP = @STRIP@ -U = @U@ +UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ Z_LIB = @Z_LIB@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -167,48 +228,60 @@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ SUBDIRS = 123 www all: all-recursive .SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docroot/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu tests/docroot/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/docroot/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/docroot/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -222,10 +295,11 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) +$(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo @@ -233,10 +307,6 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -distclean-libtool: - -rm -f libtool -uninstall-info-am: - # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, @@ -244,7 +314,7 @@ uninstall-info-am: # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -261,16 +331,15 @@ $(RECURSIVE_TARGETS): else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -296,16 +365,16 @@ maintainer-clean-recursive: else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) @@ -313,14 +382,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ @@ -332,81 +401,98 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ @@ -426,16 +512,22 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -446,8 +538,7 @@ clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ - distclean-tags +distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive @@ -455,18 +546,38 @@ dvi-am: html: html-recursive +html-am: + info: info-recursive info-am: install-data-am: +install-dvi: install-dvi-recursive + +install-dvi-am: + install-exec-am: +install-html: install-html-recursive + +install-html-am: + install-info: install-info-recursive +install-info-am: + install-man: +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-recursive @@ -485,22 +596,25 @@ ps: ps-recursive ps-am: -uninstall-am: uninstall-info-am +uninstall-am: -uninstall-info: uninstall-info-recursive +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libtool clean-recursive ctags \ - ctags-recursive distclean distclean-generic distclean-libtool \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-generic mostlyclean-libtool \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-info-am + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/tests/docroot/www/404.fcgi b/tests/docroot/www/404.fcgi new file mode 100755 index 0000000..468089f --- /dev/null +++ b/tests/docroot/www/404.fcgi @@ -0,0 +1,27 @@ +#!/usr/bin/perl +#use CGI qw/:standard/; +use CGI::Fast qw(:standard); +my $cgi = new CGI; +while (new CGI::Fast) { + my $request_uri = $ENV{'REQUEST_URI'}; + print (STDERR "REQUEST_URI: $request_uri\n"); + if ($request_uri =~ m/^\/dynamic\/200\// ) { + print header ( -status => 200, + -type => 'text/plain' ); + print ("found here\n"); + } + elsif ($request_uri =~ m|^/dynamic/302/| ) { + print header( -status=>302, + -location => 'http://www.example.org/'); + } + elsif ($request_uri =~ m/^\/dynamic\/404\// ) { + print header ( -status => 404 + -type => 'text/plain' ); + print ("Not found here\n"); + } + else { + print header ( -status => 500, + -type => 'text/plain'); + print ("huh\n"); + }; +}; diff --git a/tests/docroot/www/404.html b/tests/docroot/www/404.html new file mode 100644 index 0000000..ce72e89 --- /dev/null +++ b/tests/docroot/www/404.html @@ -0,0 +1 @@ +static not found diff --git a/tests/docroot/www/404.pl b/tests/docroot/www/404.pl new file mode 100755 index 0000000..0f743d0 --- /dev/null +++ b/tests/docroot/www/404.pl @@ -0,0 +1,33 @@ +#!/usr/bin/perl +use CGI qw/:standard/; +my $cgi = new CGI; +my $request_uri = $ENV{'REQUEST_URI'}; +print (STDERR "REQUEST_URI: $request_uri\n"); + +if ($request_uri =~ m/^\/dynamic\/200\// ) { + print header ( -status => 200, + -type => 'text/plain' ); + print ("found here\n"); +} +elsif ($request_uri =~ m|^/dynamic/302/| ) { + print header( -status=>302, + -location => 'http://www.example.org/'); +} +elsif ($request_uri =~ m/^\/dynamic\/404\// ) { + print header ( -status => 404 + -type => 'text/plain' ); + print ("Not found here\n"); +} +elsif ($request_uri =~ m/^\/send404\.pl/ ) { + print header ( -status => 404 + -type => 'text/plain' ); + print ("Not found here (send404)\n"); +} +elsif ($request_uri =~ m/^\/dynamic\/nostatus\// ) { + print ("found here\n"); +} +else { + print header ( -status => 500, + -type => 'text/plain'); + print ("huh\n"); +}; diff --git a/tests/docroot/www/Makefile.am b/tests/docroot/www/Makefile.am index 9198f56..5bc0c0b 100644 --- a/tests/docroot/www/Makefile.am +++ b/tests/docroot/www/Makefile.am @@ -1,5 +1,5 @@ -EXTRA_DIST=cgi.php cgi.pl dummydir index.html index.txt phpinfo.php \ +EXTRA_DIST=cgi.php cgi.pl index.html index.txt phpinfo.php \ redirect.php cgi-pathinfo.pl get-env.php get-server-env.php \ nph-status.pl prefix.fcgi get-header.pl ssi.shtml get-post-len.pl \ - exec-date.shtml + exec-date.shtml 404.fcgi 404.html 404.pl send404.pl crlfcrash.pl sendfile.php SUBDIRS=go indexfile expire diff --git a/tests/docroot/www/Makefile.in b/tests/docroot/www/Makefile.in index 55988be..c3d3af9 100644 --- a/tests/docroot/www/Makefile.in +++ b/tests/docroot/www/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,15 +14,29 @@ # PARTICULAR PURPOSE. @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../../.. +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -39,28 +54,73 @@ target_triplet = @target@ subdir = tests/docroot/www DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ATTR_LIB = @ATTR_LIB@ AUTOCONF = @AUTOCONF@ @@ -71,69 +131,73 @@ BZ_LIB = @BZ_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CHECK_WITH_FASTCGI_FALSE = @CHECK_WITH_FASTCGI_FALSE@ -CHECK_WITH_FASTCGI_TRUE = @CHECK_WITH_FASTCGI_TRUE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CROSS_COMPILING_FALSE = @CROSS_COMPILING_FALSE@ -CROSS_COMPILING_TRUE = @CROSS_COMPILING_TRUE@ CRYPT_LIB = @CRYPT_LIB@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DL_LIB = @DL_LIB@ -ECHO = @ECHO@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -F77 = @F77@ FAM_CFLAGS = @FAM_CFLAGS@ FAM_LIBS = @FAM_LIBS@ -FFLAGS = @FFLAGS@ +FGREP = @FGREP@ GDBM_LIB = @GDBM_LIB@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LBER_LIB = @LBER_LIB@ +LD = @LD@ LDAP_LIB = @LDAP_LIB@ LDFLAGS = @LDFLAGS@ +LIBEV_CFLAGS = @LIBEV_CFLAGS@ +LIBEV_LIBS = @LIBEV_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ -LUACONFIG = @LUACONFIG@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_LIBS = @LUA_LIBS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MEMCACHE_LIB = @MEMCACHE_LIB@ +MKDIR_P = @MKDIR_P@ MYSQL_CONFIG = @MYSQL_CONFIG@ MYSQL_INCLUDE = @MYSQL_INCLUDE@ MYSQL_LIBS = @MYSQL_LIBS@ -NO_RDYNAMIC_FALSE = @NO_RDYNAMIC_FALSE@ -NO_RDYNAMIC_TRUE = @NO_RDYNAMIC_TRUE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCRECONFIG = @PCRECONFIG@ PCRE_LIB = @PCRE_LIB@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ +SED = @SED@ SENDFILE_LIB = @SENDFILE_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -141,21 +205,18 @@ SQLITE_CFLAGS = @SQLITE_CFLAGS@ SQLITE_LIBS = @SQLITE_LIBS@ SSL_LIB = @SSL_LIB@ STRIP = @STRIP@ -U = @U@ +UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ Z_LIB = @Z_LIB@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -167,53 +228,65 @@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ -EXTRA_DIST = cgi.php cgi.pl dummydir index.html index.txt phpinfo.php \ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = cgi.php cgi.pl index.html index.txt phpinfo.php \ redirect.php cgi-pathinfo.pl get-env.php get-server-env.php \ nph-status.pl prefix.fcgi get-header.pl ssi.shtml get-post-len.pl \ - exec-date.shtml + exec-date.shtml 404.fcgi 404.html 404.pl send404.pl crlfcrash.pl sendfile.php SUBDIRS = go indexfile expire all: all-recursive .SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docroot/www/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu tests/docroot/www/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/docroot/www/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/docroot/www/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -227,10 +300,11 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) +$(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo @@ -238,10 +312,6 @@ mostlyclean-libtool: clean-libtool: -rm -rf .libs _libs -distclean-libtool: - -rm -f libtool -uninstall-info-am: - # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, @@ -249,7 +319,7 @@ uninstall-info-am: # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): - @failcom='exit 1'; \ + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -266,16 +336,15 @@ $(RECURSIVE_TARGETS): else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @failcom='exit 1'; \ +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ @@ -301,16 +370,16 @@ maintainer-clean-recursive: else \ local_target="$$target"; \ fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) @@ -318,14 +387,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ + set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ @@ -337,81 +406,98 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique + $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ @@ -431,16 +517,22 @@ install-am: all-am installcheck: installcheck-recursive install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -451,8 +543,7 @@ clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool \ - distclean-tags +distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive @@ -460,18 +551,38 @@ dvi-am: html: html-recursive +html-am: + info: info-recursive info-am: install-data-am: +install-dvi: install-dvi-recursive + +install-dvi-am: + install-exec-am: +install-html: install-html-recursive + +install-html-am: + install-info: install-info-recursive +install-info-am: + install-man: +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-recursive @@ -490,22 +601,25 @@ ps: ps-recursive ps-am: -uninstall-am: uninstall-info-am +uninstall-am: -uninstall-info: uninstall-info-recursive +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ - clean clean-generic clean-libtool clean-recursive ctags \ - ctags-recursive distclean distclean-generic distclean-libtool \ - distclean-recursive distclean-tags distdir dvi dvi-am html \ +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-generic mostlyclean-libtool \ - mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ - uninstall uninstall-am uninstall-info-am + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/tests/docroot/www/cgi-pathinfo.pl b/tests/docroot/www/cgi-pathinfo.pl index af8d4df..7bebb0c 100644 --- a/tests/docroot/www/cgi-pathinfo.pl +++ b/tests/docroot/www/cgi-pathinfo.pl @@ -1,4 +1,4 @@ -#! /usr/bin/perl +#! /usr/bin/perl print "Content-Type: text/html\r\n\r\n"; diff --git a/tests/docroot/www/cgi.php b/tests/docroot/www/cgi.php index d92e52f..f59a840 100755 --- a/tests/docroot/www/cgi.php +++ b/tests/docroot/www/cgi.php @@ -1,4 +1,4 @@ -<?php +<?php #ob_start(/*"ob_gzhandler"*/); print "12345<br />\n"; diff --git a/tests/docroot/www/cgi.pl b/tests/docroot/www/cgi.pl index 9695adf..88ae6d3 100644 --- a/tests/docroot/www/cgi.pl +++ b/tests/docroot/www/cgi.pl @@ -1,4 +1,4 @@ -#! /usr/bin/perl +#! /usr/bin/perl print "Content-Type: text/html\r\n\r\n"; diff --git a/tests/docroot/www/crlfcrash.pl b/tests/docroot/www/crlfcrash.pl new file mode 100644 index 0000000..f90bc86 --- /dev/null +++ b/tests/docroot/www/crlfcrash.pl @@ -0,0 +1,4 @@ +#!/usr/bin/env perl +# +print "Location: http://www.example.org/\r\n\n\n"; +exit; diff --git a/tests/docroot/www/expire/Makefile.in b/tests/docroot/www/expire/Makefile.in index 23e0c31..bfe85ea 100644 --- a/tests/docroot/www/expire/Makefile.in +++ b/tests/docroot/www/expire/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,15 +14,29 @@ # PARTICULAR PURPOSE. @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../../../.. +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -39,19 +54,33 @@ target_triplet = @target@ subdir = tests/docroot/www/expire DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ATTR_LIB = @ATTR_LIB@ AUTOCONF = @AUTOCONF@ @@ -62,69 +91,73 @@ BZ_LIB = @BZ_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CHECK_WITH_FASTCGI_FALSE = @CHECK_WITH_FASTCGI_FALSE@ -CHECK_WITH_FASTCGI_TRUE = @CHECK_WITH_FASTCGI_TRUE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CROSS_COMPILING_FALSE = @CROSS_COMPILING_FALSE@ -CROSS_COMPILING_TRUE = @CROSS_COMPILING_TRUE@ CRYPT_LIB = @CRYPT_LIB@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DL_LIB = @DL_LIB@ -ECHO = @ECHO@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -F77 = @F77@ FAM_CFLAGS = @FAM_CFLAGS@ FAM_LIBS = @FAM_LIBS@ -FFLAGS = @FFLAGS@ +FGREP = @FGREP@ GDBM_LIB = @GDBM_LIB@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LBER_LIB = @LBER_LIB@ +LD = @LD@ LDAP_LIB = @LDAP_LIB@ LDFLAGS = @LDFLAGS@ +LIBEV_CFLAGS = @LIBEV_CFLAGS@ +LIBEV_LIBS = @LIBEV_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ -LUACONFIG = @LUACONFIG@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_LIBS = @LUA_LIBS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MEMCACHE_LIB = @MEMCACHE_LIB@ +MKDIR_P = @MKDIR_P@ MYSQL_CONFIG = @MYSQL_CONFIG@ MYSQL_INCLUDE = @MYSQL_INCLUDE@ MYSQL_LIBS = @MYSQL_LIBS@ -NO_RDYNAMIC_FALSE = @NO_RDYNAMIC_FALSE@ -NO_RDYNAMIC_TRUE = @NO_RDYNAMIC_TRUE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCRECONFIG = @PCRECONFIG@ PCRE_LIB = @PCRE_LIB@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ +SED = @SED@ SENDFILE_LIB = @SENDFILE_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -132,21 +165,18 @@ SQLITE_CFLAGS = @SQLITE_CFLAGS@ SQLITE_LIBS = @SQLITE_LIBS@ SSL_LIB = @SSL_LIB@ STRIP = @STRIP@ -U = @U@ +UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ Z_LIB = @Z_LIB@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -158,48 +188,60 @@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ EXTRA_DIST = access.txt modification.txt all: all-am .SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docroot/www/expire/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu tests/docroot/www/expire/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/docroot/www/expire/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/docroot/www/expire/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -213,20 +255,17 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) +$(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: tags: TAGS TAGS: @@ -235,29 +274,32 @@ CTAGS: distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -275,16 +317,22 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -295,7 +343,7 @@ clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool +distclean-am: clean-am distclean-generic dvi: dvi-am @@ -303,18 +351,38 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: install-data-am: +install-dvi: install-dvi-am + +install-dvi-am: + install-exec-am: +install-html: install-html-am + +install-html-am: + install-info: install-info-am +install-info-am: + install-man: +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-am @@ -333,17 +401,21 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am +uninstall-am: + +.MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-info-am + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/tests/docroot/www/get-env.php b/tests/docroot/www/get-env.php index 15ac94f..cd7fa04 100644 --- a/tests/docroot/www/get-env.php +++ b/tests/docroot/www/get-env.php @@ -1,3 +1,4 @@ -<?php - print $_ENV[$_GET["env"]]; +<?php + $env = $_GET["env"]; + print isset($_ENV[$env]) ? $_ENV[$env] : ''; ?> diff --git a/tests/docroot/www/get-server-env.php b/tests/docroot/www/get-server-env.php index 17b4994..64d9312 100644 --- a/tests/docroot/www/get-server-env.php +++ b/tests/docroot/www/get-server-env.php @@ -1,3 +1,3 @@ -<?php +<?php print $_SERVER[$_GET["env"]]; ?> diff --git a/tests/docroot/www/go/Makefile.in b/tests/docroot/www/go/Makefile.in index de2af27..3e55ae6 100644 --- a/tests/docroot/www/go/Makefile.in +++ b/tests/docroot/www/go/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,15 +14,29 @@ # PARTICULAR PURPOSE. @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../../../.. +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -39,19 +54,33 @@ target_triplet = @target@ subdir = tests/docroot/www/go DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ATTR_LIB = @ATTR_LIB@ AUTOCONF = @AUTOCONF@ @@ -62,69 +91,73 @@ BZ_LIB = @BZ_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CHECK_WITH_FASTCGI_FALSE = @CHECK_WITH_FASTCGI_FALSE@ -CHECK_WITH_FASTCGI_TRUE = @CHECK_WITH_FASTCGI_TRUE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CROSS_COMPILING_FALSE = @CROSS_COMPILING_FALSE@ -CROSS_COMPILING_TRUE = @CROSS_COMPILING_TRUE@ CRYPT_LIB = @CRYPT_LIB@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DL_LIB = @DL_LIB@ -ECHO = @ECHO@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -F77 = @F77@ FAM_CFLAGS = @FAM_CFLAGS@ FAM_LIBS = @FAM_LIBS@ -FFLAGS = @FFLAGS@ +FGREP = @FGREP@ GDBM_LIB = @GDBM_LIB@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LBER_LIB = @LBER_LIB@ +LD = @LD@ LDAP_LIB = @LDAP_LIB@ LDFLAGS = @LDFLAGS@ +LIBEV_CFLAGS = @LIBEV_CFLAGS@ +LIBEV_LIBS = @LIBEV_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ -LUACONFIG = @LUACONFIG@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_LIBS = @LUA_LIBS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MEMCACHE_LIB = @MEMCACHE_LIB@ +MKDIR_P = @MKDIR_P@ MYSQL_CONFIG = @MYSQL_CONFIG@ MYSQL_INCLUDE = @MYSQL_INCLUDE@ MYSQL_LIBS = @MYSQL_LIBS@ -NO_RDYNAMIC_FALSE = @NO_RDYNAMIC_FALSE@ -NO_RDYNAMIC_TRUE = @NO_RDYNAMIC_TRUE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCRECONFIG = @PCRECONFIG@ PCRE_LIB = @PCRE_LIB@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ +SED = @SED@ SENDFILE_LIB = @SENDFILE_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -132,21 +165,18 @@ SQLITE_CFLAGS = @SQLITE_CFLAGS@ SQLITE_LIBS = @SQLITE_LIBS@ SSL_LIB = @SSL_LIB@ STRIP = @STRIP@ -U = @U@ +UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ Z_LIB = @Z_LIB@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -158,48 +188,60 @@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ EXTRA_DIST = cgi.php all: all-am .SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docroot/www/go/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu tests/docroot/www/go/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/docroot/www/go/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/docroot/www/go/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -213,20 +255,17 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) +$(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: tags: TAGS TAGS: @@ -235,29 +274,32 @@ CTAGS: distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -275,16 +317,22 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -295,7 +343,7 @@ clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool +distclean-am: clean-am distclean-generic dvi: dvi-am @@ -303,18 +351,38 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: install-data-am: +install-dvi: install-dvi-am + +install-dvi-am: + install-exec-am: +install-html: install-html-am + +install-html-am: + install-info: install-info-am +install-info-am: + install-man: +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-am @@ -333,17 +401,21 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am +uninstall-am: + +.MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-info-am + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/tests/docroot/www/go/cgi.php b/tests/docroot/www/go/cgi.php index d92e52f..f59a840 100755 --- a/tests/docroot/www/go/cgi.php +++ b/tests/docroot/www/go/cgi.php @@ -1,4 +1,4 @@ -<?php +<?php #ob_start(/*"ob_gzhandler"*/); print "12345<br />\n"; diff --git a/tests/docroot/www/indexfile/Makefile.in b/tests/docroot/www/indexfile/Makefile.in index 7812d5e..f456239 100644 --- a/tests/docroot/www/indexfile/Makefile.in +++ b/tests/docroot/www/indexfile/Makefile.in @@ -1,8 +1,9 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -13,15 +14,29 @@ # PARTICULAR PURPOSE. @SET_MAKE@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../../../.. +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -39,19 +54,33 @@ target_triplet = @target@ subdir = tests/docroot/www/indexfile DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ ATTR_LIB = @ATTR_LIB@ AUTOCONF = @AUTOCONF@ @@ -62,69 +91,73 @@ BZ_LIB = @BZ_LIB@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ -CHECK_WITH_FASTCGI_FALSE = @CHECK_WITH_FASTCGI_FALSE@ -CHECK_WITH_FASTCGI_TRUE = @CHECK_WITH_FASTCGI_TRUE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ -CROSS_COMPILING_FALSE = @CROSS_COMPILING_FALSE@ -CROSS_COMPILING_TRUE = @CROSS_COMPILING_TRUE@ CRYPT_LIB = @CRYPT_LIB@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ DL_LIB = @DL_LIB@ -ECHO = @ECHO@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ -F77 = @F77@ FAM_CFLAGS = @FAM_CFLAGS@ FAM_LIBS = @FAM_LIBS@ -FFLAGS = @FFLAGS@ +FGREP = @FGREP@ GDBM_LIB = @GDBM_LIB@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LBER_LIB = @LBER_LIB@ +LD = @LD@ LDAP_LIB = @LDAP_LIB@ LDFLAGS = @LDFLAGS@ +LIBEV_CFLAGS = @LIBEV_CFLAGS@ +LIBEV_LIBS = @LIBEV_LIBS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ -LUACONFIG = @LUACONFIG@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_LIBS = @LUA_LIBS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ MEMCACHE_LIB = @MEMCACHE_LIB@ +MKDIR_P = @MKDIR_P@ MYSQL_CONFIG = @MYSQL_CONFIG@ MYSQL_INCLUDE = @MYSQL_INCLUDE@ MYSQL_LIBS = @MYSQL_LIBS@ -NO_RDYNAMIC_FALSE = @NO_RDYNAMIC_FALSE@ -NO_RDYNAMIC_TRUE = @NO_RDYNAMIC_TRUE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PCRECONFIG = @PCRECONFIG@ PCRE_LIB = @PCRE_LIB@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ +SED = @SED@ SENDFILE_LIB = @SENDFILE_LIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ @@ -132,21 +165,18 @@ SQLITE_CFLAGS = @SQLITE_CFLAGS@ SQLITE_LIBS = @SQLITE_LIBS@ SSL_LIB = @SSL_LIB@ STRIP = @STRIP@ -U = @U@ +UUID_LIBS = @UUID_LIBS@ VERSION = @VERSION@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ Z_LIB = @Z_LIB@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_F77 = @ac_ct_F77@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ -am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -158,48 +188,60 @@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ EXTRA_DIST = index.php return-404.php rewrite.php all: all-am .SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/docroot/www/indexfile/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu tests/docroot/www/indexfile/Makefile + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/docroot/www/indexfile/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign tests/docroot/www/indexfile/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -213,20 +255,17 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) +$(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool -uninstall-info-am: tags: TAGS TAGS: @@ -235,29 +274,32 @@ CTAGS: distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @@ -275,16 +317,22 @@ install-am: all-am installcheck: installcheck-am install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -295,7 +343,7 @@ clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-libtool +distclean-am: clean-am distclean-generic dvi: dvi-am @@ -303,18 +351,38 @@ dvi-am: html: html-am +html-am: + info: info-am info-am: install-data-am: +install-dvi: install-dvi-am + +install-dvi-am: + install-exec-am: +install-html: install-html-am + +install-html-am: + install-info: install-info-am +install-info-am: + install-man: +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + installcheck-am: maintainer-clean: maintainer-clean-am @@ -333,17 +401,21 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am +uninstall-am: + +.MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-exec install-exec-am \ - install-info install-info-am install-man install-strip \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-info-am + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/tests/docroot/www/indexfile/return-404.php b/tests/docroot/www/indexfile/return-404.php index dd680cc..2adaaea 100644 --- a/tests/docroot/www/indexfile/return-404.php +++ b/tests/docroot/www/indexfile/return-404.php @@ -1,5 +1,5 @@ -<?php - header("Status: 404"); - +<?php + header("Status: 404"); + print $_SERVER["PHP_SELF"]; ?> diff --git a/tests/docroot/www/nph-status.pl b/tests/docroot/www/nph-status.pl index 602cdc7..d817c7f 100755 --- a/tests/docroot/www/nph-status.pl +++ b/tests/docroot/www/nph-status.pl @@ -1,4 +1,10 @@ -#!/usr/bin/perl +#!/usr/bin/perl -print "HTTP/1.0 30 FooBar\r\n"; +my $status = 200; + +if (defined $ENV{"QUERY_STRING"}) { + $status = $ENV{"QUERY_STRING"}; +} + +print "HTTP/1.0 ".$status." FooBar\r\n"; print "\r\n"; diff --git a/tests/docroot/www/send404.pl b/tests/docroot/www/send404.pl new file mode 100755 index 0000000..a92dfa6 --- /dev/null +++ b/tests/docroot/www/send404.pl @@ -0,0 +1,5 @@ +#!/usr/bin/perl +use CGI qw/:standard/; +print header ( -status => 404 + -type => 'text/plain' ); +print ("send404\n"); diff --git a/tests/docroot/www/sendfile.php b/tests/docroot/www/sendfile.php new file mode 100644 index 0000000..0aa8786 --- /dev/null +++ b/tests/docroot/www/sendfile.php @@ -0,0 +1,13 @@ +<?php + +function pathencode($path) { + return str_replace(',', '%2c', urlencode($path)); +} + +$val = "X-Sendfile2: " . pathencode(getcwd() . "/index.txt") . " " . $_GET["range"]; + +if ($_GET["range2"]) $val .= ", " . pathencode(getcwd() . "/index.txt") . " " . $_GET["range2"]; + +header($val); + +?>
\ No newline at end of file diff --git a/tests/fastcgi-10.conf b/tests/fastcgi-10.conf index 1300973..1fa50fb 100644 --- a/tests/fastcgi-10.conf +++ b/tests/fastcgi-10.conf @@ -1,12 +1,12 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" -server.pid-file = "@SRCDIR@/tmp/lighttpd/lighttpd.pid" +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" ## bind to port (default: 80) server.port = 2048 ## bind to localhost (default: all interfaces) server.bind = "localhost" -server.errorlog = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.error.log" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" server.name = "www.example.org" server.tag = "Apache 1.3.29" @@ -44,7 +44,7 @@ server.indexfiles = ( "index.php", "index.html", ######################## MODULE CONFIG ############################ -accesslog.filename = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.access.log" +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" mimetype.assign = ( ".png" => "image/png", ".jpg" => "image/jpeg", @@ -62,7 +62,7 @@ mimetype.assign = ( ".png" => "image/png", ".c" => "text/plain", ".conf" => "text/plain" ) -compress.cache-dir = "@SRCDIR@/tmp/lighttpd/cache/compress/" +compress.cache-dir = env.SRCDIR + "/tmp/lighttpd/cache/compress/" compress.filetype = ("text/plain", "text/html") fastcgi.debug = 0 @@ -82,10 +82,10 @@ cgi.assign = ( ".pl" => "/usr/bin/perl", ssl.engine = "disable" -ssl.pemfile = "server.pem" +# ssl.pemfile = "server.pem" auth.backend = "plain" -auth.backend.plain.userfile = "@SRCDIR@/tmp/lighttpd/lighttpd.user" +auth.backend.plain.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.user" auth.backend.plain.groupfile = "lighttpd.group" auth.backend.ldap.hostname = "localhost" @@ -128,11 +128,11 @@ status.status-url = "/server-status" status.config-url = "/server-config" $HTTP["host"] == "vvv.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" } $HTTP["host"] == "zzz.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "zzz.example.org" } diff --git a/tests/fastcgi-13.conf b/tests/fastcgi-13.conf index f351208..499a7f5 100644 --- a/tests/fastcgi-13.conf +++ b/tests/fastcgi-13.conf @@ -1,5 +1,4 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" -server.pid-file = "@SRCDIR@/tmp/lighttpd/lighttpd.pid" +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" debug.log-request-header = "enable" debug.log-response-header = "enable" @@ -10,7 +9,8 @@ server.port = 2048 ## bind to localhost (default: all interfaces) server.bind = "localhost" -server.errorlog = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.error.log" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" server.name = "www.example.org" server.tag = "Apache 1.3.29" @@ -59,7 +59,7 @@ server.indexfiles = ( "index.php", "index.html", ######################## MODULE CONFIG ############################ -accesslog.filename = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.access.log" +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" mimetype.assign = ( ".png" => "image/png", ".jpg" => "image/jpeg", @@ -77,7 +77,7 @@ mimetype.assign = ( ".png" => "image/png", ".c" => "text/plain", ".conf" => "text/plain" ) -compress.cache-dir = "@SRCDIR@/tmp/lighttpd/cache/compress/" +compress.cache-dir = env.SRCDIR + "/tmp/lighttpd/cache/compress/" compress.filetype = ("text/plain", "text/html") fastcgi.debug = 0 @@ -85,7 +85,7 @@ fastcgi.server = ( ".php" => ( "grisu" => ( "host" => "127.0.0.1", "port" => 1048, - "bin-path" => "/home/jan/Documents/php-5.1.0/sapi/cgi/php -c /usr/local/lib/php.ini", + "bin-path" => env.PHP, "bin-copy-environment" => ( "PATH", "SHELL", "USER" ), ) ) @@ -99,10 +99,10 @@ cgi.assign = ( ".pl" => "/usr/bin/perl", ssl.engine = "disable" -ssl.pemfile = "server.pem" +# ssl.pemfile = "server.pem" auth.backend = "plain" -auth.backend.plain.userfile = "@SRCDIR@/tmp/lighttpd/lighttpd.user" +auth.backend.plain.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.user" auth.backend.plain.groupfile = "lighttpd.group" auth.backend.ldap.hostname = "localhost" @@ -145,11 +145,11 @@ status.status-url = "/server-status" status.config-url = "/server-config" $HTTP["host"] == "vvv.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" } $HTTP["host"] == "zzz.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "zzz.example.org" } diff --git a/tests/fastcgi-auth.conf b/tests/fastcgi-auth.conf index c55700c..47a9268 100644 --- a/tests/fastcgi-auth.conf +++ b/tests/fastcgi-auth.conf @@ -1,5 +1,4 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" -server.pid-file = "@SRCDIR@/tmp/lighttpd/lighttpd.pid" +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" debug.log-request-header = "enable" debug.log-response-header = "enable" @@ -12,11 +11,12 @@ server.port = 2048 ## bind to localhost (default: all interfaces) server.bind = "localhost" -server.errorlog = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.error.log" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" server.name = "www.example.org" server.tag = "Apache 1.3.29" -## +## ## Format: <errorfile-prefix><status>.html ## -> ..../status-404.html for 'File not found' #server.errorfile-prefix = "/home/weigon/projects/lighttpd/doc/status-" @@ -27,23 +27,23 @@ server.dir-listing = "enable" #server.event-handler = "linux-rtsig" #server.modules.path = "" -server.modules = ( - "mod_rewrite", - "mod_access", +server.modules = ( + "mod_rewrite", + "mod_access", "mod_auth", # "mod_httptls", - "mod_status", + "mod_status", "mod_expire", # "mod_simple_vhost", - "mod_redirect", + "mod_redirect", # "mod_evhost", # "mod_localizer", "mod_fastcgi", "mod_cgi", "mod_compress", - "mod_accesslog" ) + "mod_accesslog" ) -server.indexfiles = ( "index.php", "index.html", +server.indexfiles = ( "index.php", "index.html", "index.htm", "default.htm" ) #,-- only root can use these options @@ -55,15 +55,15 @@ server.indexfiles = ( "index.php", "index.html", #|# change uid to <uid> (default: don't care) #| server.groupid wwwrun #| -#`-- +#`-- ######################## MODULE CONFIG ############################ -accesslog.filename = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.access.log" +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" -mimetype.assign = ( ".png" => "image/png", +mimetype.assign = ( ".png" => "image/png", ".jpg" => "image/jpeg", ".jpeg" => "image/jpeg", ".gif" => "image/gif", @@ -79,56 +79,57 @@ mimetype.assign = ( ".png" => "image/png", ".c" => "text/plain", ".conf" => "text/plain" ) -compress.cache-dir = "@SRCDIR@/tmp/lighttpd/cache/compress/" +compress.cache-dir = env.SRCDIR + "/tmp/lighttpd/cache/compress/" compress.filetype = ("text/plain", "text/html") fastcgi.debug = 0 -fastcgi.server = ( "/" => ( - "grisu" => ( +fastcgi.server = ( "/" => ( + "grisu" => ( "host" => "127.0.0.1", "port" => 20000, - "bin-path" => "@SRCDIR@/fcgi-auth", + "bin-path" => env.SRCDIR + "/fcgi-auth", "mode" => "authorizer", - "docroot" => "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/", - + "docroot" => env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/", + "check-local" => "disable", + ) ) ) - + cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl", ".py" => "/usr/bin/python" ) - + ssl.engine = "disable" -ssl.pemfile = "server.pem" +# ssl.pemfile = "server.pem" auth.backend = "plain" -auth.backend.plain.userfile = "@SRCDIR@/tmp/lighttpd/lighttpd.user" +auth.backend.plain.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.user" auth.backend.plain.groupfile = "lighttpd.group" auth.backend.ldap.hostname = "localhost" auth.backend.ldap.base-dn = "dc=my-domain,dc=com" auth.backend.ldap.filter = "(uid=$)" -auth.require = ( "/server-status" => - ( +auth.require = ( "/server-status" => + ( "method" => "digest", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "host=192.168.2.10") "require" => "group=www|user=jan|host=192.168.2.10" ), - "/auth.php" => - ( + "/auth.php" => + ( "method" => "basic", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "host=192.168.2.10") "require" => "user=jan" ), - "/server-config" => - ( + "/server-config" => + ( "method" => "basic", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "user=weigon", "host=192.168.2.10") @@ -149,11 +150,11 @@ status.status-url = "/server-status" status.config-url = "/server-config" $HTTP["host"] == "vvv.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" } $HTTP["host"] == "zzz.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "zzz.example.org" } diff --git a/tests/fastcgi-responder.conf b/tests/fastcgi-responder.conf index 7ced64b..0f6c1dc 100644 --- a/tests/fastcgi-responder.conf +++ b/tests/fastcgi-responder.conf @@ -1,5 +1,4 @@ -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" -server.pid-file = "@SRCDIR@/tmp/lighttpd/lighttpd.pid" +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" #debug.log-request-header = "enable" #debug.log-response-header = "enable" @@ -15,11 +14,12 @@ server.port = 2048 ## bind to localhost (default: all interfaces) server.bind = "localhost" -server.errorlog = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.error.log" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" server.name = "www.example.org" server.tag = "Apache 1.3.29" -## +## ## Format: <errorfile-prefix><status>.html ## -> ..../status-404.html for 'File not found' #server.errorfile-prefix = "/home/weigon/projects/lighttpd/doc/status-" @@ -30,23 +30,23 @@ server.dir-listing = "enable" #server.event-handler = "linux-rtsig" #server.modules.path = "" -server.modules = ( - "mod_rewrite", - "mod_access", +server.modules = ( + "mod_rewrite", + "mod_access", "mod_auth", # "mod_httptls", - "mod_status", + "mod_status", "mod_expire", # "mod_simple_vhost", - "mod_redirect", + "mod_redirect", # "mod_evhost", # "mod_localizer", "mod_fastcgi", "mod_cgi", "mod_compress", - "mod_accesslog" ) + "mod_accesslog" ) -server.indexfiles = ( "index.php", "index.html", +server.indexfiles = ( "index.php", "index.html", "index.htm", "default.htm" ) #,-- only root can use these options @@ -58,15 +58,15 @@ server.indexfiles = ( "index.php", "index.html", #|# change uid to <uid> (default: don't care) #| server.groupid wwwrun #| -#`-- +#`-- ######################## MODULE CONFIG ############################ -accesslog.filename = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.access.log" +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" -mimetype.assign = ( ".png" => "image/png", +mimetype.assign = ( ".png" => "image/png", ".jpg" => "image/jpeg", ".jpeg" => "image/jpeg", ".gif" => "image/gif", @@ -82,56 +82,56 @@ mimetype.assign = ( ".png" => "image/png", ".c" => "text/plain", ".conf" => "text/plain" ) -compress.cache-dir = "@SRCDIR@/tmp/lighttpd/cache/compress/" +compress.cache-dir = env.SRCDIR + "/tmp/lighttpd/cache/compress/" compress.filetype = ("text/plain", "text/html") fastcgi.debug = 0 -fastcgi.server = ( ".fcgi" => ( - "grisu" => ( +fastcgi.server = ( ".fcgi" => ( + "grisu" => ( "host" => "127.0.0.1", "port" => 10000, - "bin-path" => "@SRCDIR@/fcgi-responder", + "bin-path" => env.SRCDIR + "/fcgi-responder", "check-local" => "disable", "max-procs" => 1, "min-procs" => 1 ) ) ) - + cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl", ".py" => "/usr/bin/python" ) - + ssl.engine = "disable" -ssl.pemfile = "server.pem" +# ssl.pemfile = "server.pem" auth.backend = "plain" -auth.backend.plain.userfile = "@SRCDIR@/tmp/lighttpd/lighttpd.user" +auth.backend.plain.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.user" auth.backend.plain.groupfile = "lighttpd.group" auth.backend.ldap.hostname = "localhost" auth.backend.ldap.base-dn = "dc=my-domain,dc=com" auth.backend.ldap.filter = "(uid=$)" -auth.require = ( "/server-status" => - ( +auth.require = ( "/server-status" => + ( "method" => "digest", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "host=192.168.2.10") "require" => "group=www|user=jan|host=192.168.2.10" ), - "/auth.php" => - ( + "/auth.php" => + ( "method" => "basic", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "host=192.168.2.10") "require" => "user=jan" ), - "/server-config" => - ( + "/server-config" => + ( "method" => "basic", "realm" => "download archiv", # "require" => ("group=www", "user=jan", "user=weigon", "host=192.168.2.10") @@ -152,11 +152,23 @@ status.status-url = "/server-status" status.config-url = "/server-config" $HTTP["host"] == "vvv.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" } $HTTP["host"] == "zzz.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "zzz.example.org" } +$HTTP["host"] == "wsgi.example.org" { + fastcgi.server = ( + "/" => + ( ( + "host" => "127.0.0.1", "port" => 10000, + "fix-root-scriptname" => "enable", + "check-local" => "disable", + "bin-path" => env.SRCDIR + "/fcgi-responder", + "max-procs" => 1, + ) ), + ) +} diff --git a/tests/fcgi-auth.c b/tests/fcgi-auth.c index ddecddc..d340b2e 100644 --- a/tests/fcgi-auth.c +++ b/tests/fcgi-auth.c @@ -1,25 +1,32 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#ifdef HAVE_FASTCGI_FASTCGI_H +#include <fastcgi/fcgi_stdio.h> +#else #include <fcgi_stdio.h> +#endif #include <stdlib.h> #include <unistd.h> #include <string.h> -int main () { +int main (void) { char* p; - - while (FCGI_Accept() >= 0) { + + while (FCGI_Accept() >= 0) { /* wait for fastcgi authorizer request */ - + printf("Content-type: text/html\r\n"); - + if (((p = getenv("QUERY_STRING")) == NULL) || strcmp(p, "ok") != 0) { printf("Status: 403 Forbidden\r\n\r\n"); - } else { + } else { printf("\r\n"); /* default Status is 200 - allow access */ } - - printf("foobar\r\n"); + + printf("foobar\r\n"); } return 0; diff --git a/tests/fcgi-responder.c b/tests/fcgi-responder.c index 7fbaf28..de04d0e 100644 --- a/tests/fcgi-responder.c +++ b/tests/fcgi-responder.c @@ -1,15 +1,22 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#ifdef HAVE_FASTCGI_FASTCGI_H +#include <fastcgi/fcgi_stdio.h> +#else #include <fcgi_stdio.h> +#endif #include <stdlib.h> #include <unistd.h> #include <string.h> -int main () { +int main (void) { int num_requests = 2; - + while (num_requests > 0 && FCGI_Accept() >= 0) { char* p; - + if (NULL != (p = getenv("QUERY_STRING"))) { if (0 == strcmp(p, "lf")) { printf("Status: 200 OK\n\n"); @@ -32,9 +39,15 @@ int main () { } else { printf("Status: 500 Internal Foo\r\n\r\n"); } - - printf("test123"); + + if (0 == strcmp(p, "path_info")) { + printf("%s", getenv("PATH_INFO")); + } else if (0 == strcmp(p, "script_name")) { + printf("%s", getenv("SCRIPT_NAME")); + } else { + printf("test123"); + } } - + return 0; } diff --git a/tests/lighttpd.conf b/tests/lighttpd.conf index 8d38c09..a4b5cd8 100644 --- a/tests/lighttpd.conf +++ b/tests/lighttpd.conf @@ -1,14 +1,19 @@ debug.log-request-handling = "enable" +debug.log-request-header = "enable" +debug.log-response-header = "enable" debug.log-condition-handling = "enable" -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" -server.pid-file = "@SRCDIR@/tmp/lighttpd/lighttpd.pid" +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" + +## 64 Mbyte ... nice limit +server.max-request-size = 65000 ## bind to port (default: 80) server.port = 2048 ## bind to localhost (default: all interfaces) server.bind = "localhost" -server.errorlog = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.error.log" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" server.name = "www.example.org" server.tag = "Apache 1.3.29" @@ -18,17 +23,17 @@ server.dir-listing = "enable" #server.event-handler = "linux-rtsig" #server.modules.path = "" -server.modules = ( +server.modules = ( "mod_rewrite", "mod_setenv", "mod_secdownload", - "mod_access", + "mod_access", "mod_auth", # "mod_httptls", - "mod_status", + "mod_status", "mod_expire", "mod_simple_vhost", - "mod_redirect", + "mod_redirect", # "mod_evhost", # "mod_localizer", "mod_fastcgi", @@ -36,9 +41,9 @@ server.modules = ( "mod_compress", "mod_userdir", "mod_ssi", - "mod_accesslog" ) + "mod_accesslog" ) -server.indexfiles = ( "index.php", "index.html", +server.indexfiles = ( "index.php", "index.html", "index.htm", "default.htm" ) @@ -46,9 +51,9 @@ server.indexfiles = ( "index.php", "index.html", ssi.extension = ( ".shtml" ) -accesslog.filename = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.access.log" +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" -mimetype.assign = ( ".png" => "image/png", +mimetype.assign = ( ".png" => "image/png", ".jpg" => "image/jpeg", ".jpeg" => "image/jpeg", ".gif" => "image/gif", @@ -65,7 +70,7 @@ mimetype.assign = ( ".png" => "image/png", ".conf" => "text/plain" ) $HTTP["host"] == "cache.example.org" { - compress.cache-dir = "@SRCDIR@/tmp/lighttpd/cache/compress/" + compress.cache-dir = env.SRCDIR + "/tmp/lighttpd/cache/compress/" } compress.filetype = ("text/plain", "text/html") @@ -78,39 +83,39 @@ $HTTP["url"] =~ "\.pdf$" { } fastcgi.debug = 0 -fastcgi.server = ( ".php" => ( ( "host" => "127.0.0.1", "port" => 1026, "broken-scriptfilename" => "enable" ) ), +fastcgi.server = ( ".php" => ( ( "host" => "127.0.0.1", "port" => 1026, "broken-scriptfilename" => "enable", "allow-x-send-file" => "enable" ) ), "/prefix.fcgi" => ( ( "host" => "127.0.0.1", "port" => 1026, "check-local" => "disable", "broken-scriptfilename" => "enable" ) ) ) - + cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl", ".py" => "/usr/bin/python" ) - + userdir.include-user = ( "jan" ) userdir.path = "/" ssl.engine = "disable" -ssl.pemfile = "server.pem" +# ssl.pemfile = "server.pem" $HTTP["host"] == "auth-htpasswd.example.org" { auth.backend = "htpasswd" } auth.backend = "plain" -auth.backend.plain.userfile = "@SRCDIR@/tmp/lighttpd/lighttpd.user" +auth.backend.plain.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.user" -auth.backend.htpasswd.userfile = "@SRCDIR@/tmp/lighttpd/lighttpd.htpasswd" +auth.backend.htpasswd.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.htpasswd" -auth.require = ( "/server-status" => - ( +auth.require = ( "/server-status" => + ( "method" => "digest", "realm" => "download archiv", "require" => "group=www|user=jan|host=192.168.2.10" ), - "/server-config" => - ( + "/server-config" => + ( "method" => "basic", "realm" => "download archiv", "require" => "valid-user" @@ -122,7 +127,9 @@ url.access-deny = ( "~", ".inc") url.rewrite = ( "^/rewrite/foo($|\?.+)" => "/indexfile/rewrite.php$1", "^/rewrite/bar(?:$|\?(.+))" => "/indexfile/rewrite.php?bar&$1" ) -expire.url = ( "/expire/access" => "access 2 hours", +url.rewrite-if-not-file = ( "^(/rewrite/[^?]*)(?:\?(.*))?$" => "/indexfile/rewrite.php?file=$1&$2" ) + +expire.url = ( "/expire/access" => "access 2 hours", "/expire/modification" => "access plus 1 seconds 2 minutes") #cache.cache-dir = "/home/weigon/wwwroot/cache/" @@ -132,29 +139,55 @@ status.status-url = "/server-status" status.config-url = "/server-config" $HTTP["host"] == "vvv.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" secdownload.secret = "verysecret" - secdownload.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + secdownload.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" secdownload.uri-prefix = "/sec/" secdownload.timeout = 120 } $HTTP["host"] == "zzz.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "zzz.example.org" + static-file.disable-pathinfo = "enable" +} + +$HTTP["host"] == "symlink.example.org" { + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" + server.name = "symlink.example.org" + server.follow-symlink = "enable" +} + +$HTTP["host"] == "nosymlink.example.org" { + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" + server.name = "symlink.example.org" + server.follow-symlink = "disable" } $HTTP["host"] == "no-simple.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/123.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/123.example.org/pages/" server.name = "zzz.example.org" } $HTTP["host"] !~ "(no-simple\.example\.org)" { simple-vhost.document-root = "pages" - simple-vhost.server-root = "@SRCDIR@/tmp/lighttpd/servers/" + simple-vhost.server-root = env.SRCDIR + "/tmp/lighttpd/servers/" simple-vhost.default-host = "www.example.org" } +$HTTP["host"] == "auth.example.org" { + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" + server.name = "auth.example.org" + auth.backend = "htpasswd" + auth.require = ( "" => + ( + "method" => "basic", + "realm" => "download archiv", + "require" => "valid-user" + ) + ) +} + $HTTP["host"] =~ "(vvv).example.org" { url.redirect = ( "^/redirect/$" => "http://localhost:2048/" ) } @@ -199,3 +232,7 @@ $HTTP["cookie"] =~ "empty-ref" { } +$HTTP["host"] == "etag.example.org" { + static-file.etags = "disable" + compress.filetype = () +} diff --git a/tests/lowercase.conf b/tests/lowercase.conf new file mode 100644 index 0000000..b66980d --- /dev/null +++ b/tests/lowercase.conf @@ -0,0 +1,80 @@ +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" + +## bind to port (default: 80) +server.port = 2048 + +## bind to localhost (default: all interfaces) +server.bind = "localhost" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" + +server.force-lowercase-filenames = "enable" + +server.dir-listing = "enable" + +server.modules = ( + "mod_rewrite", + "mod_setenv", + "mod_secdownload", + "mod_access", + "mod_auth", + "mod_status", + "mod_expire", + "mod_redirect", + "mod_fastcgi", + "mod_cgi" ) + +server.indexfiles = ( "index.php", "index.html", + "index.htm", "default.htm" ) + + +######################## MODULE CONFIG ############################ + +mimetype.assign = ( ".png" => "image/png", + ".jpg" => "image/jpeg", + ".jpeg" => "image/jpeg", + ".gif" => "image/gif", + ".html" => "text/html", + ".htm" => "text/html", + ".pdf" => "application/pdf", + ".swf" => "application/x-shockwave-flash", + ".spl" => "application/futuresplash", + ".txt" => "text/plain", + ".tar.gz" => "application/x-tgz", + ".tgz" => "application/x-tgz", + ".gz" => "application/x-gzip", + ".c" => "text/plain", + ".conf" => "text/plain" ) + +fastcgi.debug = 0 +fastcgi.server = ( ".php" => ( ( "host" => "127.0.0.1", "port" => 1026, "broken-scriptfilename" => "enable" ) ), + "/prefix.fcgi" => ( ( "host" => "127.0.0.1", "port" => 1026, "check-local" => "disable", "broken-scriptfilename" => "enable" ) ) + ) + + +cgi.assign = ( ".pl" => "/usr/bin/perl", + ".cgi" => "/usr/bin/perl", + ".py" => "/usr/bin/python" ) + +auth.backend = "plain" +auth.backend.plain.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.user" + +auth.backend.htpasswd.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.htpasswd" + +$HTTP["host"] == "lowercase-auth" { + auth.require = ( "/image.jpg" => + ( + "method" => "digest", + "realm" => "download archiv", + "require" => "valid-user" + ) + ) +} + +$HTTP["host"] == "lowercase-deny" { + url.access-deny = ( ".jpg") +} + +$HTTP["host"] == "lowercase-exclude" { + static-file.exclude-extensions = ( ".jpg" ) +} diff --git a/tests/lowercase.t b/tests/lowercase.t new file mode 100755 index 0000000..f6f6f2c --- /dev/null +++ b/tests/lowercase.t @@ -0,0 +1,94 @@ +#!/usr/bin/env perl +BEGIN { + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; +} + +use strict; +use IO::Socket; +use Test::More tests => 10; +use LightyTest; + +my $tf = LightyTest->new(); +my $t; + +$tf->{CONFIGFILE} = 'lowercase.conf'; + +ok($tf->start_proc == 0, "Starting lighttpd") or die(); + +## check if lower-casing works + +$t->{REQUEST} = ( <<EOF +GET /image.JPG HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'uppercase access'); + +$t->{REQUEST} = ( <<EOF +GET /image.jpg HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'lowercase access'); + +## check that mod-auth works + +$t->{REQUEST} = ( <<EOF +GET /image.JPG HTTP/1.0 +Host: lowercase-auth +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 401 } ]; +ok($tf->handle_http($t) == 0, 'uppercase access'); + +$t->{REQUEST} = ( <<EOF +GET /image.jpg HTTP/1.0 +Host: lowercase-auth +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 401 } ]; +ok($tf->handle_http($t) == 0, 'lowercase access'); + + +## check that mod-staticfile exclude works +$t->{REQUEST} = ( <<EOF +GET /image.JPG HTTP/1.0 +Host: lowercase-exclude +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; +ok($tf->handle_http($t) == 0, 'upper case access to staticfile.exclude-extension'); + +$t->{REQUEST} = ( <<EOF +GET /image.jpg HTTP/1.0 +Host: lowercase-exclude +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; +ok($tf->handle_http($t) == 0, 'lowercase access'); + + +## check that mod-access exclude works +$t->{REQUEST} = ( <<EOF +GET /image.JPG HTTP/1.0 +Host: lowercase-deny +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; +ok($tf->handle_http($t) == 0, 'uppercase access to url.access-deny protected location'); + +$t->{REQUEST} = ( <<EOF +GET /image.jpg HTTP/1.0 +Host: lowercase-deny +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; +ok($tf->handle_http($t) == 0, 'lowercase access'); + + + +ok($tf->stop_proc == 0, "Stopping lighttpd"); + diff --git a/tests/mod-access.t b/tests/mod-access.t index b32dfe0..58c01ac 100755 --- a/tests/mod-access.t +++ b/tests/mod-access.t @@ -1,19 +1,19 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; use IO::Socket; -use Test::More tests => 3; +use Test::More tests => 4; use LightyTest; my $tf = LightyTest->new(); my $t; - + ok($tf->start_proc == 0, "Starting lighttpd") or die(); $t->{REQUEST} = ( <<EOF @@ -23,5 +23,12 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; ok($tf->handle_http($t) == 0, 'forbid access to ...~'); +$t->{REQUEST} = ( <<EOF +GET /index.html~/ HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; +ok($tf->handle_http($t) == 0, '#1230 - forbid access to ...~ - trailing slash'); + ok($tf->stop_proc == 0, "Stopping lighttpd"); diff --git a/tests/mod-auth.t b/tests/mod-auth.t index f9017b2..89ead9d 100755 --- a/tests/mod-auth.t +++ b/tests/mod-auth.t @@ -1,19 +1,19 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; use IO::Socket; -use Test::More tests => 9; +use Test::More tests => 15; use LightyTest; my $tf = LightyTest->new(); my $t; - + ok($tf->start_proc == 0, "Starting lighttpd") or die(); $t->{REQUEST} = ( <<EOF @@ -25,6 +25,14 @@ ok($tf->handle_http($t) == 0, 'Missing Auth-token'); $t->{REQUEST} = ( <<EOF GET /server-status HTTP/1.0 +Authorization: Basic \x80mFuOmphb +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 401 } ]; +ok($tf->handle_http($t) == 0, 'Basic-Auth: Invalid base64 Auth-token'); + +$t->{REQUEST} = ( <<EOF +GET /server-status HTTP/1.0 Authorization: Basic amFuOmphb EOF ); @@ -48,6 +56,16 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; ok($tf->handle_http($t) == 0, 'Basic-Auth: Valid Auth-token - htpasswd (des)'); +$t->{REQUEST} = ( <<EOF +GET /server-config HTTP/1.0 +Host: auth-htpasswd.example.org +Authorization: basic ZGVzOmRlcw== +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'Basic-Auth: Valid Auth-token - htpasswd (des) (lowercase)'); + + SKIP: { skip "no md5 for crypt under cygwin", 1 if $^O eq 'cygwin'; $t->{REQUEST} = ( <<EOF @@ -79,6 +97,58 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 401 } ]; ok($tf->handle_http($t) == 0, 'Digest-Auth: missing qop, no crash'); +## this should not crash +$t->{REQUEST} = ( <<EOF +GET /server-status HTTP/1.0 +User-Agent: Wget/1.9.1 +Authorization: Digest username="jan", realm="jan", + nonce="b1d12348b4620437c43dd61c50ae4639", + uri="/MJ-BONG.xm.mpc", qop=auth, noncecount=00000001", + cnonce="036FCA5B86F7E7C4965C7F9B8FE714B7", + response="29B32C2953C763C6D033C8A49983B87E" +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 400 } ]; +ok($tf->handle_http($t) == 0, 'Digest-Auth: missing nc (noncecount instead), no crash'); + +$t->{REQUEST} = ( <<EOF +GET /server-status HTTP/1.0 +Authorization: Basic = +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 401 } ]; +ok($tf->handle_http($t) == 0, 'Basic-Auth: Invalid Base64'); + + +$t->{REQUEST} = ( <<EOF +GET /server-status HTTP/1.0 +User-Agent: Wget/1.9.1 +Authorization: Digest username="jan", realm="jan", + nonce="b1d12348b4620437c43dd61c50ae4639", algorithm="md5-sess", + uri="/MJ-BONG.xm.mpc", qop=auth, noncecount=00000001", + cnonce="036FCA5B86F7E7C4965C7F9B8FE714B7", + nc="asd", + response="29B32C2953C763C6D033C8A49983B87E" +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 401 } ]; +ok($tf->handle_http($t) == 0, 'Digest-Auth: md5-sess + missing cnonce'); + +$t->{REQUEST} = ( <<EOF +GET /server-status HTTP/1.0 +User-Agent: Wget/1.9.1 +Authorization: Digest username="jan", realm="jan", + nonce="b1d12348b4620437c43dd61c50ae4639", algorithm="md5-sess", + uri="/MJ-BONG.xm.mpc", qop=auth, noncecount=00000001", + cnonce="036FCA5B86F7E7C4965C7F9B8FE714B7", + nc="asd", + response="29B32C2953C763C6D033C8A49983B87E" +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 401 } ]; +ok($tf->handle_http($t) == 0, 'Digest-Auth: trailing WS'); + + ok($tf->stop_proc == 0, "Stopping lighttpd"); diff --git a/tests/mod-cgi.t b/tests/mod-cgi.t index b205d8c..24777ca 100755 --- a/tests/mod-cgi.t +++ b/tests/mod-cgi.t @@ -1,19 +1,19 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; use IO::Socket; -use Test::More tests => 15; +use Test::More tests => 18; use LightyTest; my $tf = LightyTest->new(); my $t; - + ok($tf->start_proc == 0, "Starting lighttpd") or die(); # mod-cgi @@ -40,11 +40,25 @@ $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP- ok($tf->handle_http($t) == 0, 'perl via cgi + pathinfo'); $t->{REQUEST} = ( <<EOF -GET /nph-status.pl HTTP/1.0 +GET /nph-status.pl?30 HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'NPH + perl, invalid status-code (#14)'); + +$t->{REQUEST} = ( <<EOF +GET /nph-status.pl?304 HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 304 } ]; +ok($tf->handle_http($t) == 0, 'NPH + perl, setting status-code (#1125)'); + +$t->{REQUEST} = ( <<EOF +GET /nph-status.pl?200 HTTP/1.0 EOF ); $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; -ok($tf->handle_http($t) == 0, 'NPH + perl, Bug #14'); +ok($tf->handle_http($t) == 0, 'NPH + perl, setting status-code'); $t->{REQUEST} = ( <<EOF GET /get-header.pl?GATEWAY_INTERFACE HTTP/1.0 @@ -116,5 +130,13 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200, '+Content-Length' => '' } ]; ok($tf->handle_http($t) == 0, 'cgi-env: HTTP_HOST'); +# broken header crash +$t->{REQUEST} = ( <<EOF +GET /crlfcrash.pl HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 302, 'Location' => 'http://www.example.org/' } ]; +ok($tf->handle_http($t) == 0, 'broken header via perl cgi'); + ok($tf->stop_proc == 0, "Stopping lighttpd"); diff --git a/tests/mod-compress.conf b/tests/mod-compress.conf new file mode 100644 index 0000000..b7c3f2c --- /dev/null +++ b/tests/mod-compress.conf @@ -0,0 +1,33 @@ +debug.log-request-handling = "enable" +debug.log-response-header = "disable" +debug.log-request-header = "disable" + +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" +server.pid-file = env.SRCDIR + "/tmp/lighttpd/lighttpd.pid" + +## bind to port (default: 80) +server.port = 2048 + +## bind to localhost (default: all interfaces) +server.bind = "localhost" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" +server.name = "www.example.org" + +server.modules = ( + "mod_compress" +) + +######################## MODULE CONFIG ############################ + +mimetype.assign = ( + ".html" => "text/html", + ".txt" => "text/plain; charset=utf-8", +) + +$HTTP["host"] == "cache.example.org" { + compress.cache-dir = env.SRCDIR + "/tmp/lighttpd/cache/compress/" +} +compress.filetype = ("text/plain", "text/html") + +compress.allowed-encodings = ( "gzip", "deflate" ) diff --git a/tests/mod-compress.t b/tests/mod-compress.t index 3f1462a..966f613 100755 --- a/tests/mod-compress.t +++ b/tests/mod-compress.t @@ -1,19 +1,21 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; use IO::Socket; -use Test::More tests => 9; +use Test::More tests => 11; use LightyTest; my $tf = LightyTest->new(); my $t; - + +$tf->{CONFIGFILE} = 'mod-compress.conf'; + ok($tf->start_proc == 0, "Starting lighttpd") or die(); $t->{REQUEST} = ( <<EOF @@ -74,7 +76,28 @@ GET /index.txt HTTP/1.0 Accept-Encoding: gzip, deflate EOF ); -$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, '+Vary' => '', '+Content-Encoding' => '', 'Content-Type' => "text/plain" } ]; +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, '+Vary' => '', '+Content-Encoding' => '', 'Content-Type' => "text/plain; charset=utf-8" } ]; ok($tf->handle_http($t) == 0, 'Content-Type is from the original file'); +$t->{REQUEST} = ( <<EOF +GET /index.txt HTTP/1.0 +Accept-encoding: +X-Accept-encoding: x-i2p-gzip;q=1.0, identity;q=0.5, deflate;q=0, gzip;q=0, *;q=0 +User-Agent: MYOB/6.66 (AN/ON) +Connection: close +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, '+Vary' => '', 'Content-Type' => "text/plain; charset=utf-8" } ]; +ok($tf->handle_http($t) == 0, 'Empty Accept-Encoding'); + +$t->{REQUEST} = ( <<EOF +GET /index.txt HTTP/1.0 +Accept-Encoding: bzip2, gzip, deflate +Host: cache.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, '+Vary' => '', 'Content-Encoding' => 'gzip', 'Content-Type' => "text/plain; charset=utf-8" } ]; +ok($tf->handle_http($t) == 0, 'bzip2 requested but disabled'); + + ok($tf->stop_proc == 0, "Stopping lighttpd"); diff --git a/tests/mod-fastcgi.t b/tests/mod-fastcgi.t index d3ea4a8..691bce2 100755 --- a/tests/mod-fastcgi.t +++ b/tests/mod-fastcgi.t @@ -1,23 +1,33 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; -use Test::More tests => 45; +use Test::More tests => 58; use LightyTest; my $tf = LightyTest->new(); my $t; +my $php_child = -1; + +my $phpbin = (defined $ENV{'PHP'} ? $ENV{'PHP'} : '/usr/bin/php-cgi'); +$ENV{'PHP'} = $phpbin; SKIP: { - skip "no PHP running on port 1026", 28 unless $tf->listening_on(1026); + skip "PHP already running on port 1026", 1 if $tf->listening_on(1026); + skip "no php binary found", 1 unless -x $phpbin; + ok(-1 != ($php_child = $tf->spawnfcgi($phpbin, 1026)), "Spawning php"); +} - ok($tf->start_proc == 0, "Starting lighttpd") or die(); +SKIP: { + skip "no PHP running on port 1026", 35 unless $tf->listening_on(1026); + + ok($tf->start_proc == 0, "Starting lighttpd") or goto cleanup; $t->{REQUEST} = ( <<EOF GET /phpinfo.php HTTP/1.0 @@ -52,6 +62,14 @@ EOF ok($tf->handle_http($t) == 0, 'Status + Location via FastCGI'); $t->{REQUEST} = ( <<EOF +GET /redirect.php/ HTTP/1.0 +Host: www.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 302, 'Location' => 'http://www.example.org:2048/' } ]; + ok($tf->handle_http($t) == 0, 'Trailing slash as path-info (#1989: workaround broken operating systems)'); + + $t->{REQUEST} = ( <<EOF GET /get-server-env.php?env=PHP_SELF HTTP/1.0 Host: www.example.org EOF @@ -60,12 +78,12 @@ EOF ok($tf->handle_http($t) == 0, '$_SERVER["PHP_SELF"]'); $t->{REQUEST} = ( <<EOF -GET /get-server-env.php/foo?env=PHP_SELF HTTP/1.0 +GET /get-server-env.php/foo?env=SCRIPT_NAME HTTP/1.0 Host: www.example.org EOF ); $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => '/get-server-env.php' } ]; - ok($tf->handle_http($t) == 0, '$_SERVER["PHP_SELF"]'); + ok($tf->handle_http($t) == 0, '$_SERVER["SCRIPT_NAME"]'); $t->{REQUEST} = ( <<EOF GET /get-server-env.php/foo?env=PATH_INFO HTTP/1.0 @@ -115,6 +133,13 @@ EOF ok($tf->handle_http($t) == 0, 'PATHINFO'); $t->{REQUEST} = ( <<EOF +GET /cgi.php%20%20%20 HTTP/1.0 +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 404 } ]; + ok($tf->handle_http($t) == 0, 'No source retrieval'); + + $t->{REQUEST} = ( <<EOF GET /www/abc/def HTTP/1.0 EOF ); @@ -149,12 +174,44 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => '/foo/bar' } ]; ok($tf->handle_http($t) == 0, 'PATH_INFO, check-local off'); - + $t->{REQUEST} = ( <<EOF +GET /sendfile.php?range=0- HTTP/1.0 +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'Content-Length' => 4348 } ]; + ok($tf->handle_http($t) == 0, 'X-Sendfile2'); + + $t->{REQUEST} = ( <<EOF +GET /sendfile.php?range=0-4&range2=5- HTTP/1.0 +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'Content-Length' => 4348 } ]; + ok($tf->handle_http($t) == 0, 'X-Sendfile2'); + + $t->{REQUEST} = ( <<EOF +GET /get-server-env.php?env=REMOTE_USER HTTP/1.0 +Host: auth.example.org +Authorization: Basic ZGVzOmRlcw== +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'des' } ]; + ok($tf->handle_http($t) == 0, '$_SERVER["REMOTE_USER"]'); + + $t->{REQUEST} = ( <<EOF +GET /get-server-env.php?env=AUTH_TYPE HTTP/1.0 +Host: auth.example.org +Authorization: Basic ZGVzOmRlcw== +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'Basic' } ]; + ok($tf->handle_http($t) == 0, '$_SERVER["AUTH_TYPE"]'); + + ok($tf->stop_proc == 0, "Stopping lighttpd"); $tf->{CONFIGFILE} = 'fastcgi-10.conf'; - ok($tf->start_proc == 0, "Starting lighttpd with $tf->{CONFIGFILE}") or die(); + ok($tf->start_proc == 0, "Starting lighttpd with $tf->{CONFIGFILE}") or goto cleanup; $t->{REQUEST} = ( <<EOF GET /get-server-env.php?env=SERVER_NAME HTTP/1.0 Host: zzz.example.org @@ -163,10 +220,18 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'zzz.example.org' } ]; ok($tf->handle_http($t) == 0, 'FastCGI + Host'); + $t->{REQUEST} = ( <<EOF +GET http://zzz.example.org/get-server-env.php?env=SERVER_NAME HTTP/1.0 +Host: aaa.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'zzz.example.org' } ]; + ok($tf->handle_http($t) == 0, 'SERVER_NAME (absolute url in request line)'); + ok($tf->stop_proc == 0, "Stopping lighttpd"); $tf->{CONFIGFILE} = 'bug-06.conf'; - ok($tf->start_proc == 0, "Starting lighttpd with $tf->{CONFIGFILE}") or die(); + ok($tf->start_proc == 0, "Starting lighttpd with $tf->{CONFIGFILE}") or goto cleanup; $t->{REQUEST} = ( <<EOF GET /indexfile/ HTTP/1.0 Host: www.example.org @@ -178,7 +243,7 @@ EOF ok($tf->stop_proc == 0, "Stopping lighttpd"); $tf->{CONFIGFILE} = 'bug-12.conf'; - ok($tf->start_proc == 0, "Starting lighttpd with bug-12.conf") or die(); + ok($tf->start_proc == 0, "Starting lighttpd with bug-12.conf") or goto cleanup; $t->{REQUEST} = ( <<EOF POST /indexfile/abc HTTP/1.0 Host: www.example.org @@ -192,7 +257,13 @@ EOF } SKIP: { - skip "no fcgi-auth found", 4 unless -x $tf->{BASEDIR}."/tests/fcgi-auth" || -x $tf->{BASEDIR}."/tests/fcgi-auth.exe"; + skip "PHP not started, cannot stop it", 1 unless $php_child != -1; + ok(0 == $tf->endspawnfcgi($php_child), "Stopping php"); + $php_child = -1; +} + +SKIP: { + skip "no fcgi-auth found", 5 unless -x $tf->{BASEDIR}."/tests/fcgi-auth" || -x $tf->{BASEDIR}."/tests/fcgi-auth.exe"; $tf->{CONFIGFILE} = 'fastcgi-auth.conf'; ok($tf->start_proc == 0, "Starting lighttpd with $tf->{CONFIGFILE}") or die(); @@ -212,11 +283,19 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; ok($tf->handle_http($t) == 0, 'FastCGI - Auth'); + $t->{REQUEST} = ( <<EOF +GET /expire/access.txt?ok HTTP/1.0 +Host: www.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; + ok($tf->handle_http($t) == 0, 'FastCGI - Auth in subdirectory'); + ok($tf->stop_proc == 0, "Stopping lighttpd"); } SKIP: { - skip "no php found", 4 unless -x "/home/jan/Documents/php-5.1.0/sapi/cgi/php"; + skip "no php found", 5 unless -x $phpbin; $tf->{CONFIGFILE} = 'fastcgi-13.conf'; ok($tf->start_proc == 0, "Starting lighttpd with $tf->{CONFIGFILE}") or die(); $t->{REQUEST} = ( <<EOF @@ -227,6 +306,15 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; ok($tf->handle_http($t) == 0, 'FastCGI + local spawning'); + $t->{REQUEST} = ( <<EOF +HEAD /indexfile/index.php HTTP/1.0 +Host: www.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, '-Content-Length' => '0' } ]; + # Of course a valid content-length != 0 would be ok, but we assume for now that such one is not generated. + ok($tf->handle_http($t) == 0, 'Check for buggy content length with HEAD'); + $t->{REQUEST} = ( <<EOF GET /get-env.php?env=MAIL HTTP/1.0 Host: www.example.org @@ -242,7 +330,7 @@ EOF SKIP: { - skip "no fcgi-responder found", 9 unless -x $tf->{BASEDIR}."/tests/fcgi-responder" || -x $tf->{BASEDIR}."/tests/fcgi-responder.exe"; + skip "no fcgi-responder found", 11 unless -x $tf->{BASEDIR}."/tests/fcgi-responder" || -x $tf->{BASEDIR}."/tests/fcgi-responder.exe"; $tf->{CONFIGFILE} = 'fastcgi-responder.conf'; ok($tf->start_proc == 0, "Starting lighttpd with $tf->{CONFIGFILE}") or die(); @@ -279,6 +367,23 @@ EOF ok($tf->handle_http($t) == 0, 'line-ending \r\n + \r\n'); $t->{REQUEST} = ( <<EOF +GET /abc/def/ghi?path_info HTTP/1.0 +Host: wsgi.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => '/abc/def/ghi' } ]; + ok($tf->handle_http($t) == 0, 'PATH_INFO (wsgi)'); + + $t->{REQUEST} = ( <<EOF +GET /abc/def/ghi?script_name HTTP/1.0 +Host: wsgi.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => '' } ]; + ok($tf->handle_http($t) == 0, 'SCRIPT_NAME (wsgi)'); + + + $t->{REQUEST} = ( <<EOF GET /index.fcgi?die-at-end HTTP/1.0 Host: www.example.org EOF @@ -286,7 +391,7 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'test123' } ]; ok($tf->handle_http($t) == 0, 'killing fastcgi and wait for restart'); - select(undef, undef, undef, 2); + select(undef, undef, undef, .2); $t->{REQUEST} = ( <<EOF GET /index.fcgi?die-at-end HTTP/1.0 Host: www.example.org @@ -296,7 +401,7 @@ EOF ok($tf->handle_http($t) == 0, 'killing fastcgi and wait for restart'); - select(undef, undef, undef, 2); + select(undef, undef, undef, .2); $t->{REQUEST} = ( <<EOF GET /index.fcgi?crlf HTTP/1.0 Host: www.example.org @@ -309,3 +414,10 @@ EOF ok($tf->stop_proc == 0, "Stopping lighttpd"); } +exit 0; + +cleanup: ; + +$tf->endspawnfcgi($php_child) if $php_child != -1; + +die(); diff --git a/tests/mod-proxy.t b/tests/mod-proxy.t new file mode 100755 index 0000000..13690a4 --- /dev/null +++ b/tests/mod-proxy.t @@ -0,0 +1,88 @@ +#!/usr/bin/env perl +BEGIN { + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; +} + +use strict; +use IO::Socket; +use Test::More tests => 9; +use LightyTest; + +my $tf_real = LightyTest->new(); +my $tf_proxy = LightyTest->new(); + +my $t; +my $php_child = -1; + +my $phpbin = (defined $ENV{'PHP'} ? $ENV{'PHP'} : '/usr/bin/php-cgi'); +$ENV{'PHP'} = $phpbin; + +SKIP: { + skip "PHP already running on port 1026", 1 if $tf_real->listening_on(1026); + skip "no php binary found", 1 unless -x $phpbin; + ok(-1 != ($php_child = $tf_real->spawnfcgi($phpbin, 1026)), "Spawning php"); +} + +## we need two procs +## 1. the real webserver +## 2. the proxy server + +$tf_real->{PORT} = 2048; +$tf_real->{CONFIGFILE} = 'lighttpd.conf'; + +$tf_proxy->{PORT} = 2050; +$tf_proxy->{CONFIGFILE} = 'proxy.conf'; + +ok($tf_real->start_proc == 0, "Starting lighttpd") or goto cleanup; + +ok($tf_proxy->start_proc == 0, "Starting lighttpd as proxy") or goto cleanup; + +$t->{REQUEST} = ( <<EOF +GET /index.html HTTP/1.0 +Host: www.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf_proxy->handle_http($t) == 0, 'valid request'); + +$t->{REQUEST} = ( <<EOF +GET /index.html HTTP/1.0 +Host: www.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'Server' => 'Apache 1.3.29' } ]; +ok($tf_proxy->handle_http($t) == 0, 'drop Server from real server'); + +SKIP: { + skip "no PHP running on port 1026", 1 unless $tf_real->listening_on(1026); + $t->{REQUEST} = ( <<EOF +GET /rewrite/all/some+test%3axxx%20with%20space HTTP/1.0 +Host: www.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => '/some+test%3axxx%20with%20space' } ]; + ok($tf_proxy->handle_http($t) == 0, 'rewrited urls work with encoded path'); +} + +ok($tf_proxy->stop_proc == 0, "Stopping lighttpd proxy"); + +ok($tf_real->stop_proc == 0, "Stopping lighttpd"); + +SKIP: { + skip "PHP not started, cannot stop it", 1 unless $php_child != -1; + ok(0 == $tf_real->endspawnfcgi($php_child), "Stopping php"); + $php_child = -1; +} + +exit 0; + +cleanup: + +$tf_real->endspawnfcgi($php_child) if $php_child != -1; +$tf_real->stop_proc; +$tf_proxy->stop_proc; + +die(); diff --git a/tests/mod-redirect.t b/tests/mod-redirect.t index 666ca80..14669d9 100755 --- a/tests/mod-redirect.t +++ b/tests/mod-redirect.t @@ -1,19 +1,19 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; use IO::Socket; -use Test::More tests => 6; +use Test::More tests => 7; use LightyTest; my $tf = LightyTest->new(); my $t; - + ok($tf->start_proc == 0, "Starting lighttpd") or die(); $t->{REQUEST} = ( <<EOF @@ -24,6 +24,14 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => 'http://localhost:'.$tf->{PORT}.'/' } ]; ok($tf->handle_http($t) == 0, 'external redirect'); +$t->{REQUEST} = ( <<EOF +GET /redirect/ HTTP/1.0 +Host: vvv.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => 'http://localhost:'.$tf->{PORT}.'/', 'Content-Length' => '0' } ]; +ok($tf->handle_http($t) == 0, 'external redirect should have a Content-Length: 0'); + $t->{REQUEST} = ( <<EOF GET /redirect/ HTTP/1.0 Host: zzz.example.org diff --git a/tests/mod-rewrite.t b/tests/mod-rewrite.t index 31c7d1a..6474f19 100755 --- a/tests/mod-rewrite.t +++ b/tests/mod-rewrite.t @@ -1,24 +1,32 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; use IO::Socket; -use Test::More tests => 5; +use Test::More tests => 8; use LightyTest; my $tf = LightyTest->new(); my $t; - +my $php_child = -1; + +my $phpbin = (defined $ENV{'PHP'} ? $ENV{'PHP'} : '/usr/bin/php-cgi'); SKIP: { - skip "no PHP running on port 1026", 5 unless $tf->listening_on(1026); + skip "PHP already running on port 1026", 1 if $tf->listening_on(1026); + skip "no php binary found", 1 unless -x $phpbin; + ok(-1 != ($php_child = $tf->spawnfcgi($phpbin, 1026)), "Spawning php"); +} - ok($tf->start_proc == 0, "Starting lighttpd") or die(); +SKIP: { + skip "no PHP running on port 1026", 6 unless $tf->listening_on(1026); + + ok($tf->start_proc == 0, "Starting lighttpd") or goto cleanup; $t->{REQUEST} = ( <<EOF GET /rewrite/foo HTTP/1.0 @@ -44,5 +52,27 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'bar&a=b' } ]; ok($tf->handle_http($t) == 0, 'valid request'); + $t->{REQUEST} = ( <<EOF +GET /rewrite/nofile?a=b HTTP/1.0 +Host: www.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'file=/rewrite/nofile&a=b' } ]; + ok($tf->handle_http($t) == 0, 'not existing file rewrite'); + ok($tf->stop_proc == 0, "Stopping lighttpd"); } + +SKIP: { + skip "PHP not started, cannot stop it", 1 unless $php_child != -1; + ok(0 == $tf->endspawnfcgi($php_child), "Stopping php"); +} + + +exit 0; + +cleanup: ; + +$tf->endspawnfcgi($php_child) if $php_child != -1; + +die(); diff --git a/tests/mod-secdownload.t b/tests/mod-secdownload.t new file mode 100755 index 0000000..c8cad38 --- /dev/null +++ b/tests/mod-secdownload.t @@ -0,0 +1,79 @@ +#!/usr/bin/env perl +BEGIN { + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; +} + +use strict; +use IO::Socket; +use Test::More tests => 7; +use LightyTest; +use Digest::MD5 qw(md5_hex); + +my $tf = LightyTest->new(); +my $t; + +ok($tf->start_proc == 0, "Starting lighttpd") or die(); + +my $secret = "verysecret"; +my $f = "/index.html"; +my $thex = sprintf("%08x", time); +my $m = md5_hex($secret.$f.$thex); + +$t->{REQUEST} = ( <<EOF +GET /sec/$m/$thex$f HTTP/1.0 +Host: vvv.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; + +ok($tf->handle_http($t) == 0, 'secdownload'); + +$thex = sprintf("%08x", time - 1800); +$m = md5_hex($secret.$f.$thex); + +$t->{REQUEST} = ( <<EOF +GET /sec/$m/$thex$f HTTP/1.0 +Host: vvv.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 410 } ]; + +ok($tf->handle_http($t) == 0, 'secdownload - gone (timeout)'); + +$t->{REQUEST} = ( <<EOF +GET /sec$f HTTP/1.0 +Host: vvv.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 404 } ]; + +ok($tf->handle_http($t) == 0, 'secdownload - direct access'); + +$t->{REQUEST} = ( <<EOF +GET $f HTTP/1.0 +Host: www.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; + +ok($tf->handle_http($t) == 0, 'secdownload - conditional access'); + + +$f = "/noexists"; +$thex = sprintf("%08x", time); +$m = md5_hex($secret.$f.$thex); + +$t->{REQUEST} = ( <<EOF +GET /sec/$m/$thex$f HTTP/1.0 +Host: vvv.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 404 } ]; + +ok($tf->handle_http($t) == 0, 'secdownload - timeout'); + +ok($tf->stop_proc == 0, "Stopping lighttpd"); + diff --git a/tests/mod-setenv.t b/tests/mod-setenv.t index 1eb32a1..1e56301 100755 --- a/tests/mod-setenv.t +++ b/tests/mod-setenv.t @@ -1,10 +1,9 @@ #!/usr/bin/env perl - BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; @@ -14,7 +13,7 @@ use LightyTest; my $tf = LightyTest->new(); my $t; - + ok($tf->start_proc == 0, "Starting lighttpd") or die(); $t->{REQUEST} = ( <<EOF diff --git a/tests/mod-ssi.t b/tests/mod-ssi.t index 8bc88cc..d5d69db 100755 --- a/tests/mod-ssi.t +++ b/tests/mod-ssi.t @@ -1,9 +1,9 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; @@ -13,7 +13,7 @@ use LightyTest; my $tf = LightyTest->new(); my $t; - + ok($tf->start_proc == 0, "Starting lighttpd") or die(); # mod-cgi diff --git a/tests/mod-userdir.t b/tests/mod-userdir.t index 30d546a..40f55ef 100755 --- a/tests/mod-userdir.t +++ b/tests/mod-userdir.t @@ -1,9 +1,9 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; @@ -13,7 +13,7 @@ use LightyTest; my $tf = LightyTest->new(); my $t; - + ok($tf->start_proc == 0, "Starting lighttpd") or die(); # get current user diff --git a/tests/prepare.sh b/tests/prepare.sh index 71816d1..99fc382 100755 --- a/tests/prepare.sh +++ b/tests/prepare.sh @@ -42,7 +42,8 @@ cp $srcdir/var-include-sub.conf $tmpdir/../ touch $tmpdir/servers/www.example.org/pages/image.jpg \ $tmpdir/servers/www.example.org/pages/image.JPG \ $tmpdir/servers/www.example.org/pages/Foo.txt \ - $tmpdir/servers/www.example.org/pages/a + $tmpdir/servers/www.example.org/pages/a \ + $tmpdir/servers/www.example.org/pages/index.html~ echo "12345" > $tmpdir/servers/www.example.org/pages/range.pdf printf "%-40s" "preparing infrastructure" diff --git a/tests/proxy.conf b/tests/proxy.conf new file mode 100644 index 0000000..2e959ac --- /dev/null +++ b/tests/proxy.conf @@ -0,0 +1,157 @@ +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" + +## bind to port (default: 80) +server.port = 2050 + +## bind to localhost (default: all interfaces) +server.bind = "localhost" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" +server.name = "www.example.org" +server.tag = "Proxy" + +server.dir-listing = "enable" + +#server.event-handler = "linux-sysepoll" +#server.event-handler = "linux-rtsig" + +#server.modules.path = "" +server.modules = ( + "mod_rewrite", + "mod_setenv", + "mod_access", + "mod_auth", +# "mod_httptls", + "mod_status", + "mod_expire", + "mod_simple_vhost", + "mod_redirect", +# "mod_evhost", +# "mod_localizer", + "mod_fastcgi", + "mod_proxy", + "mod_cgi", + "mod_compress", + "mod_userdir", + "mod_accesslog" ) + +server.indexfiles = ( "index.php", "index.html", + "index.htm", "default.htm" ) + + +######################## MODULE CONFIG ############################ + + +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" + +mimetype.assign = ( ".png" => "image/png", + ".jpg" => "image/jpeg", + ".jpeg" => "image/jpeg", + ".gif" => "image/gif", + ".html" => "text/html", + ".htm" => "text/html", + ".pdf" => "application/pdf", + ".swf" => "application/x-shockwave-flash", + ".spl" => "application/futuresplash", + ".txt" => "text/plain", + ".tar.gz" => "application/x-tgz", + ".tgz" => "application/x-tgz", + ".gz" => "application/x-gzip", + ".c" => "text/plain", + ".conf" => "text/plain" ) + +compress.cache-dir = env.SRCDIR + "/tmp/lighttpd/cache/compress/" +compress.filetype = ("text/plain", "text/html") + +setenv.add-environment = ( "TRAC_ENV" => "foo") +setenv.add-request-header = ( "FOO" => "foo") +setenv.add-response-header = ( "BAR" => "foo") + +proxy.debug = 1 +proxy.server = ( "" => ( + "grisu" => ( + "host" => "127.0.0.1", + "port" => 2048, + ) + ) + ) + + +cgi.assign = ( ".pl" => "/usr/bin/perl", + ".cgi" => "/usr/bin/perl", + ".py" => "/usr/bin/python" ) + +userdir.include-user = ( "jan" ) +userdir.path = "/" + +ssl.engine = "disable" +# ssl.pemfile = "server.pem" + +auth.backend = "plain" +auth.backend.plain.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.user" +auth.backend.plain.groupfile = "lighttpd.group" + +auth.backend.ldap.hostname = "localhost" +auth.backend.ldap.base-dn = "dc=my-domain,dc=com" +auth.backend.ldap.filter = "(uid=$)" + +auth.require = ( "/server-status" => + ( + "method" => "digest", + "realm" => "download archiv", +# "require" => ("group=www", "user=jan", "host=192.168.2.10") + "require" => "group=www|user=jan|host=192.168.2.10" + ), + "/auth.php" => + ( + "method" => "basic", + "realm" => "download archiv", +# "require" => ("group=www", "user=jan", "host=192.168.2.10") + "require" => "user=jan" + ), + "/server-config" => + ( + "method" => "basic", + "realm" => "download archiv", +# "require" => ("group=www", "user=jan", "user=weigon", "host=192.168.2.10") + "require" => "group=www|user=jan|host=192.168.2.10" + ) + ) + +url.access-deny = ( "~", ".inc") + +url.redirect = ( "^/redirect/$" => "http://localhost:2048/" ) + +url.rewrite = ( "^/rewrite/foo($|\?.+)" => "/indexfile/rewrite.php$1", + "^/rewrite/bar(?:$|\?(.+))" => "/indexfile/rewrite.php?bar&$1", + "^/rewrite/all(/.*)$" => "/indexfile/rewrite.php?$1" ) + +expire.url = ( "/expire/access" => "access 2 hours", + "/expire/modification" => "access plus 1 seconds 2 minutes") + +#cache.cache-dir = "/home/weigon/wwwroot/cache/" + +#### status module +status.status-url = "/server-status" +status.config-url = "/server-config" + +$HTTP["host"] == "vvv.example.org" { + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" +} + +$HTTP["host"] == "zzz.example.org" { + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" + server.name = "zzz.example.org" +} + +$HTTP["host"] == "no-simple.example.org" { + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/123.example.org/pages/" + server.name = "zzz.example.org" +} + +$HTTP["host"] !~ "(no-simple\.example\.org)" { + simple-vhost.document-root = "pages" + simple-vhost.server-root = env.SRCDIR + "/tmp/lighttpd/servers/" + simple-vhost.default-host = "www.example.org" +} + diff --git a/tests/request.t b/tests/request.t index be1f5d8..9358975 100755 --- a/tests/request.t +++ b/tests/request.t @@ -1,19 +1,19 @@ #!/usr/bin/env perl BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s#/[^/]+$#/#; - unshift @INC, $srcdir; + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; } use strict; use IO::Socket; -use Test::More tests => 33; +use Test::More tests => 52; use LightyTest; my $tf = LightyTest->new(); my $t; - + ok($tf->start_proc == 0, "Starting lighttpd") or die(); ## Basic Request-Handling @@ -89,6 +89,21 @@ $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, '-HTTP ok($tf->handle_http($t) == 0, 'HEAD request, mimetype text/html, content-length'); $t->{REQUEST} = ( <<EOF +HEAD http://123.example.org/12345.html HTTP/1.1 +Connection: close +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200, '-HTTP-Content' => '', 'Content-Type' => 'text/html', 'Content-Length' => '6'} ]; +ok($tf->handle_http($t) == 0, 'Hostname in first line, HTTP/1.1'); + +$t->{REQUEST} = ( <<EOF +HEAD https://123.example.org/12345.html HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, '-HTTP-Content' => '', 'Content-Type' => 'text/html', 'Content-Length' => '6'} ]; +ok($tf->handle_http($t) == 0, 'Hostname in first line as https url'); + +$t->{REQUEST} = ( <<EOF HEAD /foobar?foobar HTTP/1.0 EOF ); @@ -101,7 +116,7 @@ Connection: close Expect: 100-continue EOF ); -$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 417, '-HTTP-Content' => ''} ]; +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 417 } ]; ok($tf->handle_http($t) == 0, 'Continue, Expect'); ## ranges @@ -280,7 +295,7 @@ If-None-Match: 5 If-None-Match: 4 EOF ); -$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 400 } ]; +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; ok($tf->handle_http($t) == 0, 'Duplicate If-None-Match headers'); $t->{REQUEST} = ( <<EOF @@ -317,10 +332,18 @@ Content-Length: 4 1234 EOF ); -$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 400 } ]; +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; ok($tf->handle_http($t) == 0, 'OPTIONS with Content-Length'); $t->{REQUEST} = ( <<EOF +OPTIONS rtsp://221.192.134.146:80 RTSP/1.1 +Host: 221.192.134.146:80 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 400 } ]; +ok($tf->handle_http($t) == 0, 'OPTIONS for RTSP'); + +$t->{REQUEST} = ( <<EOF HEAD / HTTP/1.0 Content-Length: 4 @@ -330,15 +353,137 @@ EOF $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 400 } ]; ok($tf->handle_http($t) == 0, 'HEAD with Content-Length'); - $t->{REQUEST} = ( <<EOF -GET / HTTP/1.0 -If-Modified-Since: Sun, 1970 Jan 01 00:00:01 GMT -If-Modified-Since: Sun, 1970 Jan 01 00:00:01 GMT +GET /index.html HTTP/1.0 +If-Modified-Since: Sun, 01 Jan 2036 00:00:02 GMT +If-Modified-Since: Sun, 01 Jan 2036 00:00:02 GMT EOF ); -$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 304 } ]; ok($tf->handle_http($t) == 0, 'Duplicate If-Mod-Since, with equal timestamps'); +$t->{REQUEST} = ( "GET / HTTP/1.0\r\nIf-Modified-Since: \0\r\n\r\n" ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 400 } ]; +ok($tf->handle_http($t) == 0, 'invalid chars in Header values (bug #1286)'); + +$t->{REQUEST} = ( "GET / HTTP/1.0\r\nIf-Modified-Since: \r\n\r\n" ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'empty If-Modified-Since'); + +$t->{REQUEST} = ( "GET / HTTP/1.0\r\nIf-Modified-Since: foobar\r\n\r\n" ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'broken If-Modified-Since'); + +$t->{REQUEST} = ( "GET / HTTP/1.0\r\nIf-Modified-Since: this string is too long to be a valid timestamp\r\n\r\n" ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; +ok($tf->handle_http($t) == 0, 'broken If-Modified-Since'); + + +$t->{REQUEST} = ( <<EOF +GET /index.html HTTP/1.0 +If-Modified-Since2: Sun, 01 Jan 2036 00:00:03 GMT +If-Modified-Since: Sun, 01 Jan 2036 00:00:02 GMT +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 304 } ]; +ok($tf->handle_http($t) == 0, 'Similar Headers (bug #1287)'); + +$t->{REQUEST} = ( <<EOF +GET /index.html HTTP/1.0 +If-Modified-Since: Sun, 01 Jan 2036 00:00:02 GMT +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 304, 'Content-Type' => 'text/html' } ]; +ok($tf->handle_http($t) == 0, 'If-Modified-Since'); + +$t->{REQUEST} = ( <<EOF +GET /index.html HTTP/1.0 +If-Modified-Since: Sun, 01 Jan 2036 00:00:02 GMT +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 304, '-Content-Length' => '' } ]; +ok($tf->handle_http($t) == 0, 'Status 304 has no Content-Length (#1002)'); + +$t->{REQUEST} = ( <<EOF +GET /12345.txt HTTP/1.0 +Host: 123.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => '12345'."\n", 'Content-Type' => 'text/plain' } ]; +$t->{SLOWREQUEST} = 1; +ok($tf->handle_http($t) == 0, 'GET, slow \\r\\n\\r\\n (#2105)'); + +print "\nPathinfo for static files\n"; +$t->{REQUEST} = ( <<EOF +GET /image.jpg/index.php HTTP/1.0 +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'Content-Type' => 'image/jpeg' } ]; +ok($tf->handle_http($t) == 0, 'static file accepting pathinfo by default'); + +$t->{REQUEST} = ( <<EOF +GET /image.jpg/index.php HTTP/1.0 +Host: zzz.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; +ok($tf->handle_http($t) == 0, 'static file with forbidden pathinfo'); + + +print "\nConnection header\n"; +$t->{REQUEST} = ( <<EOF +GET /12345.txt HTTP/1.1 +Connection : close +Host: 123.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200, 'HTTP-Content' => '12345'."\n", 'Content-Type' => 'text/plain', 'Connection' => 'close' } ]; +ok($tf->handle_http($t) == 0, 'Connection-header, spaces before ":"'); + +$t->{REQUEST} = ( <<EOF +GET /12345.txt HTTP/1.1 +Connection: ,close +Host: 123.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200, 'HTTP-Content' => '12345'."\n", 'Content-Type' => 'text/plain', 'Connection' => 'close' } ]; +ok($tf->handle_http($t) == 0, 'Connection-header, leading comma'); + +$t->{REQUEST} = ( <<EOF +GET /12345.txt HTTP/1.1 +Connection: close,,TE +Host: 123.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200, 'HTTP-Content' => '12345'."\n", 'Content-Type' => 'text/plain', 'Connection' => 'close' } ]; +ok($tf->handle_http($t) == 0, 'Connection-header, no value between two commas'); + +$t->{REQUEST} = ( <<EOF +GET /12345.txt HTTP/1.1 +Connection: close, ,TE +Host: 123.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200, 'HTTP-Content' => '12345'."\n", 'Content-Type' => 'text/plain', 'Connection' => 'close' } ]; +ok($tf->handle_http($t) == 0, 'Connection-header, space between two commas'); + +$t->{REQUEST} = ( <<EOF +GET /12345.txt HTTP/1.1 +Connection: close, +Host: 123.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200, 'HTTP-Content' => '12345'."\n", 'Content-Type' => 'text/plain', 'Connection' => 'close' } ]; +ok($tf->handle_http($t) == 0, 'Connection-header, comma after value'); + +$t->{REQUEST} = ( <<EOF +GET /12345.txt HTTP/1.1 +Connection: close, +Host: 123.example.org +EOF + ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200, 'HTTP-Content' => '12345'."\n", 'Content-Type' => 'text/plain', 'Connection' => 'close' } ]; +ok($tf->handle_http($t) == 0, 'Connection-header, comma and space after value'); + ok($tf->stop_proc == 0, "Stopping lighttpd"); diff --git a/tests/run-tests.pl b/tests/run-tests.pl index 44e76a9..6136eac 100755 --- a/tests/run-tests.pl +++ b/tests/run-tests.pl @@ -2,18 +2,19 @@ use strict; -use Test::Harness qw(&runtests $verbose); -$verbose=0; +use Test::Harness qw(&runtests $verbose); +$verbose = (defined $ENV{'VERBOSE'} ? $ENV{'VERBOSE'} : 0); +my $tests = (defined $ENV{'RUNTESTS'} ? $ENV{'RUNTESTS'} : ''); my $srcdir = (defined $ENV{'srcdir'} ? $ENV{'srcdir'} : '.'); opendir DIR, $srcdir; my (@fs, $f); while ($f = readdir(DIR)) { - if ($f =~ /\.t$/) { + if ($f =~ /^(.*)\.t$/) { + next if ($tests ne '' and $tests !~ /(^|\s+)$1(\s+|$)/); push @fs, $srcdir.'/'.$f; } } closedir DIR; -runtests @fs; - +runtests (sort @fs); diff --git a/tests/symlink.t b/tests/symlink.t new file mode 100755 index 0000000..9b275bd --- /dev/null +++ b/tests/symlink.t @@ -0,0 +1,115 @@ +#!/usr/bin/env perl +BEGIN { + # add current source dir to the include-path + # we need this for make distcheck + (my $srcdir = $0) =~ s,/[^/]+$,/,; + unshift @INC, $srcdir; +} + +use strict; +use IO::Socket; +use Test::More tests => 10; +use LightyTest; + +my $tf = LightyTest->new(); +my $t; +my $docroot = $tf->{'TESTDIR'}."/tmp/lighttpd/servers/www.example.org/pages"; + +sub init_testbed { + return 0 unless eval { symlink("",""); 1 }; + my $f = "$docroot/index.html"; + my $l = "$docroot/index.xhtml"; + my $rc = undef; + unless (-l $l) { + return 0 unless symlink($f,$l); + }; + $f = "$docroot/expire"; + $l = "$docroot/symlinked"; + $rc = undef; + unless (-l $l) { + return 0 unless symlink($f,$l); + } + return 1; +}; + +SKIP: { + skip "perl does not support symlinking or setting up the symlinks failed.", 10 unless init_testbed; + ok($tf->start_proc == 0, "Starting lighttpd") or die(); + +# allow case +# simple file + $t->{REQUEST} = ( <<EOF +GET /index.html HTTP/1.0 +Host: symlink.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; + ok($tf->handle_http($t) == 0, 'allow: simple file'); + +# symlinked file + $t->{REQUEST} = ( <<EOF +GET /index.xhtml HTTP/1.0 +Host: symlink.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; + ok($tf->handle_http($t) == 0, 'allow: symlinked file'); + +# directly symlinked dir + $t->{REQUEST} = ( <<EOF +GET /symlinked/ HTTP/1.0 +Host: symlink.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; + ok($tf->handle_http($t) == 0, 'allow: directly symlinked dir'); + +# symlinked dir in path + $t->{REQUEST} = ( <<EOF +GET /symlinked/access.txt HTTP/1.0 +Host: symlink.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; + ok($tf->handle_http($t) == 0, 'allow: symlinked dir in path'); + +# deny case +# simple file + $t->{REQUEST} = ( <<EOF +GET /index.html HTTP/1.0 +Host: nosymlink.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ]; + ok($tf->handle_http($t) == 0, 'deny: simple file'); + +# symlinked file + $t->{REQUEST} = ( <<EOF +GET /index.xhtml HTTP/1.0 +Host: nosymlink.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; + ok($tf->handle_http($t) == 0, 'deny: symlinked file'); + +# directly symlinked dir + $t->{REQUEST} = ( <<EOF +GET /symlinked/ HTTP/1.0 +Host: nosymlink.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; + ok($tf->handle_http($t) == 0, 'deny: directly symlinked dir'); + +# symlinked dir in path + $t->{REQUEST} = ( <<EOF +GET /symlinked/access.txt HTTP/1.0 +Host: nosymlink.example.org +EOF + ); + $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; + ok($tf->handle_http($t) == 0, 'deny: symlinked dir in path'); + +# cleanup + ok($tf->stop_proc == 0, "Stopping lighttpd"); +}; diff --git a/tests/var-include.conf b/tests/var-include.conf index 00595ba..04b8271 100644 --- a/tests/var-include.conf +++ b/tests/var-include.conf @@ -2,38 +2,38 @@ debug.log-request-handling = "enable" debug.log-condition-handling = "enable" -server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" -server.pid-file = "@SRCDIR@/tmp/lighttpd/lighttpd.pid" +server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" ## bind to port (default: 80) server.port = 2048 ## bind to localhost (default: all interfaces) server.bind = "localhost" -server.errorlog = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.error.log" +server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" +server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" server.name = "www.example.org" server.tag = "Apache 1.3.29" server.modules = ( "mod_redirect", - "mod_accesslog" ) + "mod_accesslog" ) ######################## MODULE CONFIG ############################ -accesslog.filename = "@SRCDIR@/tmp/lighttpd/logs/lighttpd.access.log" +accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" mimetype.assign = ( ".html" => "text/html" ) url.redirect = ("^" => "/default") $HTTP["host"] == "www.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "www.example.org" url.redirect = ("^" => "/redirect") } $HTTP["host"] == "test.example.org" { - server.document-root = "@SRCDIR@/tmp/lighttpd/servers/www.example.org/pages/" + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" server.name = "test.example.org" var.myvar = "good" var.one = 1 diff --git a/tests/wrapper.sh b/tests/wrapper.sh index 5ba80ed..571594c 100755 --- a/tests/wrapper.sh +++ b/tests/wrapper.sh @@ -2,8 +2,8 @@ ## get some parameters from the makefile -export srcdir=$1 -export top_builddir=$2 -export SHELL +srcdir=$1 +top_builddir=$2 +export SHELL srcdir top_builddir -$3 +exec $3 |