Module Name: src Committed By: snj Date: Sun Feb 12 22:07:17 UTC 2017
Modified Files: src/libexec/httpd [netbsd-7]: CHANGES bozohttpd.8 bozohttpd.c bozohttpd.h cgi-bozo.c src/libexec/httpd/libbozohttpd [netbsd-7]: libbozohttpd.3 src/libexec/httpd/testsuite [netbsd-7]: Makefile html_cmp test-bigfile test-simple Added Files: src/libexec/httpd/testsuite [netbsd-7]: t11.in t11.out src/libexec/httpd/testsuite/cgi-bin [netbsd-7]: empty Log Message: Pull up following revision(s) (requested by mrg in ticket #1357): libexec/httpd/CHANGES: revision 1.25 libexec/httpd/bozohttpd.8: revisions 1.63-1.65 libexec/httpd/bozohttpd.c: revisions 1.85, 1.86 libexec/httpd/bozohttpd.h: revision 1.47 libexec/httpd/cgi-bozo.c: revisions 1.36, 1.37 libexec/httpd/libbozohttpd/libbozohttpd.3: revision 1.4 libexec/httpd/testsuite/Makefile: revision 1.7 libexec/httpd/testsuite/html_cmp: revision 1.5 libexec/httpd/testsuite/test-bigfile: revision 1.4 libexec/httpd/testsuite/test-simple: revisions 1.3, 1.4 libexec/httpd/testsuite/t11.in: revision 1.1 libexec/httpd/testsuite/t11.out: revision 1.1 libexec/httpd/testsuite/cgi-bin/empty: revision 1.1 Update bozohttpd to 20170201: - fix an infinite loop in cgi processing - fixes and clean up for the testsuite - no longer sends encoding header for compressed formats To generate a diff of this commit: cvs rdiff -u -r1.19.2.4 -r1.19.2.5 src/libexec/httpd/CHANGES cvs rdiff -u -r1.46.4.7 -r1.46.4.8 src/libexec/httpd/bozohttpd.8 cvs rdiff -u -r1.56.2.7 -r1.56.2.8 src/libexec/httpd/bozohttpd.c cvs rdiff -u -r1.33.2.5 -r1.33.2.6 src/libexec/httpd/bozohttpd.h cvs rdiff -u -r1.25.2.6 -r1.25.2.7 src/libexec/httpd/cgi-bozo.c cvs rdiff -u -r1.3 -r1.3.10.1 src/libexec/httpd/libbozohttpd/libbozohttpd.3 cvs rdiff -u -r1.4.24.2 -r1.4.24.3 src/libexec/httpd/testsuite/Makefile cvs rdiff -u -r1.4 -r1.4.18.1 src/libexec/httpd/testsuite/html_cmp cvs rdiff -u -r0 -r1.1.4.2 src/libexec/httpd/testsuite/t11.in \ src/libexec/httpd/testsuite/t11.out cvs rdiff -u -r1.1.1.1.30.2 -r1.1.1.1.30.3 \ src/libexec/httpd/testsuite/test-bigfile cvs rdiff -u -r1.2.4.2 -r1.2.4.3 src/libexec/httpd/testsuite/test-simple cvs rdiff -u -r0 -r1.1.4.2 src/libexec/httpd/testsuite/cgi-bin/empty Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/libexec/httpd/CHANGES diff -u src/libexec/httpd/CHANGES:1.19.2.4 src/libexec/httpd/CHANGES:1.19.2.5 --- src/libexec/httpd/CHANGES:1.19.2.4 Fri Dec 23 07:42:09 2016 +++ src/libexec/httpd/CHANGES Sun Feb 12 22:07:17 2017 @@ -1,7 +1,12 @@ -$NetBSD: CHANGES,v 1.19.2.4 2016/12/23 07:42:09 snj Exp $ +$NetBSD: CHANGES,v 1.19.2.5 2017/02/12 22:07:17 snj Exp $ + +changes in bozohttpd 20170201: + o fix an infinite loop in cgi processing + o fixes and clean up for the testsuite + o no longer sends encoding header for compressed formats changes in bozohttpd 20160517: - o add a bozo_get_version() function which returns the version number + o add a bozo_get_version() function which returns the version number changes in bozohttpd 20160415: o add search-word support for CGI Index: src/libexec/httpd/bozohttpd.8 diff -u src/libexec/httpd/bozohttpd.8:1.46.4.7 src/libexec/httpd/bozohttpd.8:1.46.4.8 --- src/libexec/httpd/bozohttpd.8:1.46.4.7 Fri Dec 23 07:42:09 2016 +++ src/libexec/httpd/bozohttpd.8 Sun Feb 12 22:07:17 2017 @@ -1,8 +1,8 @@ -.\" $NetBSD: bozohttpd.8,v 1.46.4.7 2016/12/23 07:42:09 snj Exp $ +.\" $NetBSD: bozohttpd.8,v 1.46.4.8 2017/02/12 22:07:17 snj Exp $ .\" .\" $eterna: bozohttpd.8,v 1.101 2011/11/18 01:25:11 mrg Exp $ .\" -.\" Copyright (c) 1997-2016 Matthew R. Green +.\" Copyright (c) 1997-2017 Matthew R. Green .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -26,7 +26,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 11, 2016 +.Dd February 1, 2017 .Dt BOZOHTTPD 8 .Os .Sh NAME @@ -190,7 +190,7 @@ when a URL in the form is being accessed. The function is passed three tables as arguments, the server environment, the request headers, and the decoded query string -plus any data that was send as application/x-www-form-urlencoded. +plus any data that was sent as application/x-www-form-urlencoded. .It Fl M Ar suffix type encoding encoding11 Adds a new entry to the table that converts file suffixes to content type and encoding. @@ -384,7 +384,7 @@ user transformations (NO_USER_SUPPORT), directory index support (NO_DIRINDEX_SUPPORT), daemon mode support (NO_DAEMON_MODE), dynamic MIME content (NO_DYNAMIC_CONTENT), -Lua suport (NO_LUA_SUPPORT), +Lua support (NO_LUA_SUPPORT), and SSL support (NO_SSL_SUPPORT) by defining the listed macros when building .Nm . @@ -446,7 +446,7 @@ with on the compiler command line. .Ss COMPRESSION .Nm -supports a very basic form compression. +supports a very basic form of compression. .Nm will serve the requested file postpended with .Dq Pa .gz @@ -531,7 +531,7 @@ The focus has always been simplicity and and regular code audits. This manual documents .Nm -version 20160720. +version 20170201. .Sh AUTHORS .An -nosplit .Nm @@ -631,6 +631,10 @@ provided some clean up for memory leaks .Aq Mt j...@netbsd.org provided man page fixes .It +.An Dennis Lindroos +.Aq Mt dena...@gmail.com +provided a cgi-bin fix +.It .An Julio Merino .Aq Mt j...@netbsd.org Added the Index: src/libexec/httpd/bozohttpd.c diff -u src/libexec/httpd/bozohttpd.c:1.56.2.7 src/libexec/httpd/bozohttpd.c:1.56.2.8 --- src/libexec/httpd/bozohttpd.c:1.56.2.7 Fri Dec 23 07:42:09 2016 +++ src/libexec/httpd/bozohttpd.c Sun Feb 12 22:07:17 2017 @@ -1,9 +1,9 @@ -/* $NetBSD: bozohttpd.c,v 1.56.2.7 2016/12/23 07:42:09 snj Exp $ */ +/* $NetBSD: bozohttpd.c,v 1.56.2.8 2017/02/12 22:07:17 snj Exp $ */ /* $eterna: bozohttpd.c,v 1.178 2011/11/18 09:21:15 mrg Exp $ */ /* - * Copyright (c) 1997-2016 Matthew R. Green + * Copyright (c) 1997-2017 Matthew R. Green * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -109,7 +109,7 @@ #define INDEX_HTML "index.html" #endif #ifndef SERVER_SOFTWARE -#define SERVER_SOFTWARE "bozohttpd/20160720" +#define SERVER_SOFTWARE "bozohttpd/20170201" #endif #ifndef DIRECT_ACCESS_FILE #define DIRECT_ACCESS_FILE ".bzdirect" Index: src/libexec/httpd/bozohttpd.h diff -u src/libexec/httpd/bozohttpd.h:1.33.2.5 src/libexec/httpd/bozohttpd.h:1.33.2.6 --- src/libexec/httpd/bozohttpd.h:1.33.2.5 Fri Dec 23 07:42:09 2016 +++ src/libexec/httpd/bozohttpd.h Sun Feb 12 22:07:17 2017 @@ -1,9 +1,9 @@ -/* $NetBSD: bozohttpd.h,v 1.33.2.5 2016/12/23 07:42:09 snj Exp $ */ +/* $NetBSD: bozohttpd.h,v 1.33.2.6 2017/02/12 22:07:17 snj Exp $ */ /* $eterna: bozohttpd.h,v 1.39 2011/11/18 09:21:15 mrg Exp $ */ /* - * Copyright (c) 1997-2015 Matthew R. Green + * Copyright (c) 1997-2017 Matthew R. Green * All rights reserved. * * Redistribution and use in source and binary forms, with or without Index: src/libexec/httpd/cgi-bozo.c diff -u src/libexec/httpd/cgi-bozo.c:1.25.2.6 src/libexec/httpd/cgi-bozo.c:1.25.2.7 --- src/libexec/httpd/cgi-bozo.c:1.25.2.6 Fri Dec 23 07:42:09 2016 +++ src/libexec/httpd/cgi-bozo.c Sun Feb 12 22:07:17 2017 @@ -1,9 +1,9 @@ -/* $NetBSD: cgi-bozo.c,v 1.25.2.6 2016/12/23 07:42:09 snj Exp $ */ +/* $NetBSD: cgi-bozo.c,v 1.25.2.7 2017/02/12 22:07:17 snj Exp $ */ /* $eterna: cgi-bozo.c,v 1.40 2011/11/18 09:21:15 mrg Exp $ */ /* - * Copyright (c) 1997-2015 Matthew R. Green + * Copyright (c) 1997-2017 Matthew R. Green * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -235,7 +235,8 @@ parse_search_string(bozo_httpreq_t *requ */ *args_len = 1; /* count '+' in str */ - for (s = str; (s = strchr(s, '+')); (*args_len)++); + for (s = str; (s = strchr(s, '+')); (*args_len)++) + s++; args = bozomalloc(httpd, sizeof(*args) * (*args_len + 1)); Index: src/libexec/httpd/libbozohttpd/libbozohttpd.3 diff -u src/libexec/httpd/libbozohttpd/libbozohttpd.3:1.3 src/libexec/httpd/libbozohttpd/libbozohttpd.3:1.3.10.1 --- src/libexec/httpd/libbozohttpd/libbozohttpd.3:1.3 Tue Mar 18 18:20:38 2014 +++ src/libexec/httpd/libbozohttpd/libbozohttpd.3 Sun Feb 12 22:07:17 2017 @@ -1,4 +1,4 @@ -.\" $NetBSD: libbozohttpd.3,v 1.3 2014/03/18 18:20:38 riastradh Exp $ +.\" $NetBSD: libbozohttpd.3,v 1.3.10.1 2017/02/12 22:07:17 snj Exp $ .\" .\" $eterna: libbozohttpd.3,v 1.2 2010/05/10 02:48:23 mrg Exp $ .\" @@ -29,7 +29,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd November 5, 2009 +.Dd February 2, 2017 .Dt LIBBOZOHTTPD 3 .Os .Sh NAME @@ -41,7 +41,7 @@ .In bozohttpd.h .Ft int .Fo bozo_set_pref -.Fa "bozoprefs_t *prefs" "char *name" "char *value" +.Fa "bozohttpd_t *httpd" "bozoprefs_t *prefs" "char *name" "char *value" .Fc .Ft char * .Fo bozo_get_pref Index: src/libexec/httpd/testsuite/Makefile diff -u src/libexec/httpd/testsuite/Makefile:1.4.24.2 src/libexec/httpd/testsuite/Makefile:1.4.24.3 --- src/libexec/httpd/testsuite/Makefile:1.4.24.2 Fri Dec 23 07:42:09 2016 +++ src/libexec/httpd/testsuite/Makefile Sun Feb 12 22:07:17 2017 @@ -1,6 +1,7 @@ # $eterna: Makefile,v 1.14 2009/05/22 21:51:39 mrg Exp $ SIMPLETESTS= t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 +CGITESTS= t11 BIGFILETESTS= partial4000 partial8000 BOZOHTTPD?= ../bozohttpd @@ -22,11 +23,16 @@ clean: rm -f tmp.$$a.out tmp.$$a.err; \ done -check: check-simple check-bigfile +check: check-simple check-cgi check-bigfile check-simple: .for a in $(SIMPLETESTS) - ${SILENT}$(.CURDIR)/test-simple "$a" "${BOZOHTTPD}" "${DATA}" "${VERBOSE}" + ${SILENT}$(.CURDIR)/test-simple "$a" "${BOZOHTTPD}" "${DATA}" "${.CURDIR}" "${VERBOSE}" +.endfor + +check-cgi: +.for a in $(CGITESTS) + ${SILENT}$(.CURDIR)/test-simple "$a" "${BOZOHTTPD}" "${DATA}" "${.CURDIR}" "${VERBOSE}" -c "${.CURDIR}/cgi-bin" .endfor check-bigfile: Index: src/libexec/httpd/testsuite/html_cmp diff -u src/libexec/httpd/testsuite/html_cmp:1.4 src/libexec/httpd/testsuite/html_cmp:1.4.18.1 --- src/libexec/httpd/testsuite/html_cmp:1.4 Fri Nov 18 09:51:31 2011 +++ src/libexec/httpd/testsuite/html_cmp Sun Feb 12 22:07:17 2017 @@ -2,12 +2,20 @@ # # $eterna: html_cmp,v 1.9 2011/11/17 22:18:02 mrg Exp $ # -# like cmp(1) but compares to files after making their `Date: ' headers -# the same, to allow `now' and `then' to work properly. it also tries -# to find servername's that might be the local host and converts those -# as well.. +# like cmp(1)/diff(1) but compares to files after making their +# `Date: ' headers the same, to allow `now' and `then' to work properly. +# it also tries to find servername's that might be the local host and +# converts those as well.. # -# it must be called like `cmp file1 file1' *only*. +# it must be called like `html_cmp cmp|diff file1 file1' *only*. + +if [ "cmp" = "$1" ]; then + cmd="cmp -s" +elif [ "diff" = "$1" ]; then + cmd="diff -u" +else + exit 77 +fi h=`hostname || uname -n` @@ -17,10 +25,10 @@ sedcmd="s/^Date: .*/Date: nowish/; s/^Server: .*/^Server: bozotic HTTP server version 5.08/; s/^Content-Length: .*/Content-Length: 223/;" -sed -e "$sedcmd" < "$1" > "f1.tmp.$$" -sed -e "$sedcmd" < "$2" > "f2.tmp.$$" +sed -e "$sedcmd" < "$2" > "f1.tmp.$$" +sed -e "$sedcmd" < "$3" > "f2.tmp.$$" -cmp -s "f1.tmp.$$" "f2.tmp.$$" +${cmd} "f1.tmp.$$" "f2.tmp.$$" rv=$? rm -f "f1.tmp.$$" "f2.tmp.$$" Index: src/libexec/httpd/testsuite/test-bigfile diff -u src/libexec/httpd/testsuite/test-bigfile:1.1.1.1.30.2 src/libexec/httpd/testsuite/test-bigfile:1.1.1.1.30.3 --- src/libexec/httpd/testsuite/test-bigfile:1.1.1.1.30.2 Fri Dec 23 07:42:09 2016 +++ src/libexec/httpd/testsuite/test-bigfile Sun Feb 12 22:07:17 2017 @@ -1,5 +1,5 @@ #! /bin/sh -# $NetBSD: test-bigfile,v 1.1.1.1.30.2 2016/12/23 07:42:09 snj Exp $ +# $NetBSD: test-bigfile,v 1.1.1.1.30.3 2017/02/12 22:07:17 snj Exp $ test="$1" # partial4000 or partial8000 bozohttpd="$2" @@ -7,30 +7,35 @@ wget="$3" datadir="$4" verbose="$5" +tmperr="tmp.$test.err" + if [ "yes" = "$verbose" ]; then echo "Running test $test" else - exec 2>tmp.$test.err + exec 2>"$tmperr" fi bozotestport=11111 # copy beginning file -cp ${datadir}/bigfile.${test} ./bigfile +cp "${datadir}/bigfile.${test}" ./bigfile # fire up bozohttpd -${bozohttpd} -b -b -I ${bozotestport} -n -s -f ${datadir} & +${bozohttpd} -b -b -I ${bozotestport} -n -s -f "${datadir}" & bozopid=$! -${wget} -c http://localhost:${bozotestport}/bigfile +"${wget}" -c http://localhost:${bozotestport}/bigfile kill -9 $bozopid -if cmp ./bigfile ${datadir}/bigfile; then +if cmp ./bigfile "${datadir}/bigfile"; then rm -f ./bigfile exit 0 else rm -f ./bigfile - [ "yes" = "$verbose" ] || echo "Failed test $test: `cat tmp.$test.err`" + if [ "yes" = "$verbose" ]; then + echo "Failed test $test:" + cat "$tmperr" + fi exit 1 fi Index: src/libexec/httpd/testsuite/test-simple diff -u src/libexec/httpd/testsuite/test-simple:1.2.4.2 src/libexec/httpd/testsuite/test-simple:1.2.4.3 --- src/libexec/httpd/testsuite/test-simple:1.2.4.2 Fri Dec 23 07:42:09 2016 +++ src/libexec/httpd/testsuite/test-simple Sun Feb 12 22:07:17 2017 @@ -1,23 +1,33 @@ #! /bin/sh -# $NetBSD: test-simple,v 1.2.4.2 2016/12/23 07:42:09 snj Exp $ +# $NetBSD: test-simple,v 1.2.4.3 2017/02/12 22:07:17 snj Exp $ -test="$1" -bozohttpd="$2" -datadir="$3" -verbose="$4" +test="$1"; shift +bozohttpd="$1"; shift +datadir="$1"; shift +curdir="$1"; shift +verbose="$1"; shift + +in="$curdir/$test.in" +out="$curdir/$test.out" +tmpout="tmp.$test.out" +tmperr="tmp.$test.err" if [ "yes" = "$verbose" ]; then echo "Running test $test" else - exec 2>tmp.$test.err + exec 2>"$tmperr" fi bozotestport=11111 -${bozohttpd} ${datadir} < $test.in > tmp.$test.out -if ./html_cmp $test.out tmp.$test.out; then +${bozohttpd} "$@" "${datadir}" < "$in" > "$tmpout" +if "$curdir/html_cmp" cmp "$out" "$tmpout"; then exit 0 else - [ "yes" = "$verbose" ] || echo "Failed test $test: `cat tmp.$test.err; echo; cat $test.out`" + if [ "yes" = "$verbose" ]; then + echo "Failed test $test:" + cat "$tmperr" + $curdir/html_cmp diff "$out" "$tmpout" + fi exit 1 fi Added files: Index: src/libexec/httpd/testsuite/t11.in diff -u /dev/null src/libexec/httpd/testsuite/t11.in:1.1.4.2 --- /dev/null Sun Feb 12 22:07:17 2017 +++ src/libexec/httpd/testsuite/t11.in Sun Feb 12 22:07:17 2017 @@ -0,0 +1,3 @@ +GET /cgi-bin/echo.bat?&dir+c:\\ HTTP/1.1 +Host: + Index: src/libexec/httpd/testsuite/t11.out diff -u /dev/null src/libexec/httpd/testsuite/t11.out:1.1.4.2 --- /dev/null Sun Feb 12 22:07:17 2017 +++ src/libexec/httpd/testsuite/t11.out Sun Feb 12 22:07:17 2017 @@ -0,0 +1 @@ +HTTP/1.1 200 OK