diff options
author | 1999-03-01 01:15:23 +0000 | |
---|---|---|
committer | 1999-03-01 01:15:23 +0000 | |
commit | a22aacc6e16b8fb0a01239c694d3f63de018830f (patch) | |
tree | 5d96f37eb3f21b128b35c08bbfaeb64d28fca077 /usr.sbin/httpd/src | |
parent | Apache 1.3.4 merge (diff) | |
download | wireguard-openbsd-a22aacc6e16b8fb0a01239c694d3f63de018830f.tar.xz wireguard-openbsd-a22aacc6e16b8fb0a01239c694d3f63de018830f.zip |
Apache 1.3.4
Diffstat (limited to 'usr.sbin/httpd/src')
-rw-r--r-- | usr.sbin/httpd/src/Makefile_win32.txt | 119 | ||||
-rw-r--r-- | usr.sbin/httpd/src/Makefile_win32_debug.txt | 119 | ||||
-rw-r--r-- | usr.sbin/httpd/src/helpers/binbuild.sh | 221 | ||||
-rw-r--r-- | usr.sbin/httpd/src/helpers/findprg.sh | 24 | ||||
-rw-r--r-- | usr.sbin/httpd/src/os/tpf/Makefile.tmpl | 41 | ||||
-rw-r--r-- | usr.sbin/httpd/src/os/tpf/TPFExport | 7 | ||||
-rw-r--r-- | usr.sbin/httpd/src/os/tpf/ebcdic.c | 221 | ||||
-rw-r--r-- | usr.sbin/httpd/src/os/tpf/ebcdic.h | 8 | ||||
-rw-r--r-- | usr.sbin/httpd/src/os/tpf/os-inline.c | 31 | ||||
-rw-r--r-- | usr.sbin/httpd/src/os/tpf/os.c | 177 | ||||
-rw-r--r-- | usr.sbin/httpd/src/os/tpf/os.h | 111 | ||||
-rw-r--r-- | usr.sbin/httpd/src/os/tpf/samples/linkdll.jcl | 121 | ||||
-rw-r--r-- | usr.sbin/httpd/src/os/tpf/samples/loadset.jcl | 58 |
13 files changed, 1258 insertions, 0 deletions
diff --git a/usr.sbin/httpd/src/Makefile_win32.txt b/usr.sbin/httpd/src/Makefile_win32.txt new file mode 100644 index 00000000000..bcd50c90a86 --- /dev/null +++ b/usr.sbin/httpd/src/Makefile_win32.txt @@ -0,0 +1,119 @@ +# Makefile for Windows NT and Windows 95 + +# Targets are: +# _apache - build Apache in Release mode +# install - build and install a Release build +# clean - remove (most) files generated by a Release build +# +# The default installation directory is \Apache. This can be changed +# with the INSTDIR macro, for example: +# +# nmake /f Makefile_win32.txt INSTDIR="d:\Program Files\Apache" install +# +# Note: this does *NOT* change the compiled in default "server root" + +!IF "$(INSTDIR)" == "" +INSTDIR=\Apache +!MESSAGE Using default install directory \Apache +!ENDIF + +default: _apache + +_apache: _build + +install: _build _install + +_build: + cd os\win32 + nmake /nologo CFG="ApacheOS - Win32 Release" -f ApacheOS.mak + cd ..\.. + cd regex + nmake /nologo CFG="regex - Win32 Release" -f regex.mak + cd .. + cd ap + nmake /nologo CFG="ap - Win32 Release" -f ap.mak + cd .. + cd main + nmake /nologo CFG="gen_uri_delims - Win32 Release" -f gen_uri_delims.mak + nmake /nologo CFG="gen_test_char - Win32 Release" -f gen_test_char.mak + cd .. + -del CoreR\buildmark.obj + nmake /nologo CFG="ApacheCore - Win32 Release" -f ApacheCore.mak + nmake /nologo CFG="Apache - Win32 Release" -f Apache.mak + cd os\win32 + set CFG=ApacheModuleStatus - Win32 Release + nmake /nologo CFG="ApacheModuleStatus - Win32 Release" -f ApacheModuleStatus.mak +# nmake /nologo CFG ""/nologo -f ApacheModuleStatus.mak"=ApacheModuleInfo - Win32 Release" -f ApacheModuleInfo.mak + nmake /nologo CFG="ApacheModuleAuthAnon - Win32 Release" -f ApacheModuleAuthAnon.mak + nmake /nologo CFG="ApacheModuleDigest - Win32 Release" -f ApacheModuleDigest.mak + nmake /nologo CFG="ApacheModuleCERNMeta - Win32 Release" -f ApacheModuleCERNMeta.mak + nmake /nologo CFG="ApacheModuleExpires - Win32 Release" -f ApacheModuleExpires.mak + nmake /nologo CFG="ApacheModuleHeaders - Win32 Release" -f ApacheModuleHeaders.mak + nmake /nologo CFG="ApacheModuleSpeling - Win32 Release" -f ApacheModuleSpeling.mak + nmake /nologo CFG="ApacheModuleUserTrack - Win32 Release" -f ApacheModuleUserTrack.mak + nmake /nologo CFG="ApacheModuleRewrite - Win32 Release" -f ApacheModuleRewrite.mak + cd ..\.. + cd modules\proxy + nmake /nologo CFG="ApacheModuleProxy - Win32 Release" -f ApacheModuleProxy.mak + cd ..\.. + +_install: + -mkdir $(INSTDIR) + -mkdir $(INSTDIR)\modules + -mkdir $(INSTDIR)\logs + -mkdir $(INSTDIR)\conf + copy ApacheR\Apache.exe $(INSTDIR) + copy CoreR\ApacheCore.dll $(INSTDIR) + copy os\win32\ApacheModuleStatusR\ApacheModuleStatus.dll $(INSTDIR)\modules +# copy os\win32\ApacheModuleInfoR\ApacheModuleInfo.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleAuthAnonR\ApacheModuleAuthAnon.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleDigestR\ApacheModuleDigest.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleCERNMetaR\ApacheModuleCERNMeta.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleExpiresR\ApacheModuleExpires.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleHeadersR\ApacheModuleHeaders.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleRewriteR\ApacheModuleRewrite.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleSpelingR\ApacheModuleSpeling.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleUserTrackR\ApacheModuleUserTrack.dll $(INSTDIR)\modules + copy modules\proxy\Release\ApacheModuleProxy.dll $(INSTDIR)\modules + +clean: + cd os\win32 + nmake /nologo CFG="ApacheOS - Win32 Release" -f ApacheOS.mak clean + cd ..\.. + cd regex + nmake /nologo CFG="regex - Win32 Release" -f regex.mak clean + cd .. + cd ap + nmake /nologo CFG="ap - Win32 Release" -f ap.mak clean + cd .. + cd main + nmake /nologo CFG="gen_uri_delims - Win32 Release" -f gen_uri_delims.mak clean + del uri_delims.h + nmake /nologo CFG="gen_test_char - Win32 Release" -f gen_test_char.mak clean + del test_char.h + cd .. + nmake /nologo CFG="ApacheCore - Win32 Release" -f ApacheCore.mak clean + nmake /nologo CFG="Apache - Win32 Release" -f Apache.mak clean + cd os\win32 + nmake /nologo CFG="ApacheModuleStatus - Win32 Release" -f ApacheModuleStatus.mak clean +# nmake /nologo CFG="ApacheModuleInfo - Win32 Release" -f ApacheModuleInfo.mak clean + nmake /nologo CFG="ApacheModuleAuthAnon - Win32 Release" -f ApacheModuleAuthAnon.mak clean + nmake /nologo CFG="ApacheModuleDigest - Win32 Release" -f ApacheModuleDigest.mak clean + nmake /nologo CFG="ApacheModuleCERNMeta - Win32 Release" -f ApacheModuleCERNMeta.mak clean + nmake /nologo CFG="ApacheModuleExpires - Win32 Release" -f ApacheModuleExpires.mak clean + nmake /nologo CFG="ApacheModuleHeaders - Win32 Release" -f ApacheModuleHeaders.mak clean + nmake /nologo CFG="ApacheModuleSpeling - Win32 Release" -f ApacheModuleSpeling.mak clean + nmake /nologo CFG="ApacheModuleUserTrack - Win32 Release" -f ApacheModuleUserTrack.mak clean + nmake /nologo CFG="ApacheModuleRewrite - Win32 Release" -f ApacheModuleRewrite.mak clean + cd ..\.. + cd modules\proxy + nmake /nologo CFG="ApacheModuleProxy - Win32 Release" -f ApacheModuleProxy.mak clean + cd ..\.. + cd os\win32\installer\installdll + nmake /nologo CFG="install - Win32 Release" -f install.mak clean + cd ..\..\.. + +installdll: + cd os\win32\installer\installdll + nmake /nologo CFG="install - Win32 Release" -f install.mak + cd ..\..\.. diff --git a/usr.sbin/httpd/src/Makefile_win32_debug.txt b/usr.sbin/httpd/src/Makefile_win32_debug.txt new file mode 100644 index 00000000000..599676f86ec --- /dev/null +++ b/usr.sbin/httpd/src/Makefile_win32_debug.txt @@ -0,0 +1,119 @@ +# Makefile for Windows NT and Windows 95 + +# Targets are: +# _apache - build Apache in Debug mode +# install - build and install a Debug build +# clean - remove (most) files generated by a Debug build +# +# The default installation directory is \Apache. This can be changed +# with the INSTDIR macro, for example: +# +# nmake /f Makefile_win32_debug.txt INSTDIR="d:\Program Files\Apache" install +# +# Note: this does *NOT* change the compiled in default "server root" + +!IF "$(INSTDIR)" == "" +INSTDIR=\Apache +!MESSAGE Using default install directory \Apache +!ENDIF + +default: _apache + +_apache: _build + +install: _build _install + +_build: + cd os\win32 + nmake /nologo CFG="ApacheOS - Win32 Debug" -f ApacheOS.mak + cd ..\.. + cd regex + nmake /nologo CFG="regex - Win32 Debug" -f regex.mak + cd .. + cd ap + nmake /nologo CFG="ap - Win32 Debug" -f ap.mak + cd .. + cd main + nmake /nologo CFG="gen_uri_delims - Win32 Debug" -f gen_uri_delims.mak + nmake /nologo CFG="gen_test_char - Win32 Debug" -f gen_test_char.mak + cd .. + -del CoreD\buildmark.obj + nmake /nologo CFG="ApacheCore - Win32 Debug" -f ApacheCore.mak + nmake /nologo CFG="Apache - Win32 Debug" -f Apache.mak + cd os\win32 + set CFG=ApacheModuleStatus - Win32 Debug + nmake /nologo CFG="ApacheModuleStatus - Win32 Debug" -f ApacheModuleStatus.mak +# nmake /nologo CFG ""/nologo -f ApacheModuleStatus.mak"=ApacheModuleInfo - Win32 Debug" -f ApacheModuleInfo.mak + nmake /nologo CFG="ApacheModuleAuthAnon - Win32 Debug" -f ApacheModuleAuthAnon.mak + nmake /nologo CFG="ApacheModuleDigest - Win32 Debug" -f ApacheModuleDigest.mak + nmake /nologo CFG="ApacheModuleCERNMeta - Win32 Debug" -f ApacheModuleCERNMeta.mak + nmake /nologo CFG="ApacheModuleExpires - Win32 Debug" -f ApacheModuleExpires.mak + nmake /nologo CFG="ApacheModuleHeaders - Win32 Debug" -f ApacheModuleHeaders.mak + nmake /nologo CFG="ApacheModuleSpeling - Win32 Debug" -f ApacheModuleSpeling.mak + nmake /nologo CFG="ApacheModuleUserTrack - Win32 Debug" -f ApacheModuleUserTrack.mak + nmake /nologo CFG="ApacheModuleRewrite - Win32 Debug" -f ApacheModuleRewrite.mak + cd ..\.. + cd modules\proxy + nmake /nologo CFG="ApacheModuleProxy - Win32 Debug" -f ApacheModuleProxy.mak + cd ..\.. + +_install: + -mkdir $(INSTDIR) + -mkdir $(INSTDIR)\modules + -mkdir $(INSTDIR)\logs + -mkdir $(INSTDIR)\conf + copy ApacheD\Apache.exe $(INSTDIR) + copy CoreD\ApacheCore.dll $(INSTDIR) + copy os\win32\ApacheModuleStatusD\ApacheModuleStatus.dll $(INSTDIR)\modules +# copy os\win32\ApacheModuleInfoD\ApacheModuleInfo.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleAuthAnonD\ApacheModuleAuthAnon.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleDigestD\ApacheModuleDigest.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleCERNMetaD\ApacheModuleCERNMeta.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleExpiresD\ApacheModuleExpires.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleHeadersD\ApacheModuleHeaders.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleRewriteD\ApacheModuleRewrite.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleSpelingD\ApacheModuleSpeling.dll $(INSTDIR)\modules + copy os\win32\ApacheModuleUserTrackD\ApacheModuleUserTrack.dll $(INSTDIR)\modules + copy modules\proxy\Debug\ApacheModuleProxy.dll $(INSTDIR)\modules + +clean: + cd os\win32 + nmake /nologo CFG="ApacheOS - Win32 Debug" -f ApacheOS.mak clean + cd ..\.. + cd regex + nmake /nologo CFG="regex - Win32 Debug" -f regex.mak clean + cd .. + cd ap + nmake /nologo CFG="ap - Win32 Debug" -f ap.mak clean + cd .. + cd main + nmake /nologo CFG="gen_uri_delims - Win32 Debug" -f gen_uri_delims.mak clean + del uri_delims.h + nmake /nologo CFG="gen_test_char - Win32 Debug" -f gen_test_char.mak clean + del test_char.h + cd .. + nmake /nologo CFG="ApacheCore - Win32 Debug" -f ApacheCore.mak clean + nmake /nologo CFG="Apache - Win32 Debug" -f Apache.mak clean + cd os\win32 + nmake /nologo CFG="ApacheModuleStatus - Win32 Debug" -f ApacheModuleStatus.mak clean +# nmake /nologo CFG="ApacheModuleInfo - Win32 Debug" -f ApacheModuleInfo.mak clean + nmake /nologo CFG="ApacheModuleAuthAnon - Win32 Debug" -f ApacheModuleAuthAnon.mak clean + nmake /nologo CFG="ApacheModuleDigest - Win32 Debug" -f ApacheModuleDigest.mak clean + nmake /nologo CFG="ApacheModuleCERNMeta - Win32 Debug" -f ApacheModuleCERNMeta.mak clean + nmake /nologo CFG="ApacheModuleExpires - Win32 Debug" -f ApacheModuleExpires.mak clean + nmake /nologo CFG="ApacheModuleHeaders - Win32 Debug" -f ApacheModuleHeaders.mak clean + nmake /nologo CFG="ApacheModuleSpeling - Win32 Debug" -f ApacheModuleSpeling.mak clean + nmake /nologo CFG="ApacheModuleUserTrack - Win32 Debug" -f ApacheModuleUserTrack.mak clean + nmake /nologo CFG="ApacheModuleRewrite - Win32 Debug" -f ApacheModuleRewrite.mak clean + cd ..\.. + cd modules\proxy + nmake /nologo CFG="ApacheModuleProxy - Win32 Debug" -f ApacheModuleProxy.mak clean + cd ..\.. + cd os\win32\installer\installdll + nmake /nologo CFG="install - Win32 Debug" -f install.mak clean + cd ..\..\.. + +installdll: + cd os\win32\installer\installdll + nmake /nologo CFG="install - Win32 Debug" -f install.mak + cd ..\..\.. diff --git a/usr.sbin/httpd/src/helpers/binbuild.sh b/usr.sbin/httpd/src/helpers/binbuild.sh new file mode 100644 index 00000000000..3279148fcbc --- /dev/null +++ b/usr.sbin/httpd/src/helpers/binbuild.sh @@ -0,0 +1,221 @@ +#!/bin/sh +# +# binbuild.sh - Builds an Apache binary distribution. +# Initially written by Lars Eilebrecht <lars@apache.org>. +# +# This script falls under the Apache License. +# See http://www.apache.org/docs/LICENSE + + +APDIR=$(basename $(pwd)) +VER=$(echo $APDIR |sed s/apache-//) +OS=$(src/helpers/GuessOS) +USER="$(src/helpers/buildinfo.sh -n %u@%h%d)" +TAR="$(src/helpers/findprg.sh tar)" +GTAR="$(src/helpers/findprg.sh gtar)" +GZIP="$(src/helpers/findprg.sh gzip)" +CONFIGPARAM="--with-layout=BinaryDistribution --enable-module=most --enable-shared=max" + +if [ ! -f ./ABOUT_APACHE ] +then + echo "ERROR: The current directory contains no valid Apache distribution." + echo "Please change the directory to the top level directory of a freshly" + echo "unpacked Apache 1.3 source distribution and re-execute the script" + echo "'./src/helpers/bindbuild.sh'." + exit 1; +fi + +if [ -d ./CVS ] +then + echo "ERROR: The current directory is a CVS checkout of Apache." + echo "Only a standard Apache 1.3 source distribution should be used to" + echo "create a binary distribution." + exit 1; +fi + +echo "Building Apache $VER binary distribution..." +echo "Platform is \"$OS\"..." + +( echo "Build log for Apache binary distribution" && \ + echo "----------------------------------------------------------------------" && \ + ./configure $CONFIGPARAM && \ + echo "----------------------------------------------------------------------" && \ + make clean && \ + rm -rf bindist install-bindist.sh *.bindist + echo "----------------------------------------------------------------------" && \ + make && \ + echo "----------------------------------------------------------------------" && \ + make install-quiet root="bindist/" && \ + echo "----------------------------------------------------------------------" && \ + make clean && \ + echo "----------------------------------------------------------------------" && \ + echo "[EOF]" \ +) > build.log 2>&1 + +if [ ! -f ./bindist/bin/httpd ] +then + echo "ERROR: Failed to build Apache. See \"build.log\" for details." + exit 1; +fi + +echo "Binary images successfully created..." +echo "Creating supplementary files..." + +( echo " " && \ + echo "Apache $VER binary distribution" && \ + echo "================================" && \ + echo " " && \ + echo "This binary distribution is usable on a \"$OS\"" && \ + echo "system and was built by \"$USER\"." && \ + echo "" && \ + echo "The distribution contains all standard Apache modules as shared" && \ + echo "objects. This allows you to enable or disable particular modules" && \ + echo "with the LoadModule/AddModule directives in the configuration file" && \ + echo "without the need to re-compile Apache." && \ + echo "" && \ + echo "See \"INSTALL.bindist\" on how to install the distribution." && \ + echo " " && \ + echo "NOTE: Please do not send support-related mails to the address mentioned" && \ + echo " above or to any member of the Apache Group! Support questions" && \ + echo " should be directed to the \"comp.infosystems.www.servers.unix\"" && \ + echo " or \"comp.infosystems.www.servers.ms-windows\" newsgroup" && \ + echo " (as appropriate for the platform you use), where some of the" && \ + echo " Apache team lurk, in the company of many other Apache gurus" && \ + echo " who should be able to help." && \ + echo " If you think you found a bug in Apache or have a suggestion please" && \ + echo " visit the bug report page at http://www.apache.org/bug_report.html" && \ + echo " " && \ + echo "----------------------------------------------------------------------" && \ + ./bindist/bin/httpd -V && \ + echo "----------------------------------------------------------------------" \ +) > README.bindist +cp README.bindist ../apache-$VER-$OS.README + +( echo " " && \ + echo "Apache $VER binary installation" && \ + echo "================================" && \ + echo " " && \ + echo "To install this binary distribution you have to execute the installation" && \ + echo "script \"install-bindist.sh\" in the top-level directory of the distribution." && \ + echo " " && \ + echo "The script takes the ServerRoot directory into which you want to install" && \ + echo "Apache as an option. If you ommit the option the default path" && \ + echo "\"/usr/local/apache\" is used." && \ + echo "Make sure you have write permissions in the target directory, e.g. switch" && \ + echo "to user \"root\" before you execute the script." && \ + echo " " && \ + echo "See \"README.bindist\" for further details about this distribution." && \ + echo " " && \ + echo "Please note that this distribution includes the complete Apache source code." && \ + echo "Therefore you may compile Apache yourself at any time if you have a compiler" && \ + echo "installation on your system." && \ + echo "See \"INSTALL\" for details on how to accomplish this." && \ + echo " " \ +) > INSTALL.bindist + +( echo "#!/bin/sh" && \ + echo "#" && \ + echo "# Usage: install-bindist.sh [ServerRoot]" && \ + echo "# This script installs the Apache binary distribution and" && \ + echo "# was automatically created by binbuild.sh." && \ + echo " " && \ + echo "if [ .\$1 = . ]" && \ + echo "then" && \ + echo " SR=/usr/local/apache" && \ + echo "else" && \ + echo " SR=\$1" && \ + echo "fi" && \ + echo "echo \"Installing binary distribution for platform $OS\"" && \ + echo "echo \"into directory \$SR ...\"" && \ + echo "./src/helpers/mkdir.sh \$SR" && \ + echo "cp -r bindist/proxy \$SR/proxy" && \ + echo "cp -r bindist/man \$SR/man" && \ + echo "cp -r bindist/logs \$SR/logs" && \ + echo "cp -r bindist/libexec \$SR/libexec" && \ + echo "cp -r bindist/include \$SR/include" && \ + echo "cp -r bindist/icons \$SR/icons" && \ + echo "cp -r bindist/cgi-bin \$SR/cgi-bin" && \ + echo "cp -r bindist/bin \$SR/bin" && \ + echo "if [ -d \$SR/conf ]" && \ + echo "then" && \ + echo " echo \"[Preserving existing configuration files.]\"" && \ + echo " cp -r bindist/conf/*.default \$SR/conf/" && \ + echo "else" && \ + echo " cp -r bindist/conf \$SR/conf" && \ + echo "fi" && \ + echo "if [ -d \$SR/htdocs ]" && \ + echo "then" && \ + echo " echo \"[Preserving existing htdocs directory.]\"" && \ + echo "else" && \ + echo " cp -r bindist/htdocs \$SR/htdocs" && \ + echo "fi" && \ + echo "sed -e s%/usr/local/apache%\$SR/% \$SR/conf/httpd.conf.default > \$SR/conf/httpd.conf" && \ + echo "sed -e s%PIDFILE=%PIDFILE=\$SR/% -e s%HTTPD=%HTTPD=\\\"\$SR/% -e \"s%/httpd$%/httpd -d \$SR\\\"%\" bindist/bin/apachectl > \$SR/bin/apachectl" && \ + echo " " && \ + echo "echo \"Ready.\"" && \ + echo "echo \" +--------------------------------------------------------+\"" && \ + echo "echo \" | You now have successfully installed the Apache $VER |\"" && \ + echo "echo \" | HTTP server. To verify that Apache actually works |\"" && \ + echo "echo \" | correctly you now should first check the (initially |\"" && \ + echo "echo \" | created or preserved) configuration files |\"" && \ + echo "echo \" | |\"" && \ + echo "echo \" | \$SR/conf/httpd.conf\"" && \ + echo "echo \" | |\"" && \ + echo "echo \" | and then you should be able to immediately fire up |\"" && \ + echo "echo \" | Apache the first time by running: |\"" && \ + echo "echo \" | |\"" && \ + echo "echo \" | \$SR/bin/apachectl start \"" &&\ + echo "echo \" | |\"" && \ + echo "echo \" | Thanks for using Apache. The Apache Group |\"" && \ + echo "echo \" | http://www.apache.org/ |\"" && \ + echo "echo \" +--------------------------------------------------------+\"" && \ + echo "echo \" \"" \ +) > install-bindist.sh +chmod 755 install-bindist.sh + +sed -e "s%\"/htdocs%\"/usr/local/apache/htdocs%" \ + -e "s%\"/icons%\"/usr/local/apache/icons%" \ + -e "s%\"/cgi-bin%\"/usr/local/apache/cgi-bin%" \ + -e "s%^ServerAdmin.*%ServerAdmin you@your.address%" \ + -e "s%#ServerName.*%#ServerName localhost%" \ + -e "s%Port 8080%Port 80%" \ + bindist/conf/httpd.conf.default > bindist/conf/httpd.conf +cp bindist/conf/httpd.conf bindist/conf/httpd.conf.default + +echo "Creating distribution archive and readme file..." + +if [ ".`grep -i error build.log > /dev/null`" != . ] +then + echo "ERROR: Failed to build Apache. See \"build.log\" for details." + exit 1; +else + if [ ".$GTAR" != . ] + then + $GTAR -zcf ../apache-$VER-$OS.tar.gz -C .. --owner=root --group=root apache-$VER + else + if [ ".$TAR" != . ] + then + $TAR -cf ../apache-$VER-$OS.tar -C .. apache-$VER + if [ ".$GZIP" != . ] + then + $GZIP ../apache-$VER-$OS.tar + fi + else + echo "ERROR: Could not find a 'tar' program!" + echo " Please execute the following commands manually:" + echo " tar -cf ../apache-$VER-$OS.tar ." + echo " gzip ../apache-$VER-$OS.tar" + fi + fi + + if [ -f ../apache-$VER-$OS.tar.gz ] && [ -f ../apache-$VER-$OS.README ] + then + echo "Ready." + echo "You can find the binary archive (apache-$VER-$OS.tar.gz)" + echo "and the readme file (apache-$VER-$OS.README) in the" + echo "parent directory." + exit 0; + else + exit 1; + fi +fi diff --git a/usr.sbin/httpd/src/helpers/findprg.sh b/usr.sbin/httpd/src/helpers/findprg.sh new file mode 100644 index 00000000000..8b2f391c976 --- /dev/null +++ b/usr.sbin/httpd/src/helpers/findprg.sh @@ -0,0 +1,24 @@ +#!/bin/sh +# +# Usage: findprg.sh <program-name> +# Return value is the absolute path of the program if it was found. +# Initially written by Lars Eilebrecht <lars@apache.org>. +# +# This script falls under the Apache License. +# See http://www.apache.org/docs/LICENSE + + +if [ ".`which $1`" != . ] +then + echo `which $1` + exit 0 +else + PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" + if [ ".`which $1`" != . ] + then + echo `which $1` + exit 0 + else + exit 1 + fi +fi diff --git a/usr.sbin/httpd/src/os/tpf/Makefile.tmpl b/usr.sbin/httpd/src/os/tpf/Makefile.tmpl new file mode 100644 index 00000000000..ad54c1b84a4 --- /dev/null +++ b/usr.sbin/httpd/src/os/tpf/Makefile.tmpl @@ -0,0 +1,41 @@ +CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS) +LIBS=$(EXTRA_LIBS) $(LIBS1) +INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES) +LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS) + +OBJS= os.o os-inline.o ebcdic.o + +LIB= libos.a + +all: $(LIB) + +$(LIB): $(OBJS) + rm -f $@ + ar cr $@ $(OBJS) + $(RANLIB) $@ + +.c.o: + $(CC) -c $(INCLUDES) $(CFLAGS) $(SPACER) $< + +clean: + rm -f $(OBJS) $(LIB) + +distclean: clean + -rm -f Makefile + +# We really don't expect end users to use this rule. It works only with +# gcc, and rebuilds Makefile.tmpl. You have to re-run Configure after +# using it. +depend: + cp Makefile.tmpl Makefile.tmpl.bak \ + && sed -ne '1,/^# DO NOT REMOVE/p' Makefile.tmpl > Makefile.new \ + && gcc -MM $(INCLUDES) $(CFLAGS) *.c >> Makefile.new \ + && sed -e '1,$$s: $(INCDIR)/: $$(INCDIR)/:g' Makefile.new \ + > Makefile.tmpl \ + && rm Makefile.new + +$(OBJS): Makefile +os.o: os.c os-inline.c +ebcdic.o: ebcdic.c +# DO NOT REMOVE +os.o: os.c diff --git a/usr.sbin/httpd/src/os/tpf/TPFExport b/usr.sbin/httpd/src/os/tpf/TPFExport new file mode 100644 index 00000000000..449ebf2f93a --- /dev/null +++ b/usr.sbin/httpd/src/os/tpf/TPFExport @@ -0,0 +1,7 @@ +#!/bin/sh +echo " Setting TPF/c89 environment variables" +export _C89_CCMODE=1 +# replace the following with the location of your TPF include files +export _C89_INCDIRS="/u/tpf41/currentmaint/include /u/tpf41/currentmaint/include/oco" +export TPF=YES +echo "Done" diff --git a/usr.sbin/httpd/src/os/tpf/ebcdic.c b/usr.sbin/httpd/src/os/tpf/ebcdic.c new file mode 100644 index 00000000000..be029f42597 --- /dev/null +++ b/usr.sbin/httpd/src/os/tpf/ebcdic.c @@ -0,0 +1,221 @@ +/* ==================================================================== + * Copyright (c) 1998-1999 The Apache Group. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the Apache Group + * for use in the Apache HTTP server project (http://www.apache.org/)." + * + * 4. The names "Apache Server" and "Apache Group" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the Apache Group + * for use in the Apache HTTP server project (http://www.apache.org/)." + * + * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Group and was originally based + * on public domain software written at the National Center for + * Supercomputing Applications, University of Illinois, Urbana-Champaign. + * For more information on the Apache Group and the Apache HTTP server + * project, please see <http://www.apache.org/>. + * + */ + + +#ifdef CHARSET_EBCDIC +#include "ap_config.h" +#include "ebcdic.h" +/* +This code does basic character mapping for IBM's TPF operating system. +It is a modified version of <Martin.Kraemer@Mch.SNI.De>'s code for +the BS2000 (apache/src/os/bs2000/ebcdic.c). +*/ + +/* +Bijective EBCDIC (character set IBM-1047) to US-ASCII table: +This table is bijective - there are no ambigous or duplicate characters. +*/ +const unsigned char os_toascii_strictly[256] = { + 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f, /* 00-0f: */ + 0x87, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */ + 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97, /* 10-1f: */ + 0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */ + 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b, /* 20-2f: */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* ................ */ + 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, /* 30-3f: */ + 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* ................ */ + 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /* 40-4f: */ + 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* ...........<(+| */ + 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /* 50-5f: */ + 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, /* &.........!$*);^ */ + 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /* 60-6f: */ + 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* -/.........,%_>? */ + 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /* 70-7f: */ + 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* .........`:#@'=" */ + 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 80-8f: */ + 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /* .abcdefghi...... */ + 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /* 90-9f: */ + 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /* .jklmnopqr...... */ + 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /* a0-af: */ + 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae, /* .~stuvwxyz...[.. */ + 0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /* b0-bf: */ + 0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7, /* .............].. */ + 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* c0-cf: */ + 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /* {ABCDEFGHI...... */ + 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* d0-df: */ + 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /* }JKLMNOPQR...... */ + 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* e0-ef: */ + 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /* \.STUVWXYZ...... */ + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* f0-ff: */ + 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f /* 0123456789...... */ +}; + +/* +Server EBCDIC (character set IBM-1047) to US-ASCII table: +This table is a copy of the os_toascii_strictly bijective table above. +The only change is that hex 0a (\012 octal) is mapped to hex 0a +(ASCII's line feed) instead of hex 8e. This is done because throughout +Apache, protocol string definitions hardcode the linefeed as \012 (octal): +"Content-Type: text/plain\015\012". Without this kludge all protocol +string definitions would need to be changed from ...\012 to ...\025. +*/ +const unsigned char os_toascii[256] = { + 0x00, 0x01, 0x02, 0x03, 0x85, 0x09, 0x86, 0x7f, /* 00-0f: */ + 0x87, 0x8d, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */ + 0x10, 0x11, 0x12, 0x13, 0x8f, 0x0a, 0x08, 0x97, /* 10-1f: */ + 0x18, 0x19, 0x9c, 0x9d, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */ + 0x80, 0x81, 0x82, 0x83, 0x84, 0x92, 0x17, 0x1b, /* 20-2f: */ + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* ................ */ + 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, /* 30-3f: */ + 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* ................ */ + 0x20, 0xa0, 0xe2, 0xe4, 0xe0, 0xe1, 0xe3, 0xe5, /* 40-4f: */ + 0xe7, 0xf1, 0xa2, 0x2e, 0x3c, 0x28, 0x2b, 0x7c, /* ...........<(+| */ + 0x26, 0xe9, 0xea, 0xeb, 0xe8, 0xed, 0xee, 0xef, /* 50-5f: */ + 0xec, 0xdf, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, /* &.........!$*);^ */ + 0x2d, 0x2f, 0xc2, 0xc4, 0xc0, 0xc1, 0xc3, 0xc5, /* 60-6f: */ + 0xc7, 0xd1, 0xa6, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* -/.........,%_>? */ + 0xf8, 0xc9, 0xca, 0xcb, 0xc8, 0xcd, 0xce, 0xcf, /* 70-7f: */ + 0xcc, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* .........`:#@'=" */ + 0xd8, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 80-8f: */ + 0x68, 0x69, 0xab, 0xbb, 0xf0, 0xfd, 0xfe, 0xb1, /* .abcdefghi...... */ + 0xb0, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /* 90-9f: */ + 0x71, 0x72, 0xaa, 0xba, 0xe6, 0xb8, 0xc6, 0xa4, /* .jklmnopqr...... */ + 0xb5, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /* a0-af: */ + 0x79, 0x7a, 0xa1, 0xbf, 0xd0, 0x5b, 0xde, 0xae, /* .~stuvwxyz...[.. */ + 0xac, 0xa3, 0xa5, 0xb7, 0xa9, 0xa7, 0xb6, 0xbc, /* b0-bf: */ + 0xbd, 0xbe, 0xdd, 0xa8, 0xaf, 0x5d, 0xb4, 0xd7, /* .............].. */ + 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* c0-cf: */ + 0x48, 0x49, 0xad, 0xf4, 0xf6, 0xf2, 0xf3, 0xf5, /* {ABCDEFGHI...... */ + 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* d0-df: */ + 0x51, 0x52, 0xb9, 0xfb, 0xfc, 0xf9, 0xfa, 0xff, /* }JKLMNOPQR...... */ + 0x5c, 0xf7, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* e0-ef: */ + 0x59, 0x5a, 0xb2, 0xd4, 0xd6, 0xd2, 0xd3, 0xd5, /* \.STUVWXYZ...... */ + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* f0-ff: */ + 0x38, 0x39, 0xb3, 0xdb, 0xdc, 0xd9, 0xda, 0x9f /* 0123456789...... */ +}; + +/* +The US-ASCII to EBCDIC (character set IBM-1047) table: +This table is bijective (no ambiguous or duplicate characters) +*/ +const unsigned char os_toebcdic[256] = { + 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, /* 00-0f: */ + 0x16, 0x05, 0x15, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* ................ */ + 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, /* 10-1f: */ + 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, /* ................ */ + 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, /* 20-2f: */ + 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, /* !"#$%&'()*+,-./ */ + 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 30-3f: */ + 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, /* 0123456789:;<=>? */ + 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 40-4f: */ + 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, /* @ABCDEFGHIJKLMNO */ + 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, /* 50-5f: */ + 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x5f, 0x6d, /* PQRSTUVWXYZ[\]^_ */ + 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 60-6f: */ + 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, /* `abcdefghijklmno */ + 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* 70-7f: */ + 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0xa1, 0x07, /* pqrstuvwxyz{|}~. */ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x04, 0x06, 0x08, /* 80-8f: */ + 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x14, /* ................ */ + 0x30, 0x31, 0x25, 0x33, 0x34, 0x35, 0x36, 0x17, /* 90-9f: */ + 0x38, 0x39, 0x3a, 0x3b, 0x1a, 0x1b, 0x3e, 0xff, /* ................ */ + 0x41, 0xaa, 0x4a, 0xb1, 0x9f, 0xb2, 0x6a, 0xb5, /* a0-af: */ + 0xbb, 0xb4, 0x9a, 0x8a, 0xb0, 0xca, 0xaf, 0xbc, /* ................ */ + 0x90, 0x8f, 0xea, 0xfa, 0xbe, 0xa0, 0xb6, 0xb3, /* b0-bf: */ + 0x9d, 0xda, 0x9b, 0x8b, 0xb7, 0xb8, 0xb9, 0xab, /* ................ */ + 0x64, 0x65, 0x62, 0x66, 0x63, 0x67, 0x9e, 0x68, /* c0-cf: */ + 0x74, 0x71, 0x72, 0x73, 0x78, 0x75, 0x76, 0x77, /* ................ */ + 0xac, 0x69, 0xed, 0xee, 0xeb, 0xef, 0xec, 0xbf, /* d0-df: */ + 0x80, 0xfd, 0xfe, 0xfb, 0xfc, 0xba, 0xae, 0x59, /* ................ */ + 0x44, 0x45, 0x42, 0x46, 0x43, 0x47, 0x9c, 0x48, /* e0-ef: */ + 0x54, 0x51, 0x52, 0x53, 0x58, 0x55, 0x56, 0x57, /* ................ */ + 0x8c, 0x49, 0xcd, 0xce, 0xcb, 0xcf, 0xcc, 0xe1, /* f0-ff: */ + 0x70, 0xdd, 0xde, 0xdb, 0xdc, 0x8d, 0x8e, 0xdf /* ................ */ +}; + +/* Translate a memory block from EBCDIC (host charset) to ASCII (net charset) + * dest and srce may be identical, or separate memory blocks, but + * should not overlap. + */ +void +ebcdic2ascii(void *dest, const void *srce, size_t count) +{ + unsigned char *udest = dest; + const unsigned char *usrce = srce; + while (count-- != 0) { + *udest++ = os_toascii[*usrce++]; + } +} +void +ebcdic2ascii_strictly(unsigned char *dest, const unsigned char *srce, size_t count) +{ + while (count-- != 0) { + *dest++ = os_toascii_strictly[*srce++]; + } +} +void +ascii2ebcdic(void *dest, const void *srce, size_t count) +{ + unsigned char *udest = dest; + const unsigned char *usrce = srce; + + while (count-- != 0) { + *udest++ = os_toebcdic[*usrce++]; + } +} +#endif /*CHARSET_EBCDIC*/ + diff --git a/usr.sbin/httpd/src/os/tpf/ebcdic.h b/usr.sbin/httpd/src/os/tpf/ebcdic.h new file mode 100644 index 00000000000..e9c4120e1a3 --- /dev/null +++ b/usr.sbin/httpd/src/os/tpf/ebcdic.h @@ -0,0 +1,8 @@ +#include <sys/types.h> + +extern const unsigned char os_toascii[256]; +extern const unsigned char os_toebcdic[256]; +void ebcdic2ascii(void *dest, const void *srce, size_t count); +void ebcdic2ascii_strictly(unsigned char *dest, const unsigned char *srce, size_t count); +void ascii2ebcdic(void *dest, const void *srce, size_t count); + diff --git a/usr.sbin/httpd/src/os/tpf/os-inline.c b/usr.sbin/httpd/src/os/tpf/os-inline.c new file mode 100644 index 00000000000..e58917af369 --- /dev/null +++ b/usr.sbin/httpd/src/os/tpf/os-inline.c @@ -0,0 +1,31 @@ +/* + * This file contains functions which can be inlined if the compiler + * has an "inline" modifier. Because of this, this file is both a + * header file and a compilable module. + * + * Only inlineable functions should be defined in here. They must all + * include the INLINE modifier. + * + * If the compiler supports inline, this file will be #included as a + * header file from os.h to create all the inline function + * definitions. INLINE will be defined to whatever is required on + * function definitions to make them inline declarations. + * + * If the compiler does not support inline, this file will be compiled + * as a normal C file into libos.a (along with os.c). In this case + * INLINE will _not_ be set so we can use this to test if we are + * compiling this source file. + */ + +#ifndef INLINE +#define INLINE + +/* Anything required only when compiling */ +#include "ap_config.h" + +#endif + +INLINE int ap_os_is_path_absolute(const char *file) +{ + return (file && file[0] == '/' ? 1 : 0); +} diff --git a/usr.sbin/httpd/src/os/tpf/os.c b/usr.sbin/httpd/src/os/tpf/os.c new file mode 100644 index 00000000000..aea4d961f4e --- /dev/null +++ b/usr.sbin/httpd/src/os/tpf/os.c @@ -0,0 +1,177 @@ +/* ==================================================================== + * Copyright (c) 1998-1999 The Apache Group. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * "This product includes software developed by the Apache Group + * for use in the Apache HTTP server project (http://www.apache.org/)." + * + * 4. The names "Apache Server" and "Apache Group" must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * apache@apache.org. + * + * 5. Products derived from this software may not be called "Apache" + * nor may "Apache" appear in their names without prior written + * permission of the Apache Group. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * "This product includes software developed by the Apache Group + * for use in the Apache HTTP server project (http://www.apache.org/)." + * + * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Group and was originally based + * on public domain software written at the National Center for + * Supercomputing Applications, University of Illinois, Urbana-Champaign. + * For more information on the Apache Group and the Apache HTTP server + * project, please see <http://www.apache.org/>. + * + */ + +/* + * This file will include OS specific functions which are not inlineable. + * Any inlineable functions should be defined in os-inline.c instead. + */ + +#include "httpd.h" +#include "http_core.h" +#include "os.h" + +/* Check the Content-Type to decide if conversion is needed */ +int ap_checkconv(struct request_rec *r) +{ + int convert_to_ascii; + const char *type; + + /* To make serving of "raw ASCII text" files easy (they serve faster + * since they don't have to be converted from EBCDIC), a new + * "magic" type prefix was invented: text/x-ascii-{plain,html,...} + * If we detect one of these content types here, we simply correct + * the type to the real text/{plain,html,...} type. Otherwise, we + * set a flag that translation is required later on. + */ + + type = (r->content_type == NULL) ? ap_default_type(r) : r->content_type; + + /* If no content type is set then treat it as (ebcdic) text/plain */ + convert_to_ascii = (type == NULL); + + /* Conversion is applied to text/ files only, if ever. */ + if (type && (strncasecmp(type, "text/", 5) == 0 || + strncasecmp(type, "message/", 8) == 0)) { + if (strncasecmp(type, ASCIITEXT_MAGIC_TYPE_PREFIX, + sizeof(ASCIITEXT_MAGIC_TYPE_PREFIX)-1) == 0) + r->content_type = ap_pstrcat(r->pool, "text/", + type+sizeof(ASCIITEXT_MAGIC_TYPE_PREFIX)-1, + NULL); + else + /* translate EBCDIC to ASCII */ + convert_to_ascii = 1; + } + /* Enable conversion if it's a text document */ + ap_bsetflag(r->connection->client, B_EBCDIC2ASCII, convert_to_ascii); + + return convert_to_ascii; +} + +int tpf_select(int maxfds, fd_set *reads, fd_set *writes, fd_set *excepts, struct timeval *tv) +{ + int sockets[24]; + int no_reads = 0; + int no_writes = 0; + int no_excepts = 0; + int timeout = 0; + int counter = 0; + int i; + fd_set *temp; + + if(maxfds) { + if(reads) + temp = reads; + else if(writes) + temp = writes; + else if(excepts) + temp = excepts; + else + temp = NULL; + + for(i=0; i<maxfds; i++) { + if(FD_ISSET(i,temp)) { + sockets[counter] = i; + counter++; + } + } + + if(tv) + timeout = tv->tv_sec * 1000 + tv->tv_usec; + + if(reads) + no_reads = counter; + else if(writes) + no_writes = counter; + else if(excepts) + no_excepts = counter; + } + return select(sockets, no_reads, no_writes, no_excepts, timeout); +} + +/* pipe is not yet available on TPF */ +int pipe(int fildes[2]) +{ + errno = ENOSYS; + return(-1); +} + +/* fork and exec functions are not defined on + TPF due to the implementation of tpf_fork() */ + +pid_t fork(void) +{ + errno = ENOSYS; + return(-1); +} + +int execl(const char *path, const char *arg0, ...) +{ + errno = ENOSYS; + return(-1); +} + +int execle(const char *path, const char *arg0, ...) +{ + errno = ENOSYS; + return(-1); +} + +int execve(const char *path, char *const argv[], char *const envp[]) +{ + errno = ENOSYS; + return(-1); +} diff --git a/usr.sbin/httpd/src/os/tpf/os.h b/usr.sbin/httpd/src/os/tpf/os.h new file mode 100644 index 00000000000..9a94bcc96c2 --- /dev/null +++ b/usr.sbin/httpd/src/os/tpf/os.h @@ -0,0 +1,111 @@ +#ifndef APACHE_OS_H +#define APACHE_OS_H + +#define PLATFORM "TPF" + +#ifdef errno +#undef errno +#endif + +/* + * This file in included in all Apache source code. It contains definitions + * of facilities available on _this_ operating system (HAVE_* macros), + * and prototypes of OS specific functions defined in os.c or os-inline.c + */ + +#include "ap_config.h" + +#if !defined(INLINE) && defined(USE_GNU_INLINE) +/* Compiler supports inline, so include the inlineable functions as + * part of the header + */ +#define INLINE extern ap_inline + +INLINE int ap_os_is_path_absolute(const char *file); + +#include "os-inline.c" +#endif + +#ifndef INLINE +/* Compiler does not support inline, so prototype the inlineable functions + * as normal + */ +extern int ap_os_is_path_absolute(const char *file); +#endif + +/* Other ap_os_ routines not used by this platform */ + +#define ap_os_is_filename_valid(f) (1) + +/* Sorry if this is ugly, but the include order doesn't allow me + * to use request_rec here... */ +struct request_rec; +extern int ap_checkconv(struct request_rec *r); + +#ifdef FD_SETSIZE +#undef FD_SETSIZE +#endif + +#define FD_SETSIZE 2048 + +#ifdef __FD_MASK +#undef __FD_MASK +#endif + +typedef long __FD_MASK; + +#ifdef __NBBY +#undef __NBBY +#endif + +#define __NBBY 8 /* number of bits in a byte */ + +#ifdef __NFDBITS +#undef __NFDBITS +#endif + +#define __NFDBITS (sizeof(__FD_MASK) * __NBBY) + +#ifndef __howmany +#define __howmany(x, y) (((x)+((y)-1))/(y)) +#endif + +typedef struct fd_set { + __FD_MASK fds_bits [__howmany(FD_SETSIZE, __NFDBITS)]; +} fd_set; + +#define FD_SET(n, p)((p)->fds_bits[(n)/__NFDBITS] |= (1 <<((n) % __NFDBITS))) + +#define FD_CLR(n, p)((p)->fds_bits[(n)/__NFDBITS] &= ~(1 << ((n) % __NFDBITS))) + +#define FD_ISSET(n, p)((p)->fds_bits[(n)/__NFDBITS] & (1 <<((n) % __NFDBITS))) + +#define FD_ZERO(p) memset((char *)(p), 0, sizeof(*(p))) + + +#define SIGPIPE 13 +#define SIGQUIT 24 +#define SO_KEEPALIVE 0x0008 + +/* TPF doesn't have, or need, tzset (it is used in mod_expires.c) */ +#define tzset() + +#include <stdarg.h> +#undef va_list +#undef va_start +#undef va_arg +#undef va_end + +typedef char *va_list; + +#define __va_promote(type) (((sizeof(type) + sizeof(int) - 1) \ + / sizeof(int)) * sizeof(int)) + +#define va_start(ap, last) (ap = ((char *)&(last) + __va_promote(last))) + +#define va_arg(ap, type) ((type *)(ap += sizeof(type) < sizeof(int) ? \ + (abort(), 0) : sizeof(type)))[-1] + +#define va_end(ap) + +#endif /*! APACHE_OS_H*/ diff --git a/usr.sbin/httpd/src/os/tpf/samples/linkdll.jcl b/usr.sbin/httpd/src/os/tpf/samples/linkdll.jcl new file mode 100644 index 00000000000..6bcd17c6b07 --- /dev/null +++ b/usr.sbin/httpd/src/os/tpf/samples/linkdll.jcl @@ -0,0 +1,121 @@ +//APACH JOB MSGLEVEL=(1,1),CLASS=A,MSGCLASS=A
+/*ROUTE PRINT XXXXXX.XXXXXX
+/*ROUTE PUNCH XXXXXX.XXXXXX
+/*NOTIFY XXXXXX.XXXXXX
+//CCLE JCLLIB ORDER=(SYS1.CBC.SCBCPRC,SYS1.CEE.SCEEPROC)
+//PRELINK EXEC EDCPL,COND.LKED=(0,NE),
+// PPARM='OMVS,DLLNAME(pppp)',
+// LREGSIZ='2048K',
+// LPARM='AMODE=31,RMODE=ANY,LIST,XREF'
+//PLKED.SYSLIB DD DISP=SHR,DSN=FSE0000.DEVP.STUB.OB
+// DD DISP=SHR,DSN=FSE0000.DEVP.CLIB.OB
+// DD DISP=SHR,DSN=ACP.CLIB.RLSE46.WEB
+// DD DISP=SHR,DSN=ACP.STUB.RLSE46.WEB
+// DD DISP=SHR,DSN=ACP.CLIB.RLSE40
+// DD DISP=SHR,DSN=ACP.STUB.RLSE40
+//PLKED.SYSDEFSD DD DSN=APA0000.DEVP.IMPORTS.DSD(ppppvv),DISP=SHR
+//PLKED.DSD DD DSN=APA0000.DEVP.IMPORTS.DSD,DISP=SHR
+//PLKED.OBJLIB DD DISP=SHR,DSN=FSE0000.DEVP.TEST.OB
+// DD DISP=SHR,DSN=ACP.OBJ.RLSE46.WEB
+// DD DISP=SHR,DSN=ACP.OBJ.INTG98.NBS
+// DD DISP=SHR,DSN=ACP.MAIN.SYST.OBBSS
+// DD DISP=SHR,DSN=ACP.DF.MAIN.SYST.OBBSS
+// DD DISP=SHR,DSN=ACP.OBJ.RLSE40.BSS
+//PLKED.OBJ1 DD PATH='/usr/local/apache/src/ap/ap_cpystrn.o'
+//PLKED.OBJ2 DD PATH='/usr/local/apache/src/ap/ap_execve.o'
+//PLKED.OBJ3 DD PATH='/usr/local/apache/src/ap/ap_signal.o'
+//PLKED.OBJ4 DD PATH='/usr/local/apache/src/ap/ap_slack.o'
+//PLKED.OBJ5 DD PATH='/usr/local/apache/src/ap/ap_snprintf.o'
+//PLKED.OBJ6 DD PATH='/usr/local/apache/src/ap/ap_strings.o'
+//PLKED.OBJ7 DD PATH='/usr/local/apache/src/os/tpf/ebcdic.o'
+//PLKED.OBJ8 DD PATH='/usr/local/apache/src/os/tpf/os.o'
+//PLKED.OBJ9 DD PATH='/usr/local/apache/src/os/tpf/os-inline.o'
+//PLKED.OBJ10 DD PATH='/usr/local/apache/src/regex/regcomp.o'
+//PLKED.OBJ11 DD PATH='/usr/local/apache/src/regex/regerror.o'
+//PLKED.OBJ12 DD PATH='/usr/local/apache/src/regex/regexec.o'
+//PLKED.OBJ13 DD PATH='/usr/local/apache/src/regex/regfree.o'
+//PLKED.OBJ14 DD PATH='/usr/local/apache/src/main/alloc.o'
+//PLKED.OBJ15 DD PATH='/usr/local/apache/src/main/buff.o'
+//PLKED.OBJ16 DD PATH='/usr/local/apache/src/main/fnmatch.o'
+//PLKED.OBJ17 DD PATH='/usr/local/apache/src/main/http_config.o'
+//PLKED.OBJ18 DD PATH='/usr/local/apache/src/main/http_core.o'
+//PLKED.OBJ19 DD PATH='/usr/local/apache/src/main/http_log.o'
+//PLKED.OBJ20 DD PATH='/usr/local/apache/src/main/http_main.o'
+//PLKED.OBJ21 DD PATH='/usr/local/apache/src/main/http_protocol.o'
+//PLKED.OBJ22 DD PATH='/usr/local/apache/src/main/http_request.o'
+//PLKED.OBJ23 DD PATH='/usr/local/apache/src/main/http_vhost.o'
+//PLKED.OBJ24 DD PATH='/usr/local/apache/src/main/md5c.o'
+//PLKED.OBJ25 DD PATH='/usr/local/apache/src/main/rfc1413.o'
+//PLKED.OBJ26 DD PATH='/usr/local/apache/src/main/util.o'
+//PLKED.OBJ27 DD PATH='/usr/local/apache/src/main/util_date.o'
+//PLKED.OBJ28 DD PATH='/usr/local/apache/src/main/util_md5.o'
+//PLKED.OBJ29 DD PATH='/usr/local/apache/src/main/util_script.o'
+//PLKED.OBJ30 DD PATH='/usr/local/apache/src/main/util_uri.o'
+//PLKED.OBJ31 DD PATH='/usr/local/apache/src/modules.o'
+//PLKED.OBJ32 DD PATH='/usr/local/apache/src/buildmark.o'
+//PLKED.OBJ33 DD PATH='/usr/local/apache/src/modules/standard/mod_auto\
+// index.o'
+//PLKED.OBJ34 DD PATH='/usr/local/apache/src/modules/standard/mod_dir.\
+// o'
+//PLKED.OBJ35 DD PATH='/usr/local/apache/src/modules/standard/mod_mime\
+// .o'
+//PLKED.OBJ36 DD PATH='/usr/local/apache/src/modules/standard/mod_sete\
+// nvif.o'
+//PLKED.OBJ37 DD PATH='/usr/local/apache/src/modules/standard/mod_alia\
+// s.o'
+//PLKED.OBJ38 DD PATH='/usr/local/apache/src/modules/standard/mod_acce\
+// ss.o'
+//PLKED.OBJ39 DD PATH='/usr/local/apache/src/modules/standard/mod_user\
+// dir.o'
+//PLKED.OBJ40 DD PATH='/usr/local/apache/src/modules/standard/mod_spel\
+// ing.o'
+//PLKED.OBJ41 DD PATH='/usr/local/apache/src/modules/standard/mod_nego\
+// tiation.o'
+//PLKED.SYSIN DD *
+ ORDER @@DLMHDR
+ INCLUDE OBJLIB(CSTRTD40)
+ INCLUDE OBJ1
+ INCLUDE OBJ2
+ INCLUDE OBJ3
+ INCLUDE OBJ4
+ INCLUDE OBJ5
+ INCLUDE OBJ6
+ INCLUDE OBJ7
+ INCLUDE OBJ8
+ INCLUDE OBJ9
+ INCLUDE OBJ10
+ INCLUDE OBJ11
+ INCLUDE OBJ12
+ INCLUDE OBJ13
+ INCLUDE OBJ14
+ INCLUDE OBJ15
+ INCLUDE OBJ16
+ INCLUDE OBJ17
+ INCLUDE OBJ18
+ INCLUDE OBJ19
+ INCLUDE OBJ20
+ INCLUDE OBJ21
+ INCLUDE OBJ22
+ INCLUDE OBJ23
+ INCLUDE OBJ24
+ INCLUDE OBJ25
+ INCLUDE OBJ26
+ INCLUDE OBJ27
+ INCLUDE OBJ28
+ INCLUDE OBJ29
+ INCLUDE OBJ30
+ INCLUDE OBJ31
+ INCLUDE OBJ32
+ INCLUDE OBJ33
+ INCLUDE OBJ34
+ INCLUDE OBJ35
+ INCLUDE OBJ36
+ INCLUDE OBJ37
+ INCLUDE OBJ38
+ INCLUDE OBJ39
+ INCLUDE OBJ40
+ INCLUDE OBJ41
+/*
+//*** WARNING *** NEVER change .LK to .OB in SYSLMOD!!!
+//LKED.SYSLMOD DD DISP=OLD,DSN=xxxxxx.xxxx(ppppvv)
+//
diff --git a/usr.sbin/httpd/src/os/tpf/samples/loadset.jcl b/usr.sbin/httpd/src/os/tpf/samples/loadset.jcl new file mode 100644 index 00000000000..c0134d4cb82 --- /dev/null +++ b/usr.sbin/httpd/src/os/tpf/samples/loadset.jcl @@ -0,0 +1,58 @@ +//OLDRWEB JOB MSGLEVEL=1,CLASS=A,MSGCLASS=S
+//JOBCAT DD DSN=ICFCAT.ESAWK2,DISP=SHR
+/*ROUTE PRINT xxxxxx.xxxxxxx
+/*ROUTE PUNCH xxxxxx.xxxxxxx
+//TLDR EXEC PGM=TPFLDRCA,REGION=8M,
+// PARM='OLDR,SYS=ACP,CLMSIZE=8000000'
+//STEPLIB DD DSN=ACP.LINK.RLSE46.WEB,DISP=SHR
+// DD DSN=ACP.LINK.RLSE40.BSS,DISP=SHR
+// DD DSN=VIS0000.DEVP.TEST.LK,DISP=SHR
+// DD DSN=SYS1.CEE.SCEERUN,DISP=SHR
+//SALTB DD DSN=ACP.SALTBL.RLSE46.WEB,DISP=SHR
+// DD DSN=ACP.SALTBL.INTG46.WEB,DISP=SHR
+//OBJLIB DD DSN=FSE0000.DEVP.TEST.OB,DISP=SHR
+// DD DSN=APA0000.DEVP.TEST.OB,DISP=SHR
+// DD DSN=ACP.DRVE.TEST.OB,DISP=SHR
+// DD DSN=ACP.OBJ.RLSE46.WEB,DISP=SHR
+// DD DSN=ACP.OBJ.INTG36.DRV,DISP=SHR
+// DD DSN=ACP.OBJ.INTG46.WEB,DISP=SHR
+// DD DSN=ACP.OBJ.INTG40.BSS,DISP=SHR
+//LOADMOD DD DSN=FSE0000.DEVP.TEST.LK,DISP=SHR
+// DD DSN=APA0000.DEVP.TEST.LK,DISP=SHR
+// DD DSN=CWEISS.LINK,DISP=SHR
+// DD DSN=ACP.DRVE.TEST.LK,DISP=SHR
+// DD DSN=ACP.LINK.RLSE46.WEB,DISP=SHR
+// DD DSN=ACP.LINK.INTG98.NBS,DISP=SHR
+// DD DSN=ACP.LINK.INTG46.WEB,DISP=SHR
+// DD DSN=ACP.LINK.INTG36.DRV,DISP=SHR
+// DD DSN=ACP.LINK.INTG40.BSS,DISP=SHR
+//LOADSUM DD DSN=&&LOADSUM,DISP=(NEW,PASS),UNIT=SYSDA,
+// LRECL=133,SPACE=(TRK,(10,10)),RECFM=FBA
+//CPRTEMP DD UNIT=SYSDA,
+// DSN=&&CPRTEMP,SPACE=(TRK,(100,20)),
+// DCB=(RECFM=FB,BLKSIZE=4095,LRECL=4095),
+// DISP=(NEW,DELETE)
+//PROGTEMP DD UNIT=SYSDA,
+// DSN=&&PRTEMP,SPACE=(TRK,(100,20)),
+// DCB=(RECFM=FB,BLKSIZE=4095,LRECL=4095),
+// DISP=(NEW,DELETE)
+//OUTPUT DD DSN=&&VRDROUT,DISP=(NEW,PASS),UNIT=SYSDA,
+// DCB=(RECFM=F,BLKSIZE=4095,LRECL=4095)
+//SYSUDUMP DD DUMMY
+//SYSABEND DD DUMMY
+//SYSOUT DD SYSOUT=A
+//SYSPRINT DD SYSOUT=A
+//PRINTER DD SYSOUT=A
+//CEEDUMP DD SYSOUT=A
+//SYSIN DD *
+SYSID=BSS
+PATVERS=NONE
+SALVERS=40
+LOADER LOADSET lllllll
+LOADER CALL PROG ppppvv
+/*
+//TRANSMIT EXEC PGM=IKJEFT01,
+// PARM='TRANSMIT xxxxxx.xxxxxx DDNAME(SYSTSIN) NOLOG NONOTIFY SEQ'
+//SYSTSIN DD UNIT=SYSDA,
+// DSN=&&VRDROUT,DISP=(OLD,DELETE)
+//SYSTSPRT DD DUMMY
|