summaryrefslogtreecommitdiff
path: root/usr.sbin/httpd
diff options
context:
space:
mode:
authorHenning Brauer <henning@cvs.openbsd.org>2004-12-02 21:35:50 +0000
committerHenning Brauer <henning@cvs.openbsd.org>2004-12-02 21:35:50 +0000
commit10ab58e6b1c9afbd1da1d2f17288d7b4cc7f35df (patch)
tree008826d95aae581a2fa1091d1e15bcf50c4ffe0a /usr.sbin/httpd
parent2e6917edd9a469ad247efb00d442fd4d7be8d19c (diff)
king bula sez: in Attic/ you shall rot
Diffstat (limited to 'usr.sbin/httpd')
-rw-r--r--usr.sbin/httpd/src/os/.indent.pro54
-rw-r--r--usr.sbin/httpd/src/os/bs2000/Makefile.tmpl84
-rw-r--r--usr.sbin/httpd/src/os/bs2000/bs2login.c297
-rw-r--r--usr.sbin/httpd/src/os/bs2000/ebcdic.h6
-rw-r--r--usr.sbin/httpd/src/os/bs2000/os-inline.c31
-rw-r--r--usr.sbin/httpd/src/os/bs2000/os.c70
-rw-r--r--usr.sbin/httpd/src/os/bs2000/os.h63
-rw-r--r--usr.sbin/httpd/src/os/cygwin/Makefile.tmpl46
-rw-r--r--usr.sbin/httpd/src/os/cygwin/os-inline.c31
-rw-r--r--usr.sbin/httpd/src/os/cygwin/os.c46
-rw-r--r--usr.sbin/httpd/src/os/cygwin/os.h181
-rw-r--r--usr.sbin/httpd/src/os/mpeix/Makefile.tmpl49
-rw-r--r--usr.sbin/httpd/src/os/mpeix/README274
-rw-r--r--usr.sbin/httpd/src/os/mpeix/dlopen.c224
-rw-r--r--usr.sbin/httpd/src/os/mpeix/gettimeofday.c116
-rw-r--r--usr.sbin/httpd/src/os/mpeix/mpe_dl_stub.c1
-rw-r--r--usr.sbin/httpd/src/os/mpeix/os-inline.c31
-rw-r--r--usr.sbin/httpd/src/os/mpeix/os.c1
-rw-r--r--usr.sbin/httpd/src/os/mpeix/os.h148
-rw-r--r--usr.sbin/httpd/src/os/netware/Apache.def4
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheCore.imp425
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheCoreNW.def8
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleAuthAnon.def2
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleAuthDBM.def2
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleCERNMeta.def1
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleDigest.def1
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleExpires.def1
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleHeaders.def1
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleInfo.def2
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleProxy.def1
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleRewrite.def1
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleSpeling.def2
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleStatus.def1
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleTLS.def3
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleUniqueID.def1
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleUserTrack.def1
-rw-r--r--usr.sbin/httpd/src/os/netware/ApacheModuleVhostAlias.def1
-rw-r--r--usr.sbin/httpd/src/os/netware/apache.xdcbin128 -> 0 bytes
-rw-r--r--usr.sbin/httpd/src/os/netware/getopt.c161
-rw-r--r--usr.sbin/httpd/src/os/netware/getopt.h10
-rw-r--r--usr.sbin/httpd/src/os/netware/libpre.c31
-rw-r--r--usr.sbin/httpd/src/os/netware/libprews.c36
-rw-r--r--usr.sbin/httpd/src/os/netware/main_nlm.c10
-rw-r--r--usr.sbin/httpd/src/os/netware/mod_log_nw.c1298
-rw-r--r--usr.sbin/httpd/src/os/netware/mod_nlm.c149
-rw-r--r--usr.sbin/httpd/src/os/netware/mod_tls.c416
-rw-r--r--usr.sbin/httpd/src/os/netware/modules.c70
-rw-r--r--usr.sbin/httpd/src/os/netware/multithread.c104
-rw-r--r--usr.sbin/httpd/src/os/netware/os.c509
-rw-r--r--usr.sbin/httpd/src/os/netware/os.h191
-rw-r--r--usr.sbin/httpd/src/os/netware/precomp.h11
-rw-r--r--usr.sbin/httpd/src/os/netware/test_char.h42
-rw-r--r--usr.sbin/httpd/src/os/netware/uri_delims.h16
-rw-r--r--usr.sbin/httpd/src/os/os2/Makefile.tmpl57
-rw-r--r--usr.sbin/httpd/src/os/os2/os-inline.c34
-rw-r--r--usr.sbin/httpd/src/os/os2/os.c63
-rw-r--r--usr.sbin/httpd/src/os/os2/os.h61
-rw-r--r--usr.sbin/httpd/src/os/os2/util_os2.c154
-rw-r--r--usr.sbin/httpd/src/os/os390/Makefile.tmpl64
-rw-r--r--usr.sbin/httpd/src/os/os390/README.os39086
-rw-r--r--usr.sbin/httpd/src/os/os390/ebcdic.h6
-rw-r--r--usr.sbin/httpd/src/os/os390/os-inline.c31
-rw-r--r--usr.sbin/httpd/src/os/os390/os.c67
-rw-r--r--usr.sbin/httpd/src/os/os390/os.h35
-rw-r--r--usr.sbin/httpd/src/os/os390/xebcdic.sh202
-rw-r--r--usr.sbin/httpd/src/os/tpf/Makefile.tmpl41
-rw-r--r--usr.sbin/httpd/src/os/tpf/TPFExport10
-rw-r--r--usr.sbin/httpd/src/os/tpf/cgetop.c147
-rw-r--r--usr.sbin/httpd/src/os/tpf/ebcdic.h6
-rw-r--r--usr.sbin/httpd/src/os/tpf/os-inline.c31
-rw-r--r--usr.sbin/httpd/src/os/tpf/os.c862
-rw-r--r--usr.sbin/httpd/src/os/tpf/os.h231
-rw-r--r--usr.sbin/httpd/src/os/win32/ApacheOS.dsp89
-rw-r--r--usr.sbin/httpd/src/os/win32/ApacheOS.mak184
-rw-r--r--usr.sbin/httpd/src/os/win32/BaseAddr.ref31
-rw-r--r--usr.sbin/httpd/src/os/win32/MakeModuleMak.cpp59
-rw-r--r--usr.sbin/httpd/src/os/win32/Module.mak.tmpl230
-rw-r--r--usr.sbin/httpd/src/os/win32/Win9xConHook.c739
-rw-r--r--usr.sbin/httpd/src/os/win32/Win9xConHook.def10
-rw-r--r--usr.sbin/httpd/src/os/win32/Win9xConHook.dsp103
-rw-r--r--usr.sbin/httpd/src/os/win32/Win9xConHook.h99
-rw-r--r--usr.sbin/httpd/src/os/win32/Win9xConHook.mak198
-rw-r--r--usr.sbin/httpd/src/os/win32/apache.icobin1078 -> 0 bytes
-rw-r--r--usr.sbin/httpd/src/os/win32/apache.rc84
-rw-r--r--usr.sbin/httpd/src/os/win32/getopt.c231
-rw-r--r--usr.sbin/httpd/src/os/win32/getopt.h73
-rw-r--r--usr.sbin/httpd/src/os/win32/main_win32.c78
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_auth_anon.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_auth_anon.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_auth_dbm.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_auth_dbm.mak274
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_auth_digest.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_auth_digest.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_cern_meta.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_cern_meta.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_digest.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_digest.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_expires.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_expires.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_headers.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_headers.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_info.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_info.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_isapi.c933
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_mime_magic.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_mime_magic.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_proxy.dsp127
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_proxy.mak295
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_rewrite.dsp99
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_rewrite.mak255
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_speling.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_speling.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_status.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_status.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_unique_id.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_unique_id.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_usertrack.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_usertrack.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_vhost_alias.dsp95
-rw-r--r--usr.sbin/httpd/src/os/win32/mod_vhost_alias.mak246
-rw-r--r--usr.sbin/httpd/src/os/win32/modules.c134
-rw-r--r--usr.sbin/httpd/src/os/win32/monitoring-services.txt94
-rw-r--r--usr.sbin/httpd/src/os/win32/multithread.c315
-rw-r--r--usr.sbin/httpd/src/os/win32/os.c336
-rw-r--r--usr.sbin/httpd/src/os/win32/os.h235
-rw-r--r--usr.sbin/httpd/src/os/win32/passwd.c79
-rw-r--r--usr.sbin/httpd/src/os/win32/passwd.h75
-rw-r--r--usr.sbin/httpd/src/os/win32/readdir.c142
-rw-r--r--usr.sbin/httpd/src/os/win32/readdir.h103
-rw-r--r--usr.sbin/httpd/src/os/win32/registry.c610
-rw-r--r--usr.sbin/httpd/src/os/win32/registry.h75
-rw-r--r--usr.sbin/httpd/src/os/win32/resource.h17
-rw-r--r--usr.sbin/httpd/src/os/win32/service.c1525
-rw-r--r--usr.sbin/httpd/src/os/win32/service.h96
-rw-r--r--usr.sbin/httpd/src/os/win32/util_win32.c572
135 files changed, 0 insertions, 20580 deletions
diff --git a/usr.sbin/httpd/src/os/.indent.pro b/usr.sbin/httpd/src/os/.indent.pro
deleted file mode 100644
index a9fbe9f9a1f..00000000000
--- a/usr.sbin/httpd/src/os/.indent.pro
+++ /dev/null
@@ -1,54 +0,0 @@
--i4 -npsl -di0 -br -nce -d0 -cli0 -npcs -nfc1
--TBUFF
--TFILE
--TTRANS
--TUINT4
--T_trans
--Tallow_options_t
--Tapache_sfio
--Tarray_header
--Tbool_int
--Tbuf_area
--Tbuff_struct
--Tbuffy
--Tcmd_how
--Tcmd_parms
--Tcommand_rec
--Tcommand_struct
--Tconn_rec
--Tcore_dir_config
--Tcore_server_config
--Tdir_maker_func
--Tevent
--Tglobals_s
--Thandler_func
--Thandler_rec
--Tjoblist_s
--Tlisten_rec
--Tmerger_func
--Tmode_t
--Tmodule
--Tmodule_struct
--Tmutex
--Tn_long
--Tother_child_rec
--Toverrides_t
--Tparent_score
--Tpid_t
--Tpiped_log
--Tpool
--Trequest_rec
--Trequire_line
--Trlim_t
--Tscoreboard
--Tsemaphore
--Tserver_addr_rec
--Tserver_rec
--Tserver_rec_chain
--Tshort_score
--Ttable
--Ttable_entry
--Tthread
--Tu_wide_int
--Tvtime_t
--Twide_int
diff --git a/usr.sbin/httpd/src/os/bs2000/Makefile.tmpl b/usr.sbin/httpd/src/os/bs2000/Makefile.tmpl
deleted file mode 100644
index 4d6c1ca21d8..00000000000
--- a/usr.sbin/httpd/src/os/bs2000/Makefile.tmpl
+++ /dev/null
@@ -1,84 +0,0 @@
-CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
-LIBS=$(EXTRA_LIBS) $(LIBS1)
-INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
-LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
-
-OBJS= os.o os-inline.o bs2login.o
-
-LIB= libos.a
-
-all: $(LIB)
-
-$(LIB): $(OBJS)
- rm -f $@
- ar cr $@ $(OBJS)
- $(RANLIB) $@
-
-.c.o:
- $(CC) -c $(INCLUDES) $(CFLAGS) $<
-
-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' \
- -e '1,$$s: $(OSDIR)/: $$(OSDIR)/:g' Makefile.new \
- > Makefile.tmpl \
- && rm Makefile.new
-
-$(OBJS): Makefile
-
-# DO NOT REMOVE
-bs2login.o: bs2login.c
-bs2login.o: $(INCDIR)/httpd.h
-bs2login.o: $(INCDIR)/ap_config.h
-bs2login.o: $(INCDIR)/ap_mmn.h
-bs2login.o: $(INCDIR)/ap_config_auto.h
-bs2login.o: os.h
-bs2login.o: $(INCDIR)/ap_ctype.h
-bs2login.o: $(INCDIR)/hsregex.h
-bs2login.o: $(INCDIR)/ap_alloc.h
-bs2login.o: $(INCDIR)/buff.h
-bs2login.o: $(INCDIR)/ap.h
-bs2login.o: ebcdic.h
-bs2login.o: $(INCDIR)/util_uri.h
-bs2login.o: $(INCDIR)/http_config.h
-bs2login.o: $(INCDIR)/http_log.h
-ebcdic.o: ebcdic.c
-ebcdic.o: $(INCDIR)/ap_config.h
-ebcdic.o: $(INCDIR)/ap_mmn.h
-ebcdic.o: $(INCDIR)/ap_config_auto.h
-ebcdic.o: os.h
-ebcdic.o: $(INCDIR)/ap_ctype.h
-ebcdic.o: $(INCDIR)/hsregex.h
-ebcdic.o: ebcdic.h
-os-inline.o: os-inline.c
-os-inline.o: $(INCDIR)/ap_config.h
-os-inline.o: $(INCDIR)/ap_mmn.h
-os-inline.o: $(INCDIR)/ap_config_auto.h
-os-inline.o: os.h
-os-inline.o: $(INCDIR)/ap_ctype.h
-os-inline.o: $(INCDIR)/hsregex.h
-os.o: os.c
-os.o: $(INCDIR)/httpd.h
-os.o: $(INCDIR)/ap_config.h
-os.o: $(INCDIR)/ap_mmn.h
-os.o: $(INCDIR)/ap_config_auto.h
-os.o: os.h
-os.o: $(INCDIR)/ap_ctype.h
-os.o: $(INCDIR)/hsregex.h
-os.o: $(INCDIR)/ap_alloc.h
-os.o: $(INCDIR)/buff.h
-os.o: $(INCDIR)/ap.h
-os.o: ebcdic.h
-os.o: $(INCDIR)/util_uri.h
-os.o: $(INCDIR)/http_core.h
diff --git a/usr.sbin/httpd/src/os/bs2000/bs2login.c b/usr.sbin/httpd/src/os/bs2000/bs2login.c
deleted file mode 100644
index 2a98082164f..00000000000
--- a/usr.sbin/httpd/src/os/bs2000/bs2login.c
+++ /dev/null
@@ -1,297 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifdef _OSD_POSIX
-#include "httpd.h"
-#include "http_config.h"
-#include "http_log.h"
-#include <ctype.h>
-#include <sys/utsname.h>
-
-#define ACCT_LEN 8
-#define USER_LEN 8
-
-static const char *bs2000_account = NULL;
-typedef enum
-{
- bs2_unknown, /* not initialized yet. */
- bs2_noFORK, /* no fork() because -X flag was specified */
- bs2_FORK, /* only fork() because uid != 0 */
- bs2_FORK_RINI, /* prior to A17, regular fork() and _rini() was used. */
- bs2_RFORK_RINI, /* for A17, use of _rfork() and _rini() was required */
- bs2_UFORK /* As of A18, the new ufork() is used. */
-} bs2_ForkType;
-
-static bs2_ForkType forktype = bs2_unknown;
-
-
-static void ap_pad(char *dest, size_t size, char ch)
-{
- int i = strlen(dest); /* Leave space for trailing '\0' */
-
- while (i < size-1)
- dest[i++] = ch;
-
- dest[size-1] = '\0'; /* Guarantee for trailing '\0' */
-}
-
-static void ap_str_toupper(char *str)
-{
- while (*str) {
- *str = ap_toupper(*str);
- ++str;
- }
-}
-
-/* Determine the method for forking off a child in such a way as to
- * set both the POSIX and BS2000 user id's to the unprivileged user.
- */
-static bs2_ForkType os_forktype(void)
-{
- struct utsname os_version;
-
- /* have we checked the OS version before? If yes return the previous
- * result - the OS release isn't going to change suddenly!
- */
- if (forktype != bs2_unknown) {
- return forktype;
- }
-
- /* If the user is unprivileged, use the normal fork() only. */
- if (getuid() != 0) {
- return forktype = bs2_FORK;
- }
-
- if (uname(&os_version) < 0)
- {
- ap_log_error(APLOG_MARK, APLOG_ALERT, NULL,
- "uname() failed - aborting.");
- exit(APEXIT_CHILDFATAL);
- }
-
- /*
- * Old BS2000/OSD versions (before XPG4 SPEC1170) don't work with Apache.
- * Anyway, simply return a fork().
- */
- if (strcmp(os_version.release, "01.0A") == 0 ||
- strcmp(os_version.release, "02.0A") == 0 ||
- strcmp(os_version.release, "02.1A") == 0)
- {
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, NULL,
- "Error: unsupported OS version. "
- "You may encounter problems.");
- forktype = bs2_FORK;
- }
-
- /* The following versions are special:
- * OS versions before A17 needs regular fork() and _rini().
- * A17 requires _rfork() and _rini(),
- * and later versions need ufork().
- */
- else if (strcmp(os_version.release, "01.1A") == 0 ||
- strcmp(os_version.release, "03.0A") == 0 ||
- strcmp(os_version.release, "03.1A") == 0 ||
- strcmp(os_version.release, "04.0A") == 0)
- {
- if (strcmp (os_version.version, "A18") >= 0)
- forktype = bs2_UFORK;
-
- else if (strcmp (os_version.version, "A17") < 0)
- forktype = bs2_FORK_RINI;
-
- else
- forktype = bs2_RFORK_RINI;
- }
-
- /* All later OS versions will hopefully use ufork() only ;-) */
- else
- forktype = bs2_UFORK;
-
- return forktype;
-}
-
-
-
-/* This routine is called by http_core for the BS2000Account directive */
-/* It stores the account name for later use */
-const char *os_set_account(pool *p, const char *account)
-{
- char account_temp[ACCT_LEN+1];
-
- ap_cpystrn(account_temp, account, sizeof account_temp);
-
- /* Make account all upper case */
- ap_str_toupper(account_temp);
-
- /* Pad to length 8 */
- ap_pad(account_temp, sizeof account_temp, ' ');
-
- bs2000_account = ap_pstrdup(p, account_temp);
- return NULL;
-}
-
-/* This routine complements the setuid() call: it causes the BS2000 job
- * environment to be switched to the target user's user id.
- * That is important if CGI scripts try to execute native BS2000 commands.
- */
-int os_init_job_environment(server_rec *server, const char *user_name, int one_process)
-{
- _rini_struct inittask;
- char username[USER_LEN+1];
- bs2_ForkType type = os_forktype();
-
- /* We can be sure that no change to uid==0 is possible because of
- * the checks in http_core.c:set_user()
- */
-
- /* The _rini() function works only after a prior _rfork().
- * In the case of one_process, it would fail.
- */
- if (one_process) {
-
- type = forktype = bs2_noFORK;
-
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, server,
- "The debug mode of Apache should only "
- "be started by an unprivileged user!");
- return 0;
- }
-
- /* If no _rini() is required, then return quickly. */
- if (type != bs2_RFORK_RINI && type != bs2_FORK_RINI)
- return 0;
-
- /* An Account is required for _rini() */
- if (bs2000_account == NULL)
- {
- ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, server,
- "No BS2000Account configured - cannot switch to User %s",
- user_name);
- exit(APEXIT_CHILDFATAL);
- }
-
- ap_cpystrn(username, user_name, sizeof username);
-
- /* Make user name all upper case */
- ap_str_toupper(username);
-
- /* Pad to length 8 */
- ap_pad(username, sizeof username, ' ');
-
- inittask.username = username;
- inittask.account = bs2000_account;
- inittask.processor_name = " ";
-
- /* Switch to the new logon user (setuid() and setgid() are done later) */
- /* Only the super user can switch identities. */
- if (_rini(&inittask) != 0) {
-
- ap_log_error(APLOG_MARK, APLOG_ALERT, server,
- "_rini: BS2000 auth failed for user \"%s\" acct \"%s\"",
- inittask.username, inittask.account);
-
- exit(APEXIT_CHILDFATAL);
- }
-
- return 0;
-}
-
-/* BS2000 requires a "special" version of fork() before a setuid()/_rini() call */
-pid_t os_fork(const char *user)
-{
- pid_t pid;
- char username[USER_LEN+1];
-
- switch (os_forktype()) {
- case bs2_FORK:
- case bs2_FORK_RINI:
- pid = fork();
- break;
-
- case bs2_RFORK_RINI:
- pid = _rfork();
- break;
-
- case bs2_UFORK:
- ap_cpystrn(username, user, sizeof username);
-
- /* Make user name all upper case - for some versions of ufork() */
- ap_str_toupper(username);
-
- pid = ufork(username);
- if (pid == -1 && errno == EPERM) {
- ap_log_error(APLOG_MARK, APLOG_EMERG,
- NULL, "ufork: Possible mis-configuration "
- "for user %s - Aborting.", user);
- exit(1);
- }
- break;
-
- default:
- pid = 0;
- break;
- }
-
- return pid;
-}
-
-#else /* _OSD_POSIX */
-void bs2login_is_not_here()
-{
-}
-#endif /* _OSD_POSIX */
diff --git a/usr.sbin/httpd/src/os/bs2000/ebcdic.h b/usr.sbin/httpd/src/os/bs2000/ebcdic.h
deleted file mode 100644
index dba32d49099..00000000000
--- a/usr.sbin/httpd/src/os/bs2000/ebcdic.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef EBCDIC_H
-#define EBCDIC_H "$Id: ebcdic.h,v 1.5 2002/03/29 02:08:07 beck Exp $"
-
-#include <ap_ebcdic.h>
-
-#endif /*EBCDIC_H*/
diff --git a/usr.sbin/httpd/src/os/bs2000/os-inline.c b/usr.sbin/httpd/src/os/bs2000/os-inline.c
deleted file mode 100644
index e58917af369..00000000000
--- a/usr.sbin/httpd/src/os/bs2000/os-inline.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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/bs2000/os.c b/usr.sbin/httpd/src/os/bs2000/os.c
deleted file mode 100644
index d7f656c0fb2..00000000000
--- a/usr.sbin/httpd/src/os/bs2000/os.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-/*
- * 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"
-
-#ifdef HAVE_DLFCN_H
-#include "../unix/os.c"
-#endif
diff --git a/usr.sbin/httpd/src/os/bs2000/os.h b/usr.sbin/httpd/src/os/bs2000/os.h
deleted file mode 100644
index d3a64281b88..00000000000
--- a/usr.sbin/httpd/src/os/bs2000/os.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef APACHE_OS_H
-#define APACHE_OS_H
-
-#define PLATFORM "BS2000"
-
-/*
- * 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
- */
-
-#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)
-#define ap_os_kill(pid, sig) kill(pid, sig)
-
-#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE) && !defined(HAVE_RINI_STRUCT)
-typedef struct {
- char *username;
- char *account;
- char *processor_name;
-} _rini_struct;
-
-extern int _rini(_rini_struct *);
-#endif /* !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE) */
-
-extern pid_t os_fork(const char *user);
-#ifdef _OSD_POSIX
-struct pool;
-extern const char *os_set_account(struct pool *p, const char *account);
-struct server_rec;
-extern int os_init_job_environment(struct server_rec *s, const char *user_name, int one_process);
-#endif
-
-#ifdef HAVE_DLFCN_H
-#include <dlfcn.h>
-#define ap_os_dso_handle_t void *
-void ap_os_dso_init(void);
-void * ap_os_dso_load(const char *);
-void ap_os_dso_unload(void *);
-void * ap_os_dso_sym(void *, const char *);
-const char *ap_os_dso_error(void);
-#endif
-
-#endif /*! APACHE_OS_H*/
diff --git a/usr.sbin/httpd/src/os/cygwin/Makefile.tmpl b/usr.sbin/httpd/src/os/cygwin/Makefile.tmpl
deleted file mode 100644
index 5123c5a3840..00000000000
--- a/usr.sbin/httpd/src/os/cygwin/Makefile.tmpl
+++ /dev/null
@@ -1,46 +0,0 @@
-CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
-LIBS=$(EXTRA_LIBS) $(LIBS1)
-INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
-LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
-
-OBJS= os.o os-inline.o
-
-LIB= libos.a
-
-all: $(LIB)
-
-$(LIB): $(OBJS)
- rm -f $@
- ar cr $@ $(OBJS)
- $(RANLIB) $@
-
-.c.o:
- $(CC) -c $(INCLUDES) $(CFLAGS) $<
-
-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' \
- -e '1,$$s: $(OSDIR)/: $$(OSDIR)/:g' Makefile.new \
- > Makefile.tmpl \
- && rm Makefile.new
-
-$(OBJS): Makefile
-
-# DO NOT REMOVE
-os-inline.o: os-inline.c $(INCDIR)/ap_config.h \
- $(INCDIR)/ap_mmn.h $(INCDIR)/ap_config_auto.h \
- $(OSDIR)/os.h $(INCDIR)/ap_ctype.h $(INCDIR)/hsregex.h
-os.o: os.c $(INCDIR)/ap_config.h $(INCDIR)/ap_mmn.h \
- $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h \
- $(INCDIR)/ap_ctype.h $(INCDIR)/hsregex.h os.h
diff --git a/usr.sbin/httpd/src/os/cygwin/os-inline.c b/usr.sbin/httpd/src/os/cygwin/os-inline.c
deleted file mode 100644
index 54ff49a6391..00000000000
--- a/usr.sbin/httpd/src/os/cygwin/os-inline.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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[0] == '/';
-}
diff --git a/usr.sbin/httpd/src/os/cygwin/os.c b/usr.sbin/httpd/src/os/cygwin/os.c
deleted file mode 100644
index e9457e9324b..00000000000
--- a/usr.sbin/httpd/src/os/cygwin/os.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * This file will include OS specific functions which are not inlineable.
- * Any inlineable functions should be defined in os-inline.c instead.
- */
-
-#include "ap_config.h"
-#include "os.h"
-
-
-/* some linkers complain unless there's at least one function in each
- * .o file... and extra prototype is for gcc -Wmissing-prototypes
- */
-extern void ap_is_not_here(void);
-void ap_is_not_here(void) {}
-
-/*
- * Abstraction layer for loading
- * Apache modules under run-time via
- * dynamic shared object (DSO) mechanism
- */
-
-void ap_os_dso_init(void)
-{
-}
-
-void *ap_os_dso_load(const char *path)
-{
- return dlopen(path, RTLD_NOW | RTLD_GLOBAL);
-}
-
-void ap_os_dso_unload(void *handle)
-{
- dlclose(handle);
-
- return;
-}
-
-void *ap_os_dso_sym(void *handle, const char *symname)
-{
- return dlsym(handle, symname);
-}
-
-const char *ap_os_dso_error(void)
-{
- return dlerror();
-}
diff --git a/usr.sbin/httpd/src/os/cygwin/os.h b/usr.sbin/httpd/src/os/cygwin/os.h
deleted file mode 100644
index b465a1e46d9..00000000000
--- a/usr.sbin/httpd/src/os/cygwin/os.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifndef APACHE_OS_H
-#define APACHE_OS_H
-
-#include "ap_config.h"
-
-/*
- * Define the API_EXPORT declaration for creating a dynamic
- * loadable library (DLL) version of Apache on Cygwin 1.x platforms.
- */
-
-#ifndef API_EXPORT
-#ifdef SHARED_CORE
-# ifdef SHARED_MODULE
-# define API_VAR_EXPORT __declspec(dllimport)
-# define API_EXPORT(type) __declspec(dllimport) type
-# define MODULE_VAR_EXPORT __declspec(dllexport)
-# else
-# define API_VAR_EXPORT __declspec(dllexport)
-# define API_EXPORT(type) __declspec(dllexport) type
-# endif /* def SHARED_MODULE */
-#endif /* def SHARED_CORE */
-#endif /* ndef API_EXPORT */
-
-/*
- * We don't consider the Cygwin 1.x support neither an Unix nor
- * a Win32 platform. Basicly it's something between both, so that
- * is why we introduce our own PLATFORM define.
- */
-#ifndef PLATFORM
-#define PLATFORM "Cygwin"
-#endif
-
-/*
- * Define winsock.h and winsock2.h stuff taken from Win32 API in case we
- * want to do socket communication in Win32 native way rather then using
- * Cygwin's POSIX wrapper to the native ones. These are needed for
- * main/buff.c and main/http_main.c. They are linked against libwsock32.a
- * for the import declarations of the corresponding Win32 native DLLs.
- */
-#ifdef CYGWIN_WINSOCK
-#define WSAEWOULDBLOCK (10035)
-#define SOCKET_ERROR (-1)
-
-#define WIN32API_IMPORT(type) __declspec(dllimport) type __stdcall
-
-WIN32API_IMPORT(int) WSAGetLastError(void);
-WIN32API_IMPORT(int) WSASetLastError(int);
-WIN32API_IMPORT(int) ioctlsocket(unsigned int, long, unsigned long *);
-WIN32API_IMPORT(void) Sleep(unsigned int);
-#endif /* CYGWIN_WINSOCK */
-
-/*
- * 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
- */
-
-#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);
-
-/*
- * The inline things are the same as in the os/unix branch, so include
- * that one rather than our own copy that would be the same.
- */
-#include "os-inline.c"
-
-#else
-
-/* 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)
-#define ap_os_kill(pid, sig) kill(pid, sig)
-
-/*
- * Abstraction layer for loading
- * Apache modules under run-time via
- * dynamic shared object (DSO) mechanism
- */
-
-#ifdef HAVE_DL_H
-#include <dl.h>
-#endif
-
-#ifdef HAVE_DLFCN_H
-#include <dlfcn.h>
-#else
-void *dlopen(const char *, int);
-int dlclose(void *);
-void *dlsym(void *, const char *);
-const char *dlerror(void);
-#endif
-
-/* probably on an older system that doesn't support RTLD_NOW or RTLD_LAZY.
- * The below define is a lie since we are really doing RTLD_LAZY since the
- * system doesn't support RTLD_NOW.
- */
-#ifndef RTLD_NOW
-#define RTLD_NOW 1
-#endif
-
-#ifndef RTLD_GLOBAL
-#define RTLD_GLOBAL 0
-#endif
-
-#define ap_os_dso_handle_t void *
-void ap_os_dso_init(void);
-void * ap_os_dso_load(const char *);
-void ap_os_dso_unload(void *);
-void * ap_os_dso_sym(void *, const char *);
-const char *ap_os_dso_error(void);
-
-#endif /* !APACHE_OS_H */
diff --git a/usr.sbin/httpd/src/os/mpeix/Makefile.tmpl b/usr.sbin/httpd/src/os/mpeix/Makefile.tmpl
deleted file mode 100644
index 827f3dc9b60..00000000000
--- a/usr.sbin/httpd/src/os/mpeix/Makefile.tmpl
+++ /dev/null
@@ -1,49 +0,0 @@
-CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
-LIBS=$(EXTRA_LIBS) $(LIBS1)
-INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
-LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
-
-LIBOBJS= os.o os-inline.o dlopen.o gettimeofday.o
-OBJS= $(LIBOBJS)
-
-LIB= libos.a
-
-all: $(LIB)
-
-$(LIB): $(LIBOBJS)
- rm -f $@
- ar cr $@ $(LIBOBJS)
- $(RANLIB) $@
-
-.c.o:
- $(CC) -c $(INCLUDES) $(CFLAGS) $<
-
-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' \
- -e '1,$$s: $(OSDIR)/: $$(OSDIR)/:g' Makefile.new \
- > Makefile.tmpl \
- && rm Makefile.new
-
-$(OBJS): Makefile
-
-# DO NOT REMOVE
-dlopen.o: dlopen.c
-gettimeofday.o: gettimeofday.c
-os-inline.o: os-inline.c $(INCDIR)/ap_config.h \
- $(INCDIR)/ap_mmn.h $(INCDIR)/ap_config_auto.h \
- $(OSDIR)/os.h $(INCDIR)/ap_ctype.h $(INCDIR)/hsregex.h
-os.o: os.c $(INCDIR)/ap_config.h $(INCDIR)/ap_mmn.h \
- $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h \
- $(INCDIR)/ap_ctype.h $(INCDIR)/hsregex.h os.h
diff --git a/usr.sbin/httpd/src/os/mpeix/README b/usr.sbin/httpd/src/os/mpeix/README
deleted file mode 100644
index 81c23bc950c..00000000000
--- a/usr.sbin/httpd/src/os/mpeix/README
+++ /dev/null
@@ -1,274 +0,0 @@
- Using Apache With HP MPE/iX
-
-This document explains how to compile, install, configure and run Apache
-1.3 under HP MPE/iX.
-
-The bug reporting page and new-httpd mailing list are NOT provided to
-answer questions about configuration or running Apache. Before you submit a
-bug report or request, first consult this document, the Frequently Asked
-Questions page and the other relevant documentation topics. If you still
-have a question or problem, post it to the comp.sys.hp.mpe newsgroup or the
-associated HP3000-L mailing list, where many Apache users and several
-contributors are more than willing to answer new and obscure questions
-about using Apache on MPE/iX.
-
-deja.com's newsgroup archives offer easy browsing of previous questions.
-Searching the newsgroup archives, you will usually find your question was
-already asked and answered by other users!
-
----------------------------------------------------------------------------
-
- * Requirements
- * Implementation Considerations
- * Binary Distributions
- * Create the Accounting Structure
- * Downloading Apache
- * Compiling Apache
- * Installing Apache
- * Configuring Apache
- * Running Apache
- * Controlling Apache
-
----------------------------------------------------------------------------
-
-Requirements
-
-Apache 1.3 requires MPE/iX 6.0 or greater. It will NOT run on earlier
-releases of MPE/iX. The following MPE/iX patches (or their superseding
-descendants) are relevant to Apache:
-
- * MPE/iX 6.0:
- o MPEKXT3B - fixes an MPE bug that results in transient "permission
- denied" errors being returned by the server to the browser.
- o MPELX36A - enhances the kill() function so that MPE users with SM
- capability can send signals to Apache for shutdown, restart, etc.
- o MPELX44C - fixes an MPE bug that prevents DSO modules from being
- dynamically loaded.
- o MPELX51C - enhances the kill() function so that Apache can use it
- when the Apache parent UID is different from the Apache children
- UID (strongly recommended).
- o NSTxxxxx - the latest network transport patch should always be
- installed when using TCP/IP applications such as Apache.
- * MPE/iX 6.5:
- o MPELX44D - fixes an MPE bug that prevents DSO modules from being
- dynamically loaded.
- o MPELX51D - enhances the kill() function so that Apache can use it
- when the Apache parent UID is different from the Apache children
- UID (strongly recommended).
- o NSTxxxxx - the latest network transport patch should always be
- installed when using TCP/IP applications such as Apache.
-
----------------------------------------------------------------------------
-
-Implementation Considerations
-
-While MPE has a very good POSIX implementation that enables fairly simple
-porting of Unix applications such as Apache, there are some Unix concepts
-which just don't exist or aren't fully implemented in MPE, and so this may
-force some functionality changes in the package being ported.
-
-Significant MPE vs. Unix OS differences
-
- * MPE lacks the concept of a Unix UID=0 root user with special
- privileges. Where Unix functions require a user to be executing as
- root, MPE requires the user to be executing in priv mode, so the
- program file must be linked with PM (Priv Mode) capability, and the
- Unix function calls must be bracketed by GETPRIVMODE() and
- GETUSERMODE() calls. The following Unix functions used by Apache are
- affected:
- o bind() for ports less than 1024
- o setgid()
- o setuid()
- * MPE's support for UIDs and GIDs is more limited than Unix. Every MPE
- account maps to a unique GID. Each MPE account can contain multiple
- MPE users, and every MPE user maps to a unique UID (UID 0 is not
- supported). The current UID for a process must correspond to an MPE
- user within the MPE account that corresponds to the current GID of the
- process.
- * MPE child processes cannot survive the death of their parent. When
- the parent terminates, any remaining children will be killed.
- * MPE doesn't initialize the envp parameter when invoking the main() of
- a new process. Use the global variable environ instead of envp.
- * MPE link() exists, but always returns EIMPL. Use rename() or symlinks
- instead of hard links.
- * MPE doesn't allow the @ character in filenames.
- * MPE lacks support for TCP_NODELAY, but that's the default anyway.
- * MPE lacks support for SO_KEEPALIVE.
- * MPE lacks support for process groups.
- * MPE inetd only passes stdin (and NOT stdout) to the invoked service.
- But you can write to stdin just fine.
-
-Major Apache functionality issues
-
- * Beginning with HP-supported Apache 1.3.9 and HP WebWise MPE/iX Secure
- Web Server A.01.00 (based on Apache 1.3.9), the User and Group
- directives in httpd.conf are now unconditionally executed as
- corresponding setuid()/setgid() calls. Previously this was only done
- if HTTPD was being run as MANAGER.SYS. This functionality change was
- submitted back to the 1.3.13-dev source tree at www.apache.org. The
- Apache for Unix behavior is to only honor User and Group if running as
- root.
- * Beginning with HP-supported Apache 1.3.9 and HP WebWise MPE/iX Secure
- Web Server A.01.00 (based on Apache 1.3.9), the SVIPC shared memory
- macros SHM_R and SHM_W have been modified from their traditional
- owner-only-read and owner-only-write values to be owner-and-group-read
- and owner-and-group-write on MPE/iX in order to allow increased
- parent/child flexibility in spite of MPE's limited POSIX UID/GID
- support. This functionality change was submitted back to the
- 1.3.13-dev source tree at www.apache.org. The Apache for Unix
- behavior uses the traditional owner-only values of SHM_R and SHM_W.
-
-Minor Apache functionality issues
-
- * Apache for Unix must be run as root to bind to TCP ports 1-1023.
- Apache for MPE must call GETPRIVMODE() to bind to TCP ports 1-1023; PM
- is not used for ports greater than 1023. The standard web server HTTP
- port is 80.
- * Apache for Unix in standalone mode will detach itself and run in the
- background as a system-type process. Apache for MPE in standalone mode
- cannot detach itself and run in the background because MPE POSIX
- doesn't allow this (the detached child would be killed when the parent
- terminated). Therefore you must use an MPE batch job to run Apache in
- standalone mode.
- * Apache for Unix uses process groups to manage child processes. Apache
- for MPE cannot use process groups because MPE POSIX doesn't support
- this. The implications of this are unknown.
- * Apache for Unix uses the setsockopt() option TCP_NODELAY. Apache for
- MPE does not, because MPE doesn't support it. But TCP_NODELAY is the
- default MPE behavior anyway.
- * Apache for Unix uses the setsockopt() option SO_KEEPALIVE. Apache for
- MPE does not, because MPE doesn't support it.
- * Apache for Unix under inetd reads from the socket via stdin and writes
- via stdout. Apache for MPE under inetd reads *AND* writes the socket
- via stdin. I consider MPE 5.5 inetd to be broken and poorly
- documented, so I submitted SR 5003355016 to address this. If HP ever
- alters the MPE inetd to pass the socket the way HPUX inetd does (not
- likely in the grand scheme of things), the existing Apache for MPE
- code will break.
- * Apache for Unix will use the @ character in proxy cache filenames, but
- since @ is illegal in MPE filenames, Apache for MPE uses the %
- character instead.
-
----------------------------------------------------------------------------
-
-Binary Distributions
-
-HP ships a fully supported Apache binary distribution with the Fundamental
-Operating System (FOS) in MPE/iX 6.5 and later. This distribution can be
-found in the APACHE account.
-
-HP supplies fully supported Apache binary distributions for MPE/iX 6.0 or
-later available for downloading from
-http://jazz.external.hp.com/src/apache/.
-
-Mark Bixby supplies Apache binary distributions for MPE/iX available for
-downloading from http://www.bixby.org/mark/apacheix.html. Binaries from
-bixby.org are NOT supported by HP. HP only supports binaries distributed
-by HP.
-
-All of the binary distributions mentioned above may possibly include
-functionality that hasn't yet been submitted back to the Apache Software
-Foundation (though submitting back is the intended goal). Please read the
-documentation that comes with these binaries in order to determine
-functionality differences (if any) compared to the latest sources available
-from the ASF.
-
-If you will be using one of these binary distributions, please stop reading
-this document and start reading the specific distribution documentation for
-installation details.
-
----------------------------------------------------------------------------
-
-Create the Accounting Structure
-
-Apache can be installed under the account of your choice. For the purposes
-of this document, the APACHE account will be used:
-
- 1. :HELLO MANAGER.SYS
- 2. :NEWACCT APACHE,MGR
- 3. :ALTACCT APACHE;PASS=xxxxxxxx;CAP=AM,AL,ND,SF,BA,IA,PM,PH
- 4. :ALTGROUP PUB.APACHE;CAP=BA,IA,PM,PH;ACCESS=(R,L,X:AC;W,A,S:AL)
- 5. :ALTUSER MGR.APACHE;CAP=AM,AL,ND,SF,BA,IA,PM,PH;HOME=PUB
- 6. :NEWUSER SERVER.APACHE
- 7. :ALTUSER SERVER.APACHE;CAP=ND,SF,BA,IA,PH;HOME=PUB
-
-Downloading Apache
-
-Use your web browser to download the Apache source tarball from
-http://www.apache.org/dist/. Then ftp upload the tarball to your e3000 as
-show below:
-
-C:\Temp>ftp 3000.host.name
-Connected to 3000.host.name.
-220 HP ARPA FTP Server [A0009H09] (C) Hewlett-Packard Co. 1990
-User (3000.host.name:(none)): MGR.APACHE
-331 Password required for MGR.APACHE. Syntax: acctpass
-Password:xxxxxxxx
-230 User logged on
-ftp> quote type L 8
-200 Type set to L (byte size 8).
-ftp> put apache_v.u.ff.tar.Z /tmp/apache.tar.Z
-200 PORT command ok.
-150 File: /tmp/apache.tar.Z opened; data connection will be opened
-226 Transfer complete.
-ftp: 2685572 bytes sent in 2.75Seconds 976.57Kbytes/sec.
-ftp> quit
-221 Server is closing command connection
-
-Unpack the tarball:
-
- 1. :HELLO MGR.APACHE
- 2. :XEQ SH.HPBIN.SYS -L
- 3. $ mkdir src
- 4. $ chmod 700 src
- 5. $ cd src
- 6. $ tar xvfopz /tmp/apache.tar.Z
-
-Compiling Apache
-
-It is STRONGLY recommended to use gcc instead of the HP C/iX compiler. You
-can obtain gcc from http://jazz.external.hp.com/src/gnu/gnuframe.html.
-
- 1. $ cd apache_v.uu.ff
- 2. $ ./configure --prefix=/APACHE/PUB --enable-module=xxx
- --enable-module=yyy ...etc...
- 3. $ make
-
-Installing Apache
-
- 1. $ make install
- 2. $ cd /APACHE/PUB
- 3. $ mv bin/httpd HTTPD
- 4. $ ln -s HTTPD bin/httpd
- 5. $ callci "xeq linkedit.pub.sys 'altprog HTTPD;cap=ia,ba,ph,pm'"
-
-Configuring Apache
-
-Edit /APACHE/PUB/conf/httpd.conf and customize as needed for your
-environment. Be sure to make the following mandatory changes:
-
- * User SERVER.APACHE
- * Group APACHE
-
-Running Apache
-
-Simply create and :STREAM the following standalone server job in order to
-start Apache:
-
-!JOB JHTTPD,MGR.APACHE;OUTCLASS=,2
-!XEQ SH.HPBIN.SYS "-c 'umask 007; ./HTTPD -f /APACHE/PUB/conf/httpd.conf'"
-!eoj
-
-Controlling Apache
-
-Log on as MGR.APACHE (or MANAGER.SYS or any other SM user if you've
-installed MPELX36A on 6.0) in order to shutdown or restart Apache via the
-use of signals.
-
-To shut down Apache from the POSIX shell:
-
-$ kill `cat /APACHE/PUB/logs/httpd.pid`
-
-To shut down Apache from the CI:
-
-:XEQ SH.HPBIN.SYS '-c "kill `cat /APACHE/PUB/logs/httpd.pid`"'
diff --git a/usr.sbin/httpd/src/os/mpeix/dlopen.c b/usr.sbin/httpd/src/os/mpeix/dlopen.c
deleted file mode 100644
index dbe5fc8ceb2..00000000000
--- a/usr.sbin/httpd/src/os/mpeix/dlopen.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * dlopen()/dlsym()/dlclose()/dlerror() emulation code for MPE
- *
- * This is not intended to be a 100% complete implementation.
- */
-
-#include "httpd.h"
-
-typedef struct {
- char libname[PATH_MAX + 3];
- } t_mpe_dld, *p_mpe_dld;
-
-/*
- * hpunload() is an undocumented and unsupported function used to unload
- * NMXL library symbols. While it isn't listed in the Intrinsics manual
- * or SYSINTR.PUB.SYS, it performs the same level of parameter checking
- * that a regular intrinsic does. The parameter contents are the same
- * as for HPGETPROCPLABEL(), with the exception of symbolname which can
- * use the wildcard of " @ " which means unload ALL symbols RIGHT NOW.
- */
-
-extern void hpunload(
- int parms, /* option extensible hidden parameter */
- char * symbolname,
- char * libname,
- int * status,
- int * symboltype,
- int casesensitive);
-
-#ifdef __GNUC__
-extern void HPGETPROCPLABEL(
- int parms, /* option extensible hidden parameter */
- char * symbolname,
- void * symboladdr,
- int * status,
- char * libname,
- int casesensitive,
- int symboltype,
- int * datasize,
- int position,
- int searchpath,
- int binding);
-
-extern void HPERRMSG(
- int parms, /* option extensible hidden parameter */
- int displaycode,
- int depth,
- short errorproc,
- int errornum,
- char * buffer,
- short * buflength,
- int * status);
-#else
-#pragma intrinsic HPERRMSG
-#pragma intrinsic HPGETPROCPLABEL
-#endif
-
-int mpe_dl_status = 0;
-char mpe_dl_errmsg[1024];
-char mpe_dl_symname[128];
-int mpe_dl_symtype; /* 0=proc, 1=data, 2=malloc, 3=hpunload */
-
-/*
- * dlopen()
- */
-
-void *dlopen(const char *libname, int flag) {
-
-t_mpe_dld *handle;
-char cwd[PATH_MAX+3];
-char library[PATH_MAX+3];
-void *symaddr;
-int datalen;
-
-/* Save the library name in absolute format for later use */
-if (libname[0] != '/') {
- getcwd(cwd, sizeof(cwd));
- ap_snprintf(library, sizeof(library), " %s/%s ", cwd, libname);
-} else
- ap_snprintf(library, sizeof(library), " %s ", libname);
-
-#define MPE_WITHOUT_MPELX44
-#ifdef MPE_WITHOUT_MPELX44
-/*
-Unfortunately if we simply tried to load the module structure data item
-directly in dlsym(), it would complain about unresolved function pointer
-references.
-
-However, if we first load an actual dummy procedure, we can then subsequently
-load the data item without trouble. Go figure.
-
-This bug is fixed by patch MPELX44A on MPE/iX 6.0 and patch MPELX44B on
-MPE/iX 6.5.
-*/
-
-/* Load the dummy procedure mpe_dl_stub */
-ap_cpystrn(mpe_dl_symname, " mpe_dl_stub ", sizeof(mpe_dl_symname));
-mpe_dl_symtype = 0;
-
-HPGETPROCPLABEL(
-#ifdef __GNUC__
- 8,
-#endif
- mpe_dl_symname, &symaddr, &mpe_dl_status, library, 1,
- mpe_dl_symtype, &datalen, 1, 0, 0);
-
-/* We consider it to be a failure if the dummy procedure doesn't exist */
-/* if (mpe_dl_status != 0) return NULL; */
-/* Or not. If we failed to load mpe_dl_stub, press on and try to load the
- real data item later in dlsym(). */
-#endif /* MPE_WITHOUT_MPELX44 */
-
-mpe_dl_symtype = 2;
-
-/* Allocate a handle */
-if ((handle = (t_mpe_dld *)malloc(sizeof(t_mpe_dld))) == NULL) return NULL;
-
-/* Initialize the handle fields */
-memset(handle, 0, sizeof(t_mpe_dld));
-
-ap_cpystrn(handle->libname,library,sizeof(handle->libname));
-
-return handle;
-}
-
-/*
- * dlsym()
- */
-
-void *dlsym(void *handle, const char *symbol) {
-
-t_mpe_dld *myhandle = handle;
-int datalen;
-void * symaddr = NULL;
-
-ap_snprintf(mpe_dl_symname, sizeof(mpe_dl_symname), " %s ", symbol);
-mpe_dl_symtype = 1;
-
-HPGETPROCPLABEL(
-#ifdef __GNUC__
- 8,
-#endif
- mpe_dl_symname, &symaddr, &mpe_dl_status, myhandle->libname, 1,
- mpe_dl_symtype, &datalen, 1, 0, 0);
-
-if (mpe_dl_status != 0) {
- return NULL;
-} else {
- return symaddr;
-}
-
-}
-
-/*
- * dlclose()
- */
-
-int dlclose(void *handle) {
-
-p_mpe_dld myhandle = handle;
-
-mpe_dl_symtype = 3;
-
-/* unload ALL symbols from the library RIGHT NOW */
-hpunload(5, " @ ", myhandle->libname, &mpe_dl_status, NULL, 0);
-
-free(handle);
-
-if (mpe_dl_status == 0)
- return 0;
-else
- return -1;
-
-}
-
-/*
- * dlerror()
- */
-
-const char *dlerror(void) {
-
-char errmsg[1024];
-short buflen = sizeof(errmsg)-1;
-int status;
-char prefix[80];
-
-if (mpe_dl_status == 0) return NULL;
-
-switch (mpe_dl_symtype) {
- case 0:
- ap_snprintf(prefix,sizeof(prefix),
- "HPGETPROCPLABEL() failed on procedure%s",mpe_dl_symname);
- break;
- case 1:
- ap_snprintf(prefix,sizeof(prefix),
- "HPGETPROCPLABEL() failed on data item%s",mpe_dl_symname);
- break;
- case 3:
- ap_cpystrn(prefix,"hpunload() failed",sizeof(prefix));
- break;
- default:
- ap_cpystrn(prefix,"Unknown MPE dynaloader error",sizeof(prefix));
- break;
-}
-
-/* Obtain the error message for the most recent mpe_dl_status value */
-HPERRMSG(
-#ifdef __GNUC__
- 7,
-#endif
- 3, 0, 0, mpe_dl_status, (char *)&errmsg, &buflen, &status);
-
-if (status == 0)
- errmsg[buflen] = '\0';
-else
- ap_snprintf(errmsg,sizeof(errmsg),
- "HPERRMSG failed (status=%x); MPE loader status = %x",
- status, mpe_dl_status);
-
-ap_snprintf(mpe_dl_errmsg,sizeof(mpe_dl_errmsg),"%s\n%s",prefix,errmsg);
-
-return (char *)&mpe_dl_errmsg;
-
-}
diff --git a/usr.sbin/httpd/src/os/mpeix/gettimeofday.c b/usr.sbin/httpd/src/os/mpeix/gettimeofday.c
deleted file mode 100644
index 3b593fa1cd2..00000000000
--- a/usr.sbin/httpd/src/os/mpeix/gettimeofday.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- stub for gettimeofday():
- gettimeofday() is UNIX, not POSIX
-*/
-
-/*-------------------------------------------------------------------*/
-/* */
-/* gettimeofday */
-/* */
-/*-------------------------------------------------------------------*/
-/* */
-/* #include <time.h> */
-/* */
-/* int gettimeofday( */
-/* struct timeval *tp, */
-/* struct timezone *tzp, */
-/* ); */
-/* */
-/*-------------------------------------------------------------------*/
-/* */
-/* This function returns seconds and microseconds since midnight */
-/* January 1, 1970. The microseconds is actually only accurate to */
-/* the millisecond. */
-/* */
-/* Note: To pick up the definitions of structs timeval and timezone */
-/* from the <time.h> include file, the directive */
-/* _SOCKET_SOURCE must be used. */
-/* */
-/*-------------------------------------------------------------------*/
-/* */
-/* RETURN VALUE */
-/* A 0 return value indicates that the call succeeded. A -1 return */
-/* value indicates an error occurred; errno is set to indicate the */
-/* error. */
-/* */
-/*-------------------------------------------------------------------*/
-/* */
-/* ERRORS */
-/* EFAULT not implemented yet. */
-/* */
-/*-------------------------------------------------------------------*/
-/* Changes: */
-/* 2-91 DR. Created. */
-/* */
-/*-------------------------------------------------------------------*/
-
-
-/* need _SOCKET_SOURCE to pick up structs timeval and timezone in time.h */
-#ifndef _SOCKET_SOURCE
-# define _SOCKET_SOURCE
-#endif
-
-#include <time.h> /* structs timeval & timezone,
- difftime(), localtime(), mktime(), time() */
-
-#pragma intrinsic TIMER
-
-
-
-int
-gettimeofday(struct timeval *tp, struct timezone *tpz)
-{
- static unsigned long basetime = 0;
- static int dsttime = 0;
- static int minuteswest = 0;
- static int oldtime = 0;
- register int newtime;
- int TIMER();
-
-
- /*-------------------------------------------------------------------*/
- /* Setup a base from which all future time will be computed. */
- /*-------------------------------------------------------------------*/
- if ( basetime == 0 )
- {
- time_t gmt_time;
- time_t loc_time;
- struct tm *loc_time_tm;
-
- gmt_time = time( NULL );
- loc_time_tm = localtime( &gmt_time ) ;
- loc_time = mktime( loc_time_tm );
-
- oldtime = TIMER();
- basetime = (unsigned long) ( loc_time - (oldtime/1000) );
-
- /*----------------------------------------------------------------*/
- /* The calling process must be restarted if timezone or dst */
- /* changes. */
- /*----------------------------------------------------------------*/
- minuteswest = (int) (difftime( loc_time, gmt_time ) / 60);
- dsttime = loc_time_tm->tm_isdst;
- }
-
- /*-------------------------------------------------------------------*/
- /* Get the new time value. The timer value rolls over every 24 days, */
- /* so if the delta is negative, the basetime value is adjusted. */
- /*-------------------------------------------------------------------*/
- newtime = TIMER();
- if ( newtime < oldtime ) basetime += 2073600;
- oldtime = newtime;
-
- /*-------------------------------------------------------------------*/
- /* Return the timestamp info. */
- /*-------------------------------------------------------------------*/
- tp->tv_sec = basetime + newtime/1000;
- tp->tv_usec = (newtime%1000) * 1000; /* only accurate to milli */
- if (tpz)
- {
- tpz->tz_minuteswest = minuteswest;
- tpz->tz_dsttime = dsttime;
- }
-
- return 0;
-
-} /* gettimeofday() */
diff --git a/usr.sbin/httpd/src/os/mpeix/mpe_dl_stub.c b/usr.sbin/httpd/src/os/mpeix/mpe_dl_stub.c
deleted file mode 100644
index 876ba16575c..00000000000
--- a/usr.sbin/httpd/src/os/mpeix/mpe_dl_stub.c
+++ /dev/null
@@ -1 +0,0 @@
-int mpe_dl_stub(void) { return 0; };
diff --git a/usr.sbin/httpd/src/os/mpeix/os-inline.c b/usr.sbin/httpd/src/os/mpeix/os-inline.c
deleted file mode 100644
index 54ff49a6391..00000000000
--- a/usr.sbin/httpd/src/os/mpeix/os-inline.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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[0] == '/';
-}
diff --git a/usr.sbin/httpd/src/os/mpeix/os.c b/usr.sbin/httpd/src/os/mpeix/os.c
deleted file mode 100644
index d3884a5dc47..00000000000
--- a/usr.sbin/httpd/src/os/mpeix/os.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../unix/os.c"
diff --git a/usr.sbin/httpd/src/os/mpeix/os.h b/usr.sbin/httpd/src/os/mpeix/os.h
deleted file mode 100644
index 5bae765fc13..00000000000
--- a/usr.sbin/httpd/src/os/mpeix/os.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifndef APACHE_OS_H
-#define APACHE_OS_H
-
-#include "ap_config.h"
-
-#ifndef PLATFORM
-#define PLATFORM "MPE/iX"
-#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
- */
-
-#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"
-
-#else
-
-/* 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)
-#define ap_os_kill(pid, sig) kill(pid, sig)
-
-/*
- * Abstraction layer for loading
- * Apache modules under run-time via
- * dynamic shared object (DSO) mechanism
- */
-
-#ifdef HAVE_DL_H
-#include <dl.h>
-#endif
-
-/*
- * Do not use native AIX DSO support
- */
-#ifdef AIX
-#undef HAVE_DLFCN_H
-#endif
-
-#ifdef HAVE_DLFCN_H
-#include <dlfcn.h>
-#else
-void *dlopen(const char *, int);
-int dlclose(void *);
-void *dlsym(void *, const char *);
-const char *dlerror(void);
-#endif
-
-/* probably on an older system that doesn't support RTLD_NOW or RTLD_LAZY.
- * The below define is a lie since we are really doing RTLD_LAZY since the
- * system doesn't support RTLD_NOW.
- */
-#ifndef RTLD_NOW
-#define RTLD_NOW 1
-#endif
-
-#ifndef RTLD_GLOBAL
-#define RTLD_GLOBAL 0
-#endif
-
-#if (defined(__FreeBSD__) ||\
- defined(__OpenBSD__) ||\
- defined(__NetBSD__) ) && !defined(__ELF__)
-#define DLSYM_NEEDS_UNDERSCORE
-#endif
-
-#define ap_os_dso_handle_t void *
-void ap_os_dso_init(void);
-void * ap_os_dso_load(const char *);
-void ap_os_dso_unload(void *);
-void * ap_os_dso_sym(void *, const char *);
-const char *ap_os_dso_error(void);
-
-#endif /* !APACHE_OS_H */
diff --git a/usr.sbin/httpd/src/os/netware/Apache.def b/usr.sbin/httpd/src/os/netware/Apache.def
deleted file mode 100644
index 9f1c81463d9..00000000000
--- a/usr.sbin/httpd/src/os/netware/Apache.def
+++ /dev/null
@@ -1,4 +0,0 @@
-# NLMs Apache depends on
-
-MODULE clib.nlm
-MODULE apachec.nlm
diff --git a/usr.sbin/httpd/src/os/netware/ApacheCore.imp b/usr.sbin/httpd/src/os/netware/ApacheCore.imp
deleted file mode 100644
index 2055ccdf67f..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheCore.imp
+++ /dev/null
@@ -1,425 +0,0 @@
- ap_MD5Final,
- ap_MD5Init,
- ap_MD5Update,
- ap_acquire_mutex,
- ap_add_cgi_vars,
- ap_add_common_vars,
- ap_add_loaded_module,
- ap_add_module,
- ap_add_named_module,
- ap_add_per_dir_conf,
- ap_add_per_url_conf,
- ap_add_version_component,
- ap_allow_options,
- ap_allow_overrides,
- ap_append_arrays,
- ap_array_cat,
- ap_auth_name,
- ap_auth_type,
- ap_basic_http_header,
- ap_bclose,
- ap_bcreate,
- ap_bfilbuf,
- ap_bfileno,
- ap_bflsbuf,
- ap_bflush,
- ap_bgetopt,
- ap_bgets,
- ap_bhalfduplex,
- ap_block_alarms,
- ap_blookc,
- ap_bnonblock,
- ap_bonerror,
- ap_bpushfd,
- ap_bputs,
- ap_bread,
- ap_bsetflag,
- ap_bsetopt,
- ap_bskiplf,
- ap_bspawn_child,
- ap_bwrite,
- ap_bytes_in_free_blocks,
- ap_bytes_in_pool,
- ap_call_exec,
- ap_can_exec,
- ap_cfg_closefile,
- ap_cfg_getc,
- ap_cfg_getline,
- ap_chdir_file,
- ap_check_alarm,
- ap_check_cmd_context,
- ap_checkmask,
- ap_cleanup_for_exec,
- ap_clear_module_list,
- ap_clear_pool,
- ap_clear_table,
- ap_close_piped_log,
- ap_construct_server,
- ap_construct_url,
- ap_content_type_tolower,
- ap_copy_array,
- ap_copy_array_hdr,
- ap_copy_table,
- ap_count_dirs,
- ap_cpystrn,
- ap_create_environment,
- ap_create_mutex,
- ap_create_per_dir_config,
- ap_custom_response,
- ap_default_port_for_request,
- ap_default_port_for_scheme,
- ap_default_type,
- ap_destroy_mutex,
- ap_destroy_pool,
- ap_destroy_sub_req,
- ap_die,
- ap_discard_request_body,
- ap_document_root,
- ap_each_byterange,
- ap_error_log2stderr,
- ap_escape_html,
- ap_escape_path_segment,
- ap_escape_quotes,
- ap_escape_shell_cmd,
- ap_exists_scoreboard_image,
- ap_finalize_request_protocol,
- ap_find_command,
- ap_find_command_in_modules,
- ap_find_last_token,
- ap_find_linked_module,
- ap_find_module_name,
- ap_find_path_info,
- ap_find_token,
- ap_get_basic_auth_pw,
- ap_get_client_block,
- ap_get_gmtoff,
- ap_get_limit_req_body,
- ap_get_remote_host,
- ap_get_remote_logname,
- ap_get_server_built,
- ap_get_server_name,
- ap_get_server_port,
- ap_get_server_version,
- ap_get_time,
- ap_get_token,
- ap_getparents,
- ap_getword,
- ap_getword_conf,
- ap_getword_conf_nc,
- ap_getword_nc,
- ap_getword_nulls,
- ap_getword_nulls_nc,
- ap_getword_white,
- ap_getword_white_nc,
- ap_gm_timestr_822,
- ap_gname2id,
- ap_handle_command,
- ap_hard_timeout,
- ap_ht_time,
- ap_ind,
- ap_index_of_response,
- ap_init_virtual_host,
- ap_internal_redirect,
- ap_internal_redirect_handler,
- ap_is_directory,
- ap_is_fnmatch,
- ap_is_initial_req,
- ap_is_matchexp,
- ap_is_url,
- ap_kill_cleanup,
- ap_kill_cleanups_for_fd,
- ap_kill_cleanups_for_socket,
- ap_kill_timeout,
- ap_log_assert,
- ap_log_error_old,
- ap_log_reason,
- ap_log_unixerr,
- ap_make_array,
- ap_make_dirstr,
- ap_make_dirstr_parent,
- ap_make_dirstr_prefix,
- ap_make_full_path,
- ap_make_sub_pool,
- ap_make_table,
- ap_matches_request_vhost,
- ap_md5,
- ap_md5_binary,
- ap_md5contextTo64,
- ap_md5digest,
- ap_meets_conditions,
- ap_no2slash,
- ap_note_auth_failure,
- ap_note_basic_auth_failure,
- ap_note_cleanups_for_fd,
- ap_note_cleanups_for_file,
- ap_note_cleanups_for_socket,
- ap_note_digest_auth_failure,
- ap_note_subprocess,
- ap_open_mutex,
- ap_open_piped_log,
- ap_os_escape_path,
- ap_overlap_tables,
- ap_overlay_tables,
- ap_palloc,
- ap_parseHTTPdate,
- ap_parse_hostinfo_components,
- ap_parse_uri,
- ap_parse_uri_components,
- ap_pcalloc,
- ap_pcfg_open_custom,
- ap_pcfg_openfile,
- ap_pclosedir,
- ap_pclosef,
- ap_pclosesocket,
- ap_pduphostent,
- ap_pfclose,
- ap_pfdopen,
- ap_pfopen,
- ap_pgethostbyname,
- ap_popendir,
- ap_popenf,
- ap_popenf_ex,
- ap_pregcomp,
- ap_pregfree,
- ap_pregsub,
- ap_psignature,
- ap_psocket,
- ap_psocket_ex,
- ap_pstrdup,
- ap_pstrndup,
- ap_push_array,
- ap_pvsprintf,
- ap_rationalize_mtime,
- ap_register_cleanup,
- ap_release_mutex,
- ap_remove_loaded_module,
- ap_remove_module,
- ap_requires,
- ap_reset_timeout,
- ap_rflush,
- ap_rind,
- ap_rputc,
- ap_rputs,
- ap_run_cleanup,
- ap_run_sub_req,
- ap_rwrite,
- ap_satisfies,
- ap_scan_script_header_err,
- ap_scan_script_header_err_buff,
- ap_scan_script_header_err_core,
- ap_send_fb,
- ap_send_fb_length,
- ap_send_fd,
- ap_send_fd_length,
- ap_send_http_header,
- ap_send_http_trace,
- ap_send_mmap,
- ap_send_size,
- ap_server_root_relative,
- ap_set_byterange,
- ap_set_content_length,
- ap_set_etag,
- ap_set_keepalive,
- ap_set_last_modified,
- ap_setup_client_block,
- ap_should_client_block,
- ap_soft_timeout,
- ap_some_auth_required,
- ap_spawn_child,
- ap_srm_command_loop,
- ap_str_tolower,
- ap_strcasecmp_match,
- ap_strcmp_match,
- ap_sub_req_lookup_file,
- ap_sub_req_lookup_uri,
- ap_sync_scoreboard_image,
- ap_table_add,
- ap_table_addn,
- ap_table_get,
- ap_table_merge,
- ap_table_mergen,
- ap_table_set,
- ap_table_setn,
- ap_table_unset,
- ap_tm2sec,
- ap_uname2id,
- ap_unblock_alarms,
- ap_unescape_url,
- ap_unparse_uri_components,
- ap_update_mtime,
- ap_uudecode,
- ap_uuencode,
- ap_vbprintf,
- ap_vformatter,
- ap_vsnprintf,
- regcomp,
- regexec,
- regfree,
- access_module,
- alias_module,
- ap_bprintf,
- ap_bvputs,
- ap_day_snames,
- ap_extended_status,
- ap_limit_section,
- ap_loaded_modules,
- ap_log_error,
- ap_log_printf,
- ap_log_rerror,
- ap_month_snames,
- ap_null_cleanup,
- ap_psprintf,
- ap_pstrcat,
- ap_restart_time,
- ap_rprintf,
- ap_rvputs,
- ap_scoreboard_image,
- ap_send_header_field,
- ap_server_argv0,
- ap_server_root,
- ap_set_file_slot,
- ap_set_flag_slot,
- ap_set_string_slot,
- ap_set_string_slot_lower,
- ap_snprintf,
- ap_suexec_enabled,
- ap_table_do,
- apache_main,
- asis_module,
- auth_module,
- autoindex_module,
- config_log_module,
- core_module,
- dir_module,
- env_module,
- imap_module,
- includes_module,
- mime_module,
- negotiation_module,
- setenvif_module,
- so_module,
- top_module,
- ap_fnmatch,
- ap_method_number_of,
- ap_exists_config_define,
- ap_single_module_configure,
- ap_make_etag,
- ap_array_pstrcat,
- ap_find_list_item,
- ap_MD5Encode,
- ap_validate_password,
- ap_size_list_item,
- ap_get_list_item,
- ap_scoreboard_fname,
- ap_pid_fname,
- ap_excess_requests_per_child,
- ap_threads_per_child,
- ap_max_requests_per_child,
- ap_daemons_to_start,
- ap_daemons_min_free,
- ap_daemons_max_free,
- ap_daemons_limit,
- ap_user_name,
- ap_user_id,
- ap_group_id,
- ap_standalone,
- ap_server_confname,
- ap_sub_req_method_uri,
- ap_regerror,
- ap_regexec,
- ap_field_noparam,
- ap_pbase64decode,
- ap_pbase64encode,
- ap_base64encode,
- ap_base64encode_binary,
- ap_base64encode_len,
- ap_base64decode,
- ap_base64decode_binary,
- ap_base64decode_len,
- ap_SHA1Init,
- ap_SHA1Update_binary,
- ap_SHA1Update,
- ap_SHA1Final,
- ap_sha1_base64,
- ap_my_generation,
- ap_get_virthost_addr,
- ap_listeners,
- ap_listenbacklog,
- clean_parent_exit,
- init_tsd,
- ap_set_config_vectors,
- ap_strcasestr,
- ap_to64,
- ap_vrprintf,
- regerror,
- ap_add_file_conf,
- ap_configtestonly,
- ap_is_rdirectory,
- ap_remove_spaces,
- ap_scan_script_header_err_strs,
- ap_start_shutdown,
- ap_start_restart,
- ap_stripprefix,
- ap_send_error_response,
- ap_os_canonical_filename,
- ap_os_case_canonical_filename,
- ap_os_http_method,
- ap_os_default_port,
- os_readdir,
- os_opendir,
- os_closedir,
- ap_update_vhost_from_headers,
- ap_update_vhost_given_ip,
- ap_set_name_virtual_host,
- ap_parse_vhost_addrs,
- ap_fini_vhost_config,
- ap_init_vhost_config,
- ap_check_access,
- ap_check_auth,
- ap_check_user_id,
- ap_translate_name,
- ap_find_types,
- ap_run_fixups,
- ap_invoke_handler,
- ap_log_transaction,
- ap_header_parse,
- ap_run_post_read_request,
- ap_single_module_configure,
- ap_init_modules,
- ap_child_init_modules,
- ap_child_exit_modules,
- ap_setup_prelinked_modules,
- ap_show_directives,
- ap_show_modules,
- ap_parse_htaccess,
- ap_process_resource_config,
- ap_create_request_config,
- ap_merge_per_dir_configs,
- ap_bind_address,
- ap_core_reorder_directories,
- ap_coredump_dir,
- ap_force_library_loading,
- ap_get_local_host,
- ap_get_virthost_addr,
- ap_init_alloc,
- ap_keepalive_timeout,
- ap_listenbacklog,
- ap_lock_fname,
- ap_log_pid,
- ap_open_logs,
- ap_process_request,
- ap_read_config,
- ap_read_request,
- ap_response_code_string,
- ap_rfc1413,
- ap_send_http_options,
- ap_server_config_defines,
- ap_server_post_read_config,
- ap_server_pre_read_config,
- ap_set_callback_and_alarm,
- ap_set_sub_req_protocol,
- ap_update_child_status,
- ap_sendwithtimeout,
- ap_recvwithtimeout,
- ap_getline,
- ap_get_chunk_size,
diff --git a/usr.sbin/httpd/src/os/netware/ApacheCoreNW.def b/usr.sbin/httpd/src/os/netware/ApacheCoreNW.def
deleted file mode 100644
index 6762ac5dfe7..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheCoreNW.def
+++ /dev/null
@@ -1,8 +0,0 @@
-MODULE CLIB.NLM
-MODULE WS2_32.NLM
-IMPORT KillMe
-IMPORT kMutexAlloc
-IMPORT kMutexFree
-IMPORT kMutexLock
-IMPORT kMutexUnlock
-EXPORT @apachecore.imp
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleAuthAnon.def b/usr.sbin/httpd/src/os/netware/ApacheModuleAuthAnon.def
deleted file mode 100644
index 7465f677d16..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleAuthAnon.def
+++ /dev/null
@@ -1,2 +0,0 @@
-EXPORT anon_auth_module
-
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleAuthDBM.def b/usr.sbin/httpd/src/os/netware/ApacheModuleAuthDBM.def
deleted file mode 100644
index a25efea00cb..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleAuthDBM.def
+++ /dev/null
@@ -1,2 +0,0 @@
-EXPORT dbm_auth_module
-
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleCERNMeta.def b/usr.sbin/httpd/src/os/netware/ApacheModuleCERNMeta.def
deleted file mode 100644
index cb57210ebd5..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleCERNMeta.def
+++ /dev/null
@@ -1 +0,0 @@
-EXPORT cern_meta_module
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleDigest.def b/usr.sbin/httpd/src/os/netware/ApacheModuleDigest.def
deleted file mode 100644
index 74575fff4f3..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleDigest.def
+++ /dev/null
@@ -1 +0,0 @@
-EXPORT digest_module
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleExpires.def b/usr.sbin/httpd/src/os/netware/ApacheModuleExpires.def
deleted file mode 100644
index b48301ca058..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleExpires.def
+++ /dev/null
@@ -1 +0,0 @@
-EXPORT expires_module
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleHeaders.def b/usr.sbin/httpd/src/os/netware/ApacheModuleHeaders.def
deleted file mode 100644
index 5c765c286e2..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleHeaders.def
+++ /dev/null
@@ -1 +0,0 @@
-EXPORT headers_module
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleInfo.def b/usr.sbin/httpd/src/os/netware/ApacheModuleInfo.def
deleted file mode 100644
index 66690990048..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleInfo.def
+++ /dev/null
@@ -1,2 +0,0 @@
-EXPORT info_module
-
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleProxy.def b/usr.sbin/httpd/src/os/netware/ApacheModuleProxy.def
deleted file mode 100644
index 7b1c93b7d75..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleProxy.def
+++ /dev/null
@@ -1 +0,0 @@
-EXPORT proxy_module
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleRewrite.def b/usr.sbin/httpd/src/os/netware/ApacheModuleRewrite.def
deleted file mode 100644
index 2f7d7e8c113..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleRewrite.def
+++ /dev/null
@@ -1 +0,0 @@
-EXPORT rewrite_module
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleSpeling.def b/usr.sbin/httpd/src/os/netware/ApacheModuleSpeling.def
deleted file mode 100644
index dec9ffc3662..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleSpeling.def
+++ /dev/null
@@ -1,2 +0,0 @@
-EXPORT speling_module
-
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleStatus.def b/usr.sbin/httpd/src/os/netware/ApacheModuleStatus.def
deleted file mode 100644
index 06f9577ceac..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleStatus.def
+++ /dev/null
@@ -1 +0,0 @@
-EXPORT status_module
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleTLS.def b/usr.sbin/httpd/src/os/netware/ApacheModuleTLS.def
deleted file mode 100644
index cd923a556e7..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleTLS.def
+++ /dev/null
@@ -1,3 +0,0 @@
-MODULE wspssl
-EXPORT tls_module
-
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleUniqueID.def b/usr.sbin/httpd/src/os/netware/ApacheModuleUniqueID.def
deleted file mode 100644
index 95cfc835465..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleUniqueID.def
+++ /dev/null
@@ -1 +0,0 @@
-EXPORT unique_id_module
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleUserTrack.def b/usr.sbin/httpd/src/os/netware/ApacheModuleUserTrack.def
deleted file mode 100644
index bd975910c23..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleUserTrack.def
+++ /dev/null
@@ -1 +0,0 @@
-EXPORT usertrack_module
diff --git a/usr.sbin/httpd/src/os/netware/ApacheModuleVhostAlias.def b/usr.sbin/httpd/src/os/netware/ApacheModuleVhostAlias.def
deleted file mode 100644
index 09f5dc2eae3..00000000000
--- a/usr.sbin/httpd/src/os/netware/ApacheModuleVhostAlias.def
+++ /dev/null
@@ -1 +0,0 @@
-EXPORT vhost_alias_module
diff --git a/usr.sbin/httpd/src/os/netware/apache.xdc b/usr.sbin/httpd/src/os/netware/apache.xdc
deleted file mode 100644
index 12a7f6ba2df..00000000000
--- a/usr.sbin/httpd/src/os/netware/apache.xdc
+++ /dev/null
Binary files differ
diff --git a/usr.sbin/httpd/src/os/netware/getopt.c b/usr.sbin/httpd/src/os/netware/getopt.c
deleted file mode 100644
index 969a5629e7d..00000000000
--- a/usr.sbin/httpd/src/os/netware/getopt.c
+++ /dev/null
@@ -1,161 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-#include <stdlib.h>
-
-#define OPTERRCOLON (1)
-#define OPTERRNF (2)
-#define OPTERRARG (3)
-
-char *optarg;
-int optind = 1;
-int opterr = 1;
-int optopt;
-
-static int
-optiserr(int argc, char * const *argv, int oint, const char *optstr,
- int optchr, int err)
-{
- if (opterr) {
- fprintf(stderr, "Error in argument %d, char %d: ", oint, optchr + 1);
-
- switch (err) {
- case OPTERRCOLON:
- fprintf(stderr, ": in flags\n");
- break;
- case OPTERRNF:
- fprintf(stderr, "option not found %c\n", argv[oint][optchr]);
- break;
- case OPTERRARG:
- fprintf(stderr, "no argument for option %c\n", argv[oint][optchr]);
- break;
- default:
- fprintf(stderr, "unknown\n");
- break;
- }
- }
- optopt = argv[oint][optchr];
- return('?');
-}
-
-int
-getopt(int argc, char* const *argv, const char *optstr)
-{
- static int optchr = 0;
- static int dash = 0; /* have already seen the - */
-
- char *cp;
-
- if (optind >= argc)
- return(EOF);
-
- if (!dash && (argv[optind][0] != '-'))
- return(EOF);
-
- if (!dash && (argv[optind][0] == '-') && !argv[optind][1]) {
- /*
- * use to specify stdin. Need to let pgm process this and
- * the following args
- */
- return(EOF);
- }
-
- if ((argv[optind][0] == '-') && (argv[optind][1] == '-')) {
- /* -- indicates end of args */
- optind++;
- return(EOF);
- }
-
- if (!dash) {
- assert((argv[optind][0] == '-') && argv[optind][1]);
- dash = 1;
- optchr = 1;
- }
-
- /* Check if the guy tries to do a -: kind of flag */
- assert(dash);
- if (argv[optind][optchr] == ':') {
- dash = 0;
- optind++;
- return(optiserr(argc, argv, optind-1, optstr, optchr, OPTERRCOLON));
- }
-
- if (!(cp = strchr(optstr, argv[optind][optchr]))) {
- int errind = optind;
- int errchr = optchr;
-
- if (!argv[optind][optchr+1]) {
- dash = 0;
- optind++;
- }
- else
- optchr++;
- return(optiserr(argc, argv, errind, optstr, errchr, OPTERRNF));
- }
-
- if (cp[1] == ':') {
- dash = 0;
- optind++;
-
- if(optind == argc)
- return(optiserr(argc, argv, optind-1, optstr, optchr, OPTERRARG));
- optarg = argv[optind++];
- return(*cp);
- } else {
- if (!argv[optind][optchr+1]) {
- dash = 0;
- optind++;
- }
- else
- optchr++;
- return(*cp);
- }
- assert(0);
- return(0);
-}
-
-#ifdef TESTGETOPT
-int main(int argc, char **argv)
-{
- int c;
- extern char *optarg;
- extern int optind;
- int aflg = 0;
- int bflg = 0;
- int errflg = 0;
- char *ofile = NULL;
-
- while ((c = getopt(argc, argv, "abo:")) != EOF)
- switch (c) {
- case 'a':
- if (bflg)
- errflg++;
- else
- aflg++;
- break;
- case 'b':
- if (aflg)
- errflg++;
- else
- bflg++;
- break;
- case 'o':
- ofile = optarg;
- (void)printf("ofile = %s\n", ofile);
- break;
- case '?':
- errflg++;
- }
-
- if (errflg) {
- (void)fprintf(stderr, "usage: cmd [-a|-b] [-o <filename>] files...\n");
- exit(2);
- }
-
- for ( ; optind < argc; optind++)
- (void)printf("%s\n", argv[optind]);
-
- return 0;
-}
-
-#endif /* TESTGETOPT */ \ No newline at end of file
diff --git a/usr.sbin/httpd/src/os/netware/getopt.h b/usr.sbin/httpd/src/os/netware/getopt.h
deleted file mode 100644
index f0a4e696ce3..00000000000
--- a/usr.sbin/httpd/src/os/netware/getopt.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef GETOPT_H
-#define GETOPT_H
-
-extern char *optarg;
-extern int optind;
-extern int opterr;
-extern int optopt;
-int getopt(int argc, char* const *argv, const char *optstr);
-
-#endif /* GETOPT_H */ \ No newline at end of file
diff --git a/usr.sbin/httpd/src/os/netware/libpre.c b/usr.sbin/httpd/src/os/netware/libpre.c
deleted file mode 100644
index 3b0956babf3..00000000000
--- a/usr.sbin/httpd/src/os/netware/libpre.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*------------------------------------------------------------------
- These functions are to be called when the shared NLM starts and
- stops. By using these functions instead of defining a main()
- and calling ExitThread(TSR_THREAD, 0), the load time of the
- shared NLM is faster and memory size reduced.
-
- You may also want to override these in your own Apache module
- to do any cleanup other than the mechanism Apache modules
- provide.
-------------------------------------------------------------------*/
-
-int _lib_start();
-int _lib_stop();
-
-#ifdef __GNUC__
-#include <string.h> /* memset */
-extern char _edata, _end ; /* end of DATA (start of BSS), end of BSS */
-#endif
-
-int _lib_start()
-{
-#ifdef __GNUC__
- memset (&_edata, 0, &_end - &_edata);
-#endif
- return 0;
-}
-
-int _lib_stop()
-{
- return 0;
-}
diff --git a/usr.sbin/httpd/src/os/netware/libprews.c b/usr.sbin/httpd/src/os/netware/libprews.c
deleted file mode 100644
index 59149f803c9..00000000000
--- a/usr.sbin/httpd/src/os/netware/libprews.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*------------------------------------------------------------------
- These functions are to be called when the shared NLM starts and
- stops. By using these functions instead of defining a main()
- and calling ExitThread(TSR_THREAD, 0), the load time of the
- shared NLM is faster and memory size reduced.
-
- You may also want to override these in your own Apache module
- to do any cleanup other than the mechanism Apache modules
- provide.
-------------------------------------------------------------------*/
-#include "stddef.h"
-#include "ws2nlm.h"
-
-int _lib_start_ws();
-int _lib_stop_ws();
-
-#ifdef __GNUC__
-#include <string.h> /* memset */
-extern char _edata, _end ; /* end of DATA (start of BSS), end of BSS */
-#endif
-
-int _lib_start_ws()
-{
- WSADATA wsaData;
-
-#ifdef __GNUC__
- memset (&_edata, 0, &_end - &_edata);
-#endif
- return WSAStartup((WORD) MAKEWORD(2, 0), &wsaData);
-}
-
-int _lib_stop_ws()
-{
- WSACleanup();
- return 0;
-}
diff --git a/usr.sbin/httpd/src/os/netware/main_nlm.c b/usr.sbin/httpd/src/os/netware/main_nlm.c
deleted file mode 100644
index 5950d4f73b5..00000000000
--- a/usr.sbin/httpd/src/os/netware/main_nlm.c
+++ /dev/null
@@ -1,10 +0,0 @@
-/* main_NLM.c - Apache executable stub file for NetWare
- * This file's purpose in life is to load, and call the
- * "real" main function, apache_main(), located in ApacheC.nlm
- */
-int apache_main(int argc, char *argv[]);
-
-int main(int argc, char *argv[])
-{
- return apache_main(argc, argv);
-}
diff --git a/usr.sbin/httpd/src/os/netware/mod_log_nw.c b/usr.sbin/httpd/src/os/netware/mod_log_nw.c
deleted file mode 100644
index b66401e5f85..00000000000
--- a/usr.sbin/httpd/src/os/netware/mod_log_nw.c
+++ /dev/null
@@ -1,1298 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-/*
- * Modified by djm@va.pubnix.com:
- * If no TransferLog is given explicitly, decline to log.
- *
- * This is module implements the TransferLog directive (same as the
- * common log module), and additional directives, LogFormat and CustomLog.
- *
- *
- * Syntax:
- *
- * TransferLog fn Logs transfers to fn in standard log format, unless
- * a custom format is set with LogFormat
- * LogFormat format Set a log format from TransferLog files
- * CustomLog fn format
- * Log to file fn with format given by the format
- * argument
- *
- * CookieLog fn For backwards compatability with old Cookie
- * logging module - now deprecated.
- *
- * There can be any number of TransferLog and CustomLog
- * commands. Each request will be logged to _ALL_ the
- * named files, in the appropriate format.
- *
- * If no TransferLog or CustomLog directive appears in a VirtualHost,
- * the request will be logged to the log file(s) defined outside
- * the virtual host section. If a TransferLog or CustomLog directive
- * appears in the VirtualHost section, the log files defined outside
- * the VirtualHost will _not_ be used. This makes this module compatable
- * with the CLF and config log modules, where the use of TransferLog
- * inside the VirtualHost section overrides its use outside.
- *
- * Examples:
- *
- * TransferLog logs/access_log
- * <VirtualHost>
- * LogFormat "... custom format ..."
- * TransferLog log/virtual_only
- * CustomLog log/virtual_useragents "%t %{user-agent}i"
- * </VirtualHost>
- *
- * This will log using CLF to access_log any requests handled by the
- * main server, while any requests to the virtual host will be logged
- * with the "... custom format..." to virtual_only _AND_ using
- * the custom user-agent log to virtual_useragents.
- *
- * Note that the NCSA referer and user-agent logs are easily added with
- * CustomLog:
- * CustomLog logs/referer "%{referer}i -> %U"
- * CustomLog logs/agent "%{user-agent}i"
- *
- * RefererIgnore functionality can be obtained with conditional
- * logging (SetEnvIf and CustomLog ... env=!VAR).
- *
- * But using this method allows much easier modification of the
- * log format, e.g. to log hosts along with UA:
- * CustomLog logs/referer "%{referer}i %U %h"
- *
- * The argument to LogFormat and CustomLog is a string, which can include
- * literal characters copied into the log files, and '%' directives as
- * follows:
- *
- * %...B: bytes sent, excluding HTTP headers.
- * %...b: bytes sent, excluding HTTP headers in CLF format, i.e. a '-'
- * when no bytes where sent (rather than a '0'.
- * %...c: Status of the connection.
- * 'X' = connection aborted before the response completed.
- * '+' = connection may be kept alive after the response is sent.
- * '-' = connection will be closed after the response is sent.
- * %...{FOOBAR}e: The contents of the environment variable FOOBAR
- * %...f: filename
- * %...h: remote host
- * %...a: remote IP-address
- * %...A: local IP-address
- * %...{Foobar}i: The contents of Foobar: header line(s) in the request
- * sent to the client.
- * %...l: remote logname (from identd, if supplied)
- * %...{Foobar}n: The contents of note "Foobar" from another module.
- * %...{Foobar}o: The contents of Foobar: header line(s) in the reply.
- * %...p: the port the request was served to
- * %...P: the process ID of the child that serviced the request.
- * %...r: first line of request
- * %...s: status. For requests that got internally redirected, this
- * is status of the *original* request --- %...>s for the last.
- * %...t: time, in common log format time format
- * %...{format}t: The time, in the form given by format, which should
- * be in strftime(3) format.
- * %...T: the time taken to serve the request, in seconds.
- * %...u: remote user (from auth; may be bogus if return status (%s) is 401)
- * %...U: the URL path requested.
- * %...v: the configured name of the server (i.e. which virtual host?)
- * %...V: the server name according to the UseCanonicalName setting
- * %...m: the request method
- * %...H: the request protocol
- * %...q: the query string prepended by "?", or empty if no query string
- *
- * The '...' can be nothing at all (e.g. "%h %u %r %s %b"), or it can
- * indicate conditions for inclusion of the item (which will cause it
- * to be replaced with '-' if the condition is not met). Note that
- * there is no escaping performed on the strings from %r, %...i and
- * %...o; some with long memories may remember that I thought this was
- * a bad idea, once upon a time, and I'm still not comfortable with
- * it, but it is difficult to see how to "do the right thing" with all
- * of '%..i', unless we URL-escape everything and break with CLF.
- *
- * The forms of condition are a list of HTTP status codes, which may
- * or may not be preceded by '!'. Thus, '%400,501{User-agent}i' logs
- * User-agent: on 400 errors and 501 errors (Bad Request, Not
- * Implemented) only; '%!200,304,302{Referer}i' logs Referer: on all
- * requests which did *not* return some sort of normal status.
- *
- * The default LogFormat reproduces CLF; see below.
- *
- * The way this is supposed to work with virtual hosts is as follows:
- * a virtual host can have its own LogFormat, or its own TransferLog.
- * If it doesn't have its own LogFormat, it inherits from the main
- * server. If it doesn't have its own TransferLog, it writes to the
- * same descriptor (meaning the same process for "| ...").
- *
- * --- rst */
-
-#define DEFAULT_LOG_FORMAT "%h %l %u %t \"%r\" %>s %b"
-
-#include "httpd.h"
-#include "http_config.h"
-#include "http_core.h" /* For REMOTE_NAME */
-#include "http_log.h"
-#include <limits.h>
-
-module MODULE_VAR_EXPORT config_log_module;
-
-static int xfer_flags = (O_WRONLY | O_APPEND | O_CREAT);
-#if defined(OS2) || defined(WIN32) || defined(NETWARE)
-/* OS/2 dosen't support users and groups */
-static mode_t xfer_mode = (S_IREAD | S_IWRITE);
-#else
-static mode_t xfer_mode = (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
-#endif
-
-/* POSIX.1 defines PIPE_BUF as the maximum number of bytes that is
- * guaranteed to be atomic when writing a pipe. And PIPE_BUF >= 512
- * is guaranteed. So we'll just guess 512 in the event the system
- * doesn't have this. Now, for file writes there is actually no limit,
- * the entire write is atomic. Whether all systems implement this
- * correctly is another question entirely ... so we'll just use PIPE_BUF
- * because it's probably a good guess as to what is implemented correctly
- * everywhere.
- */
-#ifdef PIPE_BUF
-#define LOG_BUFSIZE PIPE_BUF
-#else
-#define LOG_BUFSIZE (512)
-#endif
-
-/*
- * multi_log_state is our per-(virtual)-server configuration. We store
- * an array of the logs we are going to use, each of type config_log_state.
- * If a default log format is given by LogFormat, store in default_format
- * (backward compat. with mod_log_config). We also store for each virtual
- * server a pointer to the logs specified for the main server, so that if this
- * vhost has no logs defined, we can use the main server's logs instead.
- *
- * So, for the main server, config_logs contains a list of the log files
- * and server_config_logs in empty. For a vhost, server_config_logs
- * points to the same array as config_logs in the main server, and
- * config_logs points to the array of logs defined inside this vhost,
- * which might be empty.
- */
-
-typedef struct {
- char *default_format_string;
- array_header *default_format;
- array_header *config_logs;
- array_header *server_config_logs;
- table *formats;
- int rotatedaily;
- int rotateinterval;
-} multi_log_state;
-
-/*
- * config_log_state holds the status of a single log file. fname might
- * be NULL, which means this module does no logging for this
- * request. format might be NULL, in which case the default_format
- * from the multi_log_state should be used, or if that is NULL as
- * well, use the CLF. log_fd is -1 before the log file is opened and
- * set to a valid fd after it is opened.
- */
-
-typedef struct {
- char *fname;
- char *format_string;
- array_header *format;
- int log_fd;
- char *condition_var;
-#ifdef BUFFERED_LOGS
- int outcnt;
- char outbuf[LOG_BUFSIZE];
-#endif
- time_t time_jump;
-} config_log_state;
-
-/*
- * Format items...
- * Note that many of these could have ap_sprintfs replaced with static buffers.
- */
-
-typedef const char *(*item_key_func) (request_rec *, char *);
-
-typedef struct {
- item_key_func func;
- char *arg;
- int condition_sense;
- int want_orig;
- array_header *conditions;
-} log_format_item;
-
-static char *format_integer(pool *p, int i)
-{
- return ap_psprintf(p, "%d", i);
-}
-
-static char *pfmt(pool *p, int i)
-{
- if (i <= 0) {
- return "-";
- }
- else {
- return format_integer(p, i);
- }
-}
-
-static const char *constant_item(request_rec *dummy, char *stuff)
-{
- return stuff;
-}
-
-static const char *log_remote_host(request_rec *r, char *a)
-{
- return ap_get_remote_host(r->connection, r->per_dir_config,
- REMOTE_NAME);
-}
-
-static const char *log_remote_address(request_rec *r, char *a)
-{
- return r->connection->remote_ip;
-}
-
-static const char *log_local_address(request_rec *r, char *a)
-{
- return r->connection->local_ip;
-}
-
-static const char *log_remote_logname(request_rec *r, char *a)
-{
- return ap_get_remote_logname(r);
-}
-
-static const char *log_remote_user(request_rec *r, char *a)
-{
- char *rvalue = r->connection->user;
-
- if (rvalue == NULL) {
- rvalue = "-";
- }
- else if (strlen(rvalue) == 0) {
- rvalue = "\"\"";
- }
- return rvalue;
-}
-
-static const char *log_request_line(request_rec *r, char *a)
-{
- /* NOTE: If the original request contained a password, we
- * re-write the request line here to contain XXXXXX instead:
- * (note the truncation before the protocol string for HTTP/0.9 requests)
- * (note also that r->the_request contains the unmodified request)
- */
- return (r->parsed_uri.password) ? ap_pstrcat(r->pool, r->method, " ",
- ap_unparse_uri_components(r->pool, &r->parsed_uri, 0),
- r->assbackwards ? NULL : " ", r->protocol, NULL)
- : r->the_request;
-}
-
-static const char *log_request_file(request_rec *r, char *a)
-{
- return r->filename;
-}
-static const char *log_request_uri(request_rec *r, char *a)
-{
- return r->uri;
-}
-static const char *log_request_method(request_rec *r, char *a)
-{
- return r->method;
-}
-static const char *log_request_protocol(request_rec *r, char *a)
-{
- return r->protocol;
-}
-static const char *log_request_query(request_rec *r, char *a)
-{
- return (r->args != NULL) ? ap_pstrcat(r->pool, "?", r->args, NULL)
- : "";
-}
-static const char *log_status(request_rec *r, char *a)
-{
- return pfmt(r->pool, r->status);
-}
-
-static const char *clf_log_bytes_sent(request_rec *r, char *a)
-{
- if (!r->sent_bodyct) {
- return "-";
- }
- else {
- long int bs;
- ap_bgetopt(r->connection->client, BO_BYTECT, &bs);
- return ap_psprintf(r->pool, "%ld", bs);
- }
-}
-
-static const char *log_bytes_sent(request_rec *r, char *a)
-{
- if (!r->sent_bodyct) {
- return "0";
- }
- else {
- long int bs;
- ap_bgetopt(r->connection->client, BO_BYTECT, &bs);
- return ap_psprintf(r->pool, "%ld", bs);
- }
-}
-
-
-static const char *log_header_in(request_rec *r, char *a)
-{
- return ap_table_get(r->headers_in, a);
-}
-
-static const char *log_header_out(request_rec *r, char *a)
-{
- const char *cp = ap_table_get(r->headers_out, a);
- if (!strcasecmp(a, "Content-type") && r->content_type) {
- cp = ap_field_noparam(r->pool, r->content_type);
- }
- if (cp) {
- return cp;
- }
- return ap_table_get(r->err_headers_out, a);
-}
-
-static const char *log_note(request_rec *r, char *a)
-{
- return ap_table_get(r->notes, a);
-}
-static const char *log_env_var(request_rec *r, char *a)
-{
- return ap_table_get(r->subprocess_env, a);
-}
-
-static const char *log_request_time(request_rec *r, char *a)
-{
- int timz;
- struct tm *t;
- char tstr[MAX_STRING_LEN];
-
- t = ap_get_gmtoff(&timz);
-
- if (a && *a) { /* Custom format */
- strftime(tstr, MAX_STRING_LEN, a, t);
- }
- else { /* CLF format */
- char sign = (timz < 0 ? '-' : '+');
-
- if (timz < 0) {
- timz = -timz;
- }
- ap_snprintf(tstr, sizeof(tstr), "[%02d/%s/%d:%02d:%02d:%02d %c%.2d%.2d]",
- t->tm_mday, ap_month_snames[t->tm_mon], t->tm_year+1900,
- t->tm_hour, t->tm_min, t->tm_sec,
- sign, timz / 60, timz % 60);
- }
-
- return ap_pstrdup(r->pool, tstr);
-}
-
-static const char *log_request_duration(request_rec *r, char *a)
-{
- return ap_psprintf(r->pool, "%ld", time(NULL) - r->request_time);
-}
-
-/* These next two routines use the canonical name:port so that log
- * parsers don't need to duplicate all the vhost parsing crud.
- */
-static const char *log_virtual_host(request_rec *r, char *a)
-{
- return r->server->server_hostname;
-}
-
-static const char *log_server_port(request_rec *r, char *a)
-{
- return ap_psprintf(r->pool, "%u",
- r->server->port ? r->server->port : ap_default_port(r));
-}
-
-/* This respects the setting of UseCanonicalName so that
- * the dynamic mass virtual hosting trick works better.
- */
-static const char *log_server_name(request_rec *r, char *a)
-{
- return ap_get_server_name(r);
-}
-
-static const char *log_child_pid(request_rec *r, char *a)
-{
- return ap_psprintf(r->pool, "%ld", (long) getpid());
-}
-static const char *log_connection_status(request_rec *r, char *a)
-{
- if (r->connection->aborted)
- return "X";
-
- if ((r->connection->keepalive) &&
- ((r->server->keep_alive_max - r->connection->keepalives) > 0)) {
- return "+";
- }
-
- return "-";
-}
-/*****************************************************************
- *
- * Parsing the log format string
- */
-
-static struct log_item_list {
- char ch;
- item_key_func func;
- int want_orig_default;
-} log_item_keys[] = {
-
- {
- 'h', log_remote_host, 0
- },
- {
- 'a', log_remote_address, 0
- },
- {
- 'A', log_local_address, 0
- },
- {
- 'l', log_remote_logname, 0
- },
- {
- 'u', log_remote_user, 0
- },
- {
- 't', log_request_time, 0
- },
- {
- 'T', log_request_duration, 1
- },
- {
- 'r', log_request_line, 1
- },
- {
- 'f', log_request_file, 0
- },
- {
- 'U', log_request_uri, 1
- },
- {
- 's', log_status, 1
- },
- {
- 'b', clf_log_bytes_sent, 0
- },
- {
- 'B', log_bytes_sent, 0
- },
- {
- 'i', log_header_in, 0
- },
- {
- 'o', log_header_out, 0
- },
- {
- 'n', log_note, 0
- },
- {
- 'e', log_env_var, 0
- },
- {
- 'V', log_server_name, 0
- },
- {
- 'v', log_virtual_host, 0
- },
- {
- 'p', log_server_port, 0
- },
- {
- 'P', log_child_pid, 0
- },
- {
- 'H', log_request_protocol, 0
- },
- {
- 'm', log_request_method, 0
- },
- {
- 'q', log_request_query, 0
- },
- {
- 'c', log_connection_status, 0
- },
- {
- '\0'
- }
-};
-
-static struct log_item_list *find_log_func(char k)
-{
- int i;
-
- for (i = 0; log_item_keys[i].ch; ++i)
- if (k == log_item_keys[i].ch) {
- return &log_item_keys[i];
- }
-
- return NULL;
-}
-
-static char *parse_log_misc_string(pool *p, log_format_item *it,
- const char **sa)
-{
- const char *s;
- char *d;
-
- it->func = constant_item;
- it->conditions = NULL;
-
- s = *sa;
- while (*s && *s != '%') {
- s++;
- }
- /*
- * This might allocate a few chars extra if there's a backslash
- * escape in the format string.
- */
- it->arg = ap_palloc(p, s - *sa + 1);
-
- d = it->arg;
- s = *sa;
- while (*s && *s != '%') {
- if (*s != '\\') {
- *d++ = *s++;
- }
- else {
- s++;
- switch (*s) {
- case '\\':
- *d++ = '\\';
- s++;
- break;
- case 'n':
- *d++ = '\n';
- s++;
- break;
- case 't':
- *d++ = '\t';
- s++;
- break;
- default:
- /* copy verbatim */
- *d++ = '\\';
- /*
- * Allow the loop to deal with this *s in the normal
- * fashion so that it handles end of string etc.
- * properly.
- */
- break;
- }
- }
- }
- *d = '\0';
-
- *sa = s;
- return NULL;
-}
-
-static char *parse_log_item(pool *p, log_format_item *it, const char **sa)
-{
- const char *s = *sa;
-
- if (*s != '%') {
- return parse_log_misc_string(p, it, sa);
- }
-
- ++s;
- it->condition_sense = 0;
- it->conditions = NULL;
- it->want_orig = -1;
- it->arg = ""; /* For safety's sake... */
-
- while (*s) {
- int i;
- struct log_item_list *l;
-
- switch (*s) {
- case '!':
- ++s;
- it->condition_sense = !it->condition_sense;
- break;
-
- case '<':
- ++s;
- it->want_orig = 1;
- break;
-
- case '>':
- ++s;
- it->want_orig = 0;
- break;
-
- case ',':
- ++s;
- break;
-
- case '{':
- ++s;
- it->arg = ap_getword(p, &s, '}');
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- i = *s - '0';
- while (ap_isdigit(*++s)) {
- i = i * 10 + (*s) - '0';
- }
- if (!it->conditions) {
- it->conditions = ap_make_array(p, 4, sizeof(int));
- }
- *(int *) ap_push_array(it->conditions) = i;
- break;
-
- default:
- l = find_log_func(*s++);
- if (!l) {
- char dummy[2];
-
- dummy[0] = s[-1];
- dummy[1] = '\0';
- return ap_pstrcat(p, "Unrecognized LogFormat directive %",
- dummy, NULL);
- }
- it->func = l->func;
- if (it->want_orig == -1) {
- it->want_orig = l->want_orig_default;
- }
- *sa = s;
- return NULL;
- }
- }
-
- return "Ran off end of LogFormat parsing args to some directive";
-}
-
-static array_header *parse_log_string(pool *p, const char *s, const char **err)
-{
- array_header *a = ap_make_array(p, 30, sizeof(log_format_item));
- char *res;
-
- while (*s) {
- if ((res = parse_log_item(p, (log_format_item *) ap_push_array(a), &s))) {
- *err = res;
- return NULL;
- }
- }
-
- s = "\n";
- parse_log_item(p, (log_format_item *) ap_push_array(a), &s);
- return a;
-}
-
-/*****************************************************************
- *
- * Actually logging.
- */
-
-static const char *process_item(request_rec *r, request_rec *orig,
- log_format_item *item)
-{
- const char *cp;
-
- /* First, see if we need to process this thing at all... */
-
- if (item->conditions && item->conditions->nelts != 0) {
- int i;
- int *conds = (int *) item->conditions->elts;
- int in_list = 0;
-
- for (i = 0; i < item->conditions->nelts; ++i) {
- if (r->status == conds[i]) {
- in_list = 1;
- break;
- }
- }
-
- if ((item->condition_sense && in_list)
- || (!item->condition_sense && !in_list)) {
- return "-";
- }
- }
-
- /* We do. Do it... */
-
- cp = (*item->func) (item->want_orig ? orig : r, item->arg);
- return cp ? cp : "-";
-}
-
-#ifdef BUFFERED_LOGS
-static void flush_log(config_log_state *cls)
-{
- if (cls->outcnt && cls->log_fd != -1) {
- write(cls->log_fd, cls->outbuf, cls->outcnt);
- cls->outcnt = 0;
- }
-}
-#endif
-
-static int config_log_transaction(request_rec *r, config_log_state *cls,
- array_header *default_format)
-{
- log_format_item *items;
- char *str, *s;
- const char **strs;
- int *strl;
- request_rec *orig;
- int i;
- int len = 0;
- array_header *format;
- char *envar;
- int log_fd;
-
- multi_log_state *mls = ap_get_module_config(r->server->module_config,&config_log_module);
-
- if ((mls->rotatedaily || mls->rotateinterval) &&
- (r->request_time>=cls->time_jump) &&
- (*cls->fname!='|') && (strcmp(cls->fname,"/dev/null") != 0)) {
- char * fname;
- struct tm *time_tmp;
-
- if (mls->rotatedaily) {
- time_tmp=localtime(&(r->request_time));
- cls->time_jump=r->request_time+((60-time_tmp->tm_sec)+60*(59-time_tmp->tm_min)+3600*(23-time_tmp->tm_hour));
- }
- else
- cls->time_jump = r->request_time + (60*mls->rotateinterval);
-
- fname = ap_pstrcat(r->pool,
- ap_server_root_relative(r->pool, cls->fname),
- "-",
- ap_ht_time(r->pool,r->request_time,"%Y%m%d%H%M",0),
- NULL
- );
-
- if ((log_fd = open(fname, xfer_flags, xfer_mode)) < 0) {
- ap_log_error(APLOG_MARK, APLOG_ERR, r->server,
- "could not open transfer log file %s.", fname);
- }
- else {
- dup2 (log_fd, cls->log_fd);
- close (log_fd);
- }
- }
-
- if (cls->fname == NULL) {
- return DECLINED;
- }
-
- /*
- * See if we've got any conditional envariable-controlled logging decisions
- * to make.
- */
- if (cls->condition_var != NULL) {
- envar = cls->condition_var;
- if (*envar != '!') {
- if (ap_table_get(r->subprocess_env, envar) == NULL) {
- return DECLINED;
- }
- }
- else {
- if (ap_table_get(r->subprocess_env, &envar[1]) != NULL) {
- return DECLINED;
- }
- }
- }
-
- format = cls->format ? cls->format : default_format;
-
- strs = ap_palloc(r->pool, sizeof(char *) * (format->nelts));
- strl = ap_palloc(r->pool, sizeof(int) * (format->nelts));
- items = (log_format_item *) format->elts;
-
- orig = r;
- while (orig->prev) {
- orig = orig->prev;
- }
- while (r->next) {
- r = r->next;
- }
-
- for (i = 0; i < format->nelts; ++i) {
- strs[i] = process_item(r, orig, &items[i]);
- }
-
- for (i = 0; i < format->nelts; ++i) {
- len += strl[i] = strlen(strs[i]);
- }
-
-#ifdef BUFFERED_LOGS
- if (len + cls->outcnt > LOG_BUFSIZE) {
- flush_log(cls);
- }
- if (len >= LOG_BUFSIZE) {
- str = ap_palloc(r->pool, len + 1);
- for (i = 0, s = str; i < format->nelts; ++i) {
- memcpy(s, strs[i], strl[i]);
- s += strl[i];
- }
- write(cls->log_fd, str, len);
- }
- else {
- for (i = 0, s = &cls->outbuf[cls->outcnt]; i < format->nelts; ++i) {
- memcpy(s, strs[i], strl[i]);
- s += strl[i];
- }
- cls->outcnt += len;
- }
-#else
- str = ap_palloc(r->pool, len + 1);
-
- for (i = 0, s = str; i < format->nelts; ++i) {
- memcpy(s, strs[i], strl[i]);
- s += strl[i];
- }
-
- write(cls->log_fd, str, len);
-#endif
-
- return OK;
-}
-
-static int multi_log_transaction(request_rec *r)
-{
- multi_log_state *mls = ap_get_module_config(r->server->module_config,
- &config_log_module);
- config_log_state *clsarray;
- int i;
-
- /*
- * Log this transaction..
- */
- if (mls->config_logs->nelts) {
- clsarray = (config_log_state *) mls->config_logs->elts;
- for (i = 0; i < mls->config_logs->nelts; ++i) {
- config_log_state *cls = &clsarray[i];
-
- config_log_transaction(r, cls, mls->default_format);
- }
- }
- else if (mls->server_config_logs) {
- clsarray = (config_log_state *) mls->server_config_logs->elts;
- for (i = 0; i < mls->server_config_logs->nelts; ++i) {
- config_log_state *cls = &clsarray[i];
-
- config_log_transaction(r, cls, mls->default_format);
- }
- }
-
- return OK;
-}
-
-/*****************************************************************
- *
- * Module glue...
- */
-
-static void *make_config_log_state(pool *p, server_rec *s)
-{
- multi_log_state *mls;
-
- mls = (multi_log_state *) ap_palloc(p, sizeof(multi_log_state));
- mls->config_logs = ap_make_array(p, 1, sizeof(config_log_state));
- mls->default_format_string = NULL;
- mls->default_format = NULL;
- mls->server_config_logs = NULL;
- mls->formats = ap_make_table(p, 4);
- ap_table_setn(mls->formats, "CLF", DEFAULT_LOG_FORMAT);
- mls->rotatedaily = 0;
- mls->rotateinterval = 0;
-
- return mls;
-}
-
-/*
- * Use the merger to simply add a pointer from the vhost log state
- * to the log of logs specified for the non-vhost configuration. Make sure
- * vhosts inherit any globally-defined format names.
- */
-
-static void *merge_config_log_state(pool *p, void *basev, void *addv)
-{
- multi_log_state *base = (multi_log_state *) basev;
- multi_log_state *add = (multi_log_state *) addv;
-
- if (add->rotatedaily==0) {
- add->rotatedaily=base->rotatedaily;
- }
- if (add->rotateinterval==0) {
- add->rotateinterval=base->rotateinterval;
- }
-
- add->server_config_logs = base->config_logs;
- if (!add->default_format) {
- add->default_format_string = base->default_format_string;
- add->default_format = base->default_format;
- }
- add->formats = ap_overlay_tables(p, base->formats, add->formats);
-
- return add;
-}
-
-/*
- * Set the default logfile format, or define a nickname for a format string.
- */
-static const char *log_format(cmd_parms *cmd, void *dummy, char *fmt,
- char *name)
-{
- const char *err_string = NULL;
- multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
- &config_log_module);
-
- /*
- * If we were given two arguments, the second is a name to be given to the
- * format. This syntax just defines the nickname - it doesn't actually
- * make the format the default.
- */
- if (name != NULL) {
- parse_log_string(cmd->pool, fmt, &err_string);
- if (err_string == NULL) {
- ap_table_setn(mls->formats, name, fmt);
- }
- }
- else {
- mls->default_format_string = fmt;
- mls->default_format = parse_log_string(cmd->pool, fmt, &err_string);
- }
- return err_string;
-}
-
-
-static const char *add_custom_log(cmd_parms *cmd, void *dummy, char *fn,
- char *fmt, char *envclause)
-{
- const char *err_string = NULL;
- multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
- &config_log_module);
- config_log_state *cls;
-
- cls = (config_log_state *) ap_push_array(mls->config_logs);
- cls->condition_var = NULL;
- if (envclause != NULL) {
- if (strncasecmp(envclause, "env=", 4) != 0) {
- return "error in condition clause";
- }
- if ((envclause[4] == '\0')
- || ((envclause[4] == '!') && (envclause[5] == '\0'))) {
- return "missing environment variable name";
- }
- cls->condition_var = ap_pstrdup(cmd->pool, &envclause[4]);
- }
-
- cls->fname = fn;
- cls->format_string = fmt;
- if (fmt == NULL) {
- cls->format = NULL;
- }
- else {
- cls->format = parse_log_string(cmd->pool, fmt, &err_string);
- }
- cls->log_fd = -1;
-
- return err_string;
-}
-
-static const char *set_transfer_log(cmd_parms *cmd, void *dummy, char *fn)
-{
- return add_custom_log(cmd, dummy, fn, NULL, NULL);
-}
-
-static const char *set_cookie_log(cmd_parms *cmd, void *dummy, char *fn)
-{
- return add_custom_log(cmd, dummy, fn, "%{Cookie}n \"%r\" %t", NULL);
-}
-
-static const char *set_rotate_log_daily(cmd_parms *cmd, void *dummy, int arg)
-{
- multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
- &config_log_module);
-
- mls->rotatedaily = arg;
- if (mls->rotatedaily)
- mls->rotateinterval = 0;
- return NULL;
-}
-
-static const char *set_rotate_log_interval(cmd_parms *cmd, void *dummy, char *arg)
-{
- multi_log_state *mls = ap_get_module_config(cmd->server->module_config,
- &config_log_module);
- int interval = 0;
-
- if (arg)
- interval = atoi(arg);
-
- if (interval < 0)
- return NULL;
-
- mls->rotatedaily = 0;
- mls->rotateinterval = interval;
- return NULL;
-}
-
-static const command_rec config_log_cmds[] =
-{
- {"CustomLog", add_custom_log, NULL, RSRC_CONF, TAKE23,
- "a file name, a custom log format string or format name, "
- "and an optional \"env=\" clause (see docs)"},
- {"TransferLog", set_transfer_log, NULL, RSRC_CONF, TAKE1,
- "the filename of the access log"},
- {"LogFormat", log_format, NULL, RSRC_CONF, TAKE12,
- "a log format string (see docs) and an optional format name"},
- {"CookieLog", set_cookie_log, NULL, RSRC_CONF, TAKE1,
- "the filename of the cookie log"},
- {"LogRotateDaily", set_rotate_log_daily, NULL, RSRC_CONF, FLAG,
- "rotate logs daily (On:Off)"},
- {"LogRotateInterval", set_rotate_log_interval, NULL, RSRC_CONF, TAKE1,
- "rotate logs every NNN minutes"},
- {NULL}
-};
-
-static config_log_state *open_config_log(server_rec *s, pool *p,
- config_log_state *cls,
- array_header *default_format)
-{
- if (cls->log_fd > 0) {
- return cls; /* virtual config shared w/main server */
- }
-
- if (cls->fname == NULL) {
- return cls; /* Leave it NULL to decline. */
- }
-
- if (*cls->fname == '|') {
- piped_log *pl;
-
- pl = ap_open_piped_log(p, cls->fname + 1);
- if (pl == NULL) {
- exit(1);
- }
- cls->log_fd = ap_piped_log_write_fd(pl);
- }
- else {
- char * fname;
- struct tm *time_tmp;
- time_t time_now;
- multi_log_state *mls = ap_get_module_config(s->module_config,&config_log_module);
-
- if ((mls->rotatedaily || mls->rotateinterval)&&(*cls->fname!='|')&&(strcmp(cls->fname,"/dev/null") != 0)) {
- time_now=time(NULL);
- if (mls->rotatedaily) {
- time_tmp=localtime(&time_now);
- cls->time_jump=time_now+((60-time_tmp->tm_sec)+60*(59-time_tmp->tm_min)+3600*(23-time_tmp->tm_hour));
- }
- else
- cls->time_jump = time_now + (60*mls->rotateinterval);
- fname = ap_pstrcat(p,
- ap_server_root_relative(p, cls->fname),
- "-",
- ap_ht_time(p,time_now,"%Y%m%d%H%M",0),
- NULL
- );
- } else {
- fname = ap_server_root_relative(p, cls->fname);
- }
-
- if ((cls->log_fd = ap_popenf_ex(p, fname, xfer_flags, xfer_mode, 1)) < 0) {
- ap_log_error(APLOG_MARK, APLOG_ERR, s,
- "could not open transfer log file %s.", fname);
- exit(1);
- }
- }
-#ifdef BUFFERED_LOGS
- cls->outcnt = 0;
-#endif
-
- return cls;
-}
-
-static config_log_state *open_multi_logs(server_rec *s, pool *p)
-{
- int i;
- multi_log_state *mls = ap_get_module_config(s->module_config,
- &config_log_module);
- config_log_state *clsarray;
- const char *dummy;
- const char *format;
-
- if (mls->default_format_string) {
- format = ap_table_get(mls->formats, mls->default_format_string);
- if (format) {
- mls->default_format = parse_log_string(p, format, &dummy);
- }
- }
-
- if (!mls->default_format) {
- mls->default_format = parse_log_string(p, DEFAULT_LOG_FORMAT, &dummy);
- }
-
- if (mls->config_logs->nelts) {
- clsarray = (config_log_state *) mls->config_logs->elts;
- for (i = 0; i < mls->config_logs->nelts; ++i) {
- config_log_state *cls = &clsarray[i];
-
- if (cls->format_string) {
- format = ap_table_get(mls->formats, cls->format_string);
- if (format) {
- cls->format = parse_log_string(p, format, &dummy);
- }
- }
-
- cls = open_config_log(s, p, cls, mls->default_format);
- }
- }
- else if (mls->server_config_logs) {
- clsarray = (config_log_state *) mls->server_config_logs->elts;
- for (i = 0; i < mls->server_config_logs->nelts; ++i) {
- config_log_state *cls = &clsarray[i];
-
- if (cls->format_string) {
- format = ap_table_get(mls->formats, cls->format_string);
- if (format) {
- cls->format = parse_log_string(p, format, &dummy);
- }
- }
-
- cls = open_config_log(s, p, cls, mls->default_format);
- }
- }
-
- return NULL;
-}
-
-static void init_config_log(server_rec *s, pool *p)
-{
- /* First, do "physical" server, which gets default log fd and format
- * for the virtual servers, if they don't override...
- */
-
- open_multi_logs(s, p);
-
- /* Then, virtual servers */
-
- for (s = s->next; s; s = s->next) {
- open_multi_logs(s, p);
- }
-}
-
-#ifdef BUFFERED_LOGS
-static void flush_all_logs(server_rec *s, pool *p)
-{
- multi_log_state *mls;
- array_header *log_list;
- config_log_state *clsarray;
- int i;
-
- for (; s; s = s->next) {
- mls = ap_get_module_config(s->module_config, &config_log_module);
- log_list = NULL;
- if (mls->config_logs->nelts) {
- log_list = mls->config_logs;
- }
- else if (mls->server_config_logs) {
- log_list = mls->server_config_logs;
- }
- if (log_list) {
- clsarray = (config_log_state *) log_list->elts;
- for (i = 0; i < log_list->nelts; ++i) {
- flush_log(&clsarray[i]);
- }
- }
- }
-}
-#endif
-
-module MODULE_VAR_EXPORT config_log_module =
-{
- STANDARD_MODULE_STUFF,
- init_config_log, /* initializer */
- NULL, /* create per-dir config */
- NULL, /* merge per-dir config */
- make_config_log_state, /* server config */
- merge_config_log_state, /* merge server config */
- config_log_cmds, /* command table */
- NULL, /* handlers */
- NULL, /* filename translation */
- NULL, /* check_user_id */
- NULL, /* check auth */
- NULL, /* check access */
- NULL, /* type_checker */
- NULL, /* fixups */
- multi_log_transaction, /* logger */
- NULL, /* header parser */
- NULL, /* child_init */
-#ifdef BUFFERED_LOGS
- flush_all_logs, /* child_exit */
-#else
- NULL,
-#endif
- NULL /* post read-request */
-};
diff --git a/usr.sbin/httpd/src/os/netware/mod_nlm.c b/usr.sbin/httpd/src/os/netware/mod_nlm.c
deleted file mode 100644
index 07188ff2b8e..00000000000
--- a/usr.sbin/httpd/src/os/netware/mod_nlm.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#include "httpd.h"
-#include "http_config.h"
-#include <nwadv.h>
-
-module MODULE_VAR_EXPORT nlm_module;
-static int been_there_done_that = 0; /* Loaded the modules yet? */
-
-static const char *load_module(cmd_parms *cmd, void *dummy, char *modname, char *filename)
-{
- module *modp;
- int nlmHandle;
- const char *szModuleFile = ap_server_root_relative(cmd->pool, filename);
-
- if (been_there_done_that)
- return NULL;
-
- nlmHandle = FindNLMHandle(filename);
-
- if (nlmHandle == NULL) {
- spawnlp(P_NOWAIT, szModuleFile, NULL);
- nlmHandle = FindNLMHandle(filename);
-
- if (nlmHandle == NULL)
- return ap_pstrcat(cmd->pool, "Cannot load ", szModuleFile,
- " into server", NULL);
- }
-
- modp = (module *) ImportSymbol(nlmHandle, modname);
-
- if (!modp)
- return ap_pstrcat(cmd->pool, "Can't find module ", modname,
- " in file ", filename, NULL);
-
- ap_add_module(modp);
-
- if (modp->create_server_config)
- ((void**)cmd->server->module_config)[modp->module_index] =
- (*modp->create_server_config)(cmd->pool, cmd->server);
-
- if (modp->create_dir_config)
- ((void**)cmd->server->lookup_defaults)[modp->module_index] =
- (*modp->create_dir_config)(cmd->pool, NULL);
-
- return NULL;
-}
-
-static const char *load_file(cmd_parms *cmd, void *dummy, char *filename)
-{
- if (been_there_done_that)
- return NULL;
-
- if (spawnlp(P_NOWAIT, ap_server_root_relative(cmd->pool, filename), NULL))
- return ap_pstrcat(cmd->pool, "Cannot load ", filename, " into server", NULL);
-
- return NULL;
-}
-
-void check_loaded_modules(server_rec *dummy, pool *p)
-{
- if (been_there_done_that)
- return;
-
- been_there_done_that = 1;
-}
-
-command_rec nlm_cmds[] = {
-{ "LoadModule", load_module, NULL, RSRC_CONF, TAKE2,
- "a module name, and the name of a file to load it from"},
-{ "LoadFile", load_file, NULL, RSRC_CONF, ITERATE,
- "files or libraries to link into the server at runtime"},
-{ NULL }
-};
-
-module nlm_module = {
- STANDARD_MODULE_STUFF,
- check_loaded_modules, /* initializer */
- NULL, /* create per-dir config */
- NULL, /* merge per-dir config */
- NULL, /* server config */
- NULL, /* merge server config */
- nlm_cmds, /* command table */
- NULL, /* handlers */
- NULL, /* filename translation */
- NULL, /* check_user_id */
- NULL, /* check auth */
- NULL, /* check access */
- NULL, /* type_checker */
- NULL, /* logger */
- NULL /* header parser */
-};
-
diff --git a/usr.sbin/httpd/src/os/netware/mod_tls.c b/usr.sbin/httpd/src/os/netware/mod_tls.c
deleted file mode 100644
index 5214427e8c7..00000000000
--- a/usr.sbin/httpd/src/os/netware/mod_tls.c
+++ /dev/null
@@ -1,416 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-/*
- * mod_tls.c - Apache SSL/TLS module for NetWare by Mike Gardiner.
- *
- * This module gives Apache the ability to do SSL/TLS with a minimum amount
- * of effort. All of the SSL/TLS logic is already on NetWare versions 5 and
- * above and is interfaced through WinSock on NetWare. As you can see in
- * the code below SSL/TLS sockets can be created with three WinSock calls.
- *
- * To load, simply place the module in the modules directory under the main
- * apache tree. Then add a "SecureListen" with two arguments. The first
- * argument is an address and/or port. The second argument is the key pair
- * name as created in ConsoleOne.
- *
- * Examples:
- *
- * SecureListen 443 "SSL CertificateIP"
- * SecureListen 123.45.67.89:443 mycert
- */
-
-#define CORE_PRIVATE
-#define WS_SSL
-
-#define MAX_ADDRESS 512
-#define MAX_KEY 80
-
-#include "httpd.h"
-#include "http_config.h"
-#include "http_conf_globals.h"
-#include "http_log.h"
-#include "http_main.h"
-
-module MODULE_VAR_EXPORT tls_module;
-
-typedef struct TLSSrvConfigRec TLSSrvConfigRec;
-typedef struct seclisten_rec seclisten_rec;
-static fd_set listenfds;
-
-struct seclisten_rec {
- seclisten_rec *next;
- struct sockaddr_in local_addr; /* local IP address and port */
- int fd;
- int used; /* Only used during restart */
- char key[MAX_KEY];
- int mutual;
-};
-
-struct TLSSrvConfigRec {
- table *sltable;
-};
-
-static seclisten_rec* ap_seclisteners = NULL;
-
-#define get_tls_cfg(srv) (TLSSrvConfigRec *) ap_get_module_config(srv->module_config, &tls_module)
-
-
-static int find_secure_listener(seclisten_rec *lr)
-{
- seclisten_rec *sl;
-
- for (sl = ap_seclisteners; sl; sl = sl->next) {
- if (!memcmp(&sl->local_addr, &lr->local_addr, sizeof(sl->local_addr))) {
- sl->used = 1;
- return sl->fd;
- }
- }
- return -1;
-}
-
-
-static int make_secure_socket(pool *p, const struct sockaddr_in *server,
- char* key, int mutual, server_rec *server_conf)
-{
- int s;
- int one = 1;
- char addr[MAX_ADDRESS];
- struct sslserveropts opts;
- struct linger li;
- unsigned int optParam;
- WSAPROTOCOL_INFO SecureProtoInfo;
- int no = 1;
-
- if (server->sin_addr.s_addr != htonl(INADDR_ANY))
- ap_snprintf(addr, sizeof(addr), "address %s port %d",
- inet_ntoa(server->sin_addr), ntohs(server->sin_port));
- else
- ap_snprintf(addr, sizeof(addr), "port %d", ntohs(server->sin_port));
-
- /* note that because we're about to slack we don't use psocket */
- ap_block_alarms();
- memset(&SecureProtoInfo, 0, sizeof(WSAPROTOCOL_INFO));
-
- SecureProtoInfo.iAddressFamily = AF_INET;
- SecureProtoInfo.iSocketType = SOCK_STREAM;
- SecureProtoInfo.iProtocol = IPPROTO_TCP;
- SecureProtoInfo.iSecurityScheme = SECURITY_PROTOCOL_SSL;
-
- s = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP,
- (LPWSAPROTOCOL_INFO)&SecureProtoInfo, 0, 0);
-
- if (s == INVALID_SOCKET) {
- errno = WSAGetLastError();
- ap_log_error(APLOG_MARK, APLOG_CRIT, server_conf,
- "make_secure_socket: failed to get a socket for %s", addr);
- ap_unblock_alarms();
- return -1;
- }
-
- if (!mutual) {
- optParam = SO_SSL_ENABLE | SO_SSL_SERVER;
-
- if (WSAIoctl(s, SO_SSL_SET_FLAGS, (char *)&optParam,
- sizeof(optParam), NULL, 0, NULL, NULL, NULL)) {
- errno = WSAGetLastError();
- ap_log_error(APLOG_MARK, APLOG_CRIT, server_conf,
- "make_secure_socket: for %s, WSAIoctl: (SO_SSL_SET_FLAGS)", addr);
- ap_unblock_alarms();
- return -1;
- }
- }
-
- opts.cert = key;
- opts.certlen = strlen(key);
- opts.sidtimeout = 0;
- opts.sidentries = 0;
- opts.siddir = NULL;
-
- if (WSAIoctl(s, SO_SSL_SET_SERVER, (char *)&opts, sizeof(opts),
- NULL, 0, NULL, NULL, NULL) != 0) {
- errno = WSAGetLastError();
- ap_log_error(APLOG_MARK, APLOG_CRIT, server_conf,
- "make_secure_socket: for %s, WSAIoctl: (SO_SSL_SET_SERVER)", addr);
- ap_unblock_alarms();
- return -1;
- }
-
- if (mutual) {
- optParam = 0x07; // SO_SSL_AUTH_CLIENT
-
- if(WSAIoctl(s, SO_SSL_SET_FLAGS, (char*)&optParam,
- sizeof(optParam), NULL, 0, NULL, NULL, NULL)) {
- errno = WSAGetLastError();
- ap_log_error( APLOG_MARK, APLOG_CRIT, server_conf,
- "make_secure_socket: for %s, WSAIoctl: (SO_SSL_SET_FLAGS)", addr );
- ap_unblock_alarms();
- return -1;
- }
- }
-
- if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *) &one, sizeof(int)) < 0) {
- errno = WSAGetLastError();
- ap_log_error(APLOG_MARK, APLOG_CRIT, server_conf,
- "make_secure_socket: for %s, setsockopt: (SO_REUSEADDR)", addr);
- ap_unblock_alarms();
- return -1;
- }
-
- one = 1;
-#ifdef SO_KEEPALIVE
- if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (char *) &one, sizeof(int)) < 0) {
- errno = WSAGetLastError();
- ap_log_error(APLOG_MARK, APLOG_CRIT, server_conf,
- "make_secure_socket: for %s, setsockopt: (SO_KEEPALIVE)", addr);
-#endif
- ap_unblock_alarms();
- return -1;
- }
-
- if (server_conf->send_buffer_size) {
- if (setsockopt(s, SOL_SOCKET, SO_SNDBUF,
- (char *) &server_conf->send_buffer_size, sizeof(int)) < 0) {
- errno = WSAGetLastError();
- ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf,
- "make_secure_socket: failed to set SendBufferSize for %s, "
- "using default", addr);
- ap_unblock_alarms();
- return -1;
- }
- }
-
- if (bind(s, (struct sockaddr *) server, sizeof(struct sockaddr_in)) == -1) {
- errno = WSAGetLastError();
- ap_log_error(APLOG_MARK, APLOG_CRIT, server_conf,
- "make_secure_socket: could not bind to %s", addr);
- ap_unblock_alarms();
- return -1;
- }
-
- if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (char *) &no, sizeof(int)) < 0) {
- errno = WSAGetLastError();
- ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf,
- "setsockopt: (TCP_NODELAY)");
- }
-
- if (listen(s, ap_listenbacklog) == -1) {
- errno = WSAGetLastError();
- ap_log_error(APLOG_MARK, APLOG_ERR, server_conf,
- "make_secure_socket: unable to listen for connections on %s", addr);
- ap_unblock_alarms();
- return -1;
- }
-
- ap_unblock_alarms();
- return s;
-}
-
-static const char *set_secure_listener(cmd_parms *cmd, void *dummy, char *ips, char* key, char* mutual)
-{
- TLSSrvConfigRec* sc = get_tls_cfg(cmd->server);
- const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
- char *ports;
- unsigned short port;
- seclisten_rec *new;
-
-
- if (err != NULL)
- return err;
-
- ports = strchr(ips, ':');
-
- if (ports != NULL) {
- if (ports == ips)
- return "Missing IP address";
- else if (ports[1] == '\0')
- return "Address must end in :<port-number>";
-
- *(ports++) = '\0';
- }
- else {
- ports = ips;
- }
-
- new = ap_pcalloc(cmd->pool, sizeof(seclisten_rec));
- new->local_addr.sin_family = AF_INET;
-
- if (ports == ips)
- new->local_addr.sin_addr.s_addr = htonl(INADDR_ANY);
- else
- new->local_addr.sin_addr.s_addr = ap_get_virthost_addr(ips, NULL);
-
- port = atoi(ports);
-
- if (!port)
- return "Port must be numeric";
-
- ap_table_set(sc->sltable, ports, "T");
-
- new->local_addr.sin_port = htons(port);
- new->fd = -1;
- new->used = 0;
- new->next = ap_seclisteners;
- strcpy(new->key, key);
- new->mutual = (mutual) ? 1 : 0;
- ap_seclisteners = new;
- return NULL;
-}
-
-static void InitTLS(server_rec *s, pool *p)
-{
- seclisten_rec* sl;
- listen_rec* lr;
-
- for (sl = ap_seclisteners; sl != NULL; sl = sl->next) {
- sl->fd = find_secure_listener(sl);
-
- if (sl->fd < 0)
- sl->fd = make_secure_socket(p, &sl->local_addr, sl->key, sl->mutual, s);
- else
- ap_note_cleanups_for_socket(p, sl->fd);
-
- if (sl->fd >= 0) {
- FD_SET(sl->fd, &listenfds);
- ap_note_cleanups_for_socket(p, sl->fd);
-
- lr = ap_pcalloc(p, sizeof(listen_rec));
-
- if (lr) {
- lr->local_addr = sl->local_addr;
- lr->used = 0;
- lr->fd = sl->fd;
- lr->next = ap_listeners;
- ap_listeners = lr;
- }
- } else {
- clean_parent_exit(1);
- }
- }
-}
-
-void *tls_config_server_create(pool *p, server_rec *s)
-{
- TLSSrvConfigRec *new = ap_palloc(p, sizeof(TLSSrvConfigRec));
- new->sltable = ap_make_table(p, 5);
- return new;
-}
-
-void *tls_config_server_merge(pool *p, void *basev, void *addv)
-{
- TLSSrvConfigRec *base = (TLSSrvConfigRec *)basev;
- TLSSrvConfigRec *add = (TLSSrvConfigRec *)addv;
- TLSSrvConfigRec *merged = (TLSSrvConfigRec *)ap_palloc(p, sizeof(TLSSrvConfigRec));
- return merged;
-}
-
-int tls_hook_Fixup(request_rec *r)
-{
- TLSSrvConfigRec *sc = get_tls_cfg(r->server);
- table *e = r->subprocess_env;
- const char *s_secure;
- char port[8];
-
-
- /* For some reason r->server->port always return 80 rather than
- * the current port. So for now we will get it straight from
- * the horses mouth.
- */
- /* itoa(r->server->port, port, 10); */
- itoa(ntohs(((r->connection)->local_addr).sin_port), port, 10);
- s_secure = ap_table_get(sc->sltable, port);
-
- if (!s_secure)
- return DECLINED;
-
- ap_table_set(e, "HTTPS", "on");
-
- return DECLINED;
-}
-
-static const command_rec tls_module_cmds[] = {
- { "SecureListen", set_secure_listener, NULL, RSRC_CONF, TAKE23,
- "specify an address and/or port with a key pair name.\n"
- "Optional third parameter of MUTUAL configures the port for mutual authentication."},
- { NULL }
-};
-
-module MODULE_VAR_EXPORT tls_module =
-{
- STANDARD_MODULE_STUFF,
- InitTLS, /* initializer */
- NULL, /* dir config creater */
- NULL, /* dir merger --- default is to override */
- tls_config_server_create, /* server config */
- tls_config_server_merge, /* merge server config */
- tls_module_cmds, /* command table */
- NULL, /* handlers */
- NULL, /* filename translation */
- NULL, /* check_user_id */
- NULL, /* check auth */
- NULL, /* check access */
- NULL, /* type_checker */
- NULL, /* fixups */
- NULL, /* logger */
- NULL, /* header parser */
- NULL, /* child_init */
- NULL, /* child_exit */
- tls_hook_Fixup /* post read request */
-};
-
-
diff --git a/usr.sbin/httpd/src/os/netware/modules.c b/usr.sbin/httpd/src/os/netware/modules.c
deleted file mode 100644
index 16e6688a762..00000000000
--- a/usr.sbin/httpd/src/os/netware/modules.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* modules.c --- major modules compiled into Apache for NetWare.
- * Only insert an entry for a module if it must be compiled into
- * the core server
- */
-
-#include "httpd.h"
-#include "http_config.h"
-
-extern module core_module;
-extern module so_module;
-extern module mime_module;
-extern module access_module;
-extern module auth_module;
-extern module negotiation_module;
-extern module includes_module;
-extern module autoindex_module;
-extern module dir_module;
-// extern module cgi_module;
-extern module userdir_module;
-extern module alias_module;
-extern module env_module;
-extern module config_log_module;
-extern module asis_module;
-extern module imap_module;
-extern module action_module;
-extern module setenvif_module;
-
-module *ap_prelinked_modules[] = {
- &core_module,
- &so_module,
- &mime_module,
- &access_module,
- &auth_module,
- &negotiation_module,
- &includes_module,
- &autoindex_module,
- &dir_module,
-// &cgi_module,
- &userdir_module,
- &alias_module,
- &env_module,
- &config_log_module,
- &asis_module,
- &imap_module,
- &action_module,
- &setenvif_module,
- NULL
-};
-
-module *ap_preloaded_modules[] = {
- &core_module,
- &so_module,
- &mime_module,
- &access_module,
- &auth_module,
- &negotiation_module,
- &includes_module,
- &autoindex_module,
- &dir_module,
-// &cgi_module,
- &userdir_module,
- &alias_module,
- &env_module,
- &config_log_module,
- &asis_module,
- &imap_module,
- &action_module,
- &setenvif_module,
- NULL
-};
diff --git a/usr.sbin/httpd/src/os/netware/multithread.c b/usr.sbin/httpd/src/os/netware/multithread.c
deleted file mode 100644
index 2c8e41ebd48..00000000000
--- a/usr.sbin/httpd/src/os/netware/multithread.c
+++ /dev/null
@@ -1,104 +0,0 @@
-
-#include "ap_config.h"
-#include "httpd.h"
-#include "http_conf_globals.h"
-#include "multithread.h"
-#include <nwsemaph.h>
-
-
-thread *create_thread(void (thread_fn)(void *), void *thread_arg)
-{
- int rv;
-
- rv = BeginThreadGroup(thread_fn, NULL, ap_thread_stack_size, thread_arg);
- return((thread *)rv);
-}
-
-int kill_thread(thread *thread_id)
-{
- return(0);
-}
-
-int await_thread(thread *thread_id, int sec_to_wait)
-{
- return(0);
-}
-
-void exit_thread(int status)
-{}
-
-void free_thread(thread *thread_id)
-{}
-
-
-mutex * ap_create_mutex(char *name)
-{
- return (mutex*)kMutexAlloc(name);
-}
-
-mutex * ap_open_mutex(char *name)
-{
- return(NULL);
-}
-
-int ap_acquire_mutex(mutex *mutex_id)
-{
- return(kMutexLock(mutex_id));
-}
-
-int ap_release_mutex(mutex *mutex_id)
-{
- if (kMutexUnlock(mutex_id))
- return 0;
- else
- return 1;
-}
-
-void ap_destroy_mutex(mutex *mutex_id)
-{
- kMutexFree(mutex_id);
-}
-
-
-semaphore *create_semaphore(int initial)
-{
- return((semaphore*)OpenLocalSemaphore(initial));
-}
-int acquire_semaphore(semaphore *semaphore_id)
-{
- return(WaitOnLocalSemaphore((long)semaphore_id));
-}
-int release_semaphore(semaphore *semaphore_id)
-{
- return(SignalLocalSemaphore((long)semaphore_id));
-}
-void destroy_semaphore(semaphore *semaphore_id)
-{
- CloseLocalSemaphore((long)semaphore_id);
-}
-
-event *create_event(int manual, int initial, char *name)
-{
- return(NULL);
-}
-event *open_event(char *name)
-{
- return(NULL);
-}
-int acquire_event(event *event_id)
-{
- return(0);
-}
-int set_event(event *event_id)
-{
- return(0);
-}
-int reset_event(event *event_id)
-{
- return(0);
-}
-void destroy_event(event *event_id)
-{}
-
-
-
diff --git a/usr.sbin/httpd/src/os/netware/os.c b/usr.sbin/httpd/src/os/netware/os.c
deleted file mode 100644
index 84f495398c0..00000000000
--- a/usr.sbin/httpd/src/os/netware/os.c
+++ /dev/null
@@ -1,509 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#define WS_SSL
-
-#include "httpd.h"
-#include "ap_config.h"
-#include "http_config.h"
-#include "http_log.h"
-#include <dirent.h>
-
-extern char ap_server_root[MAX_STRING_LEN];
-
-void ap_os_dso_init(void)
-{
-}
-
-void *ap_os_dso_load(const char *path)
-{
- unsigned int nlmHandle;
- char *moduleName = NULL;
-
- moduleName = strrchr(path, '/');
-
- if (moduleName) {
- moduleName++;
- }
-
- nlmHandle = FindNLMHandleInAddressSpace((char*)moduleName, NULL);
-
- if (nlmHandle == NULL) {
- spawnlp(P_NOWAIT | P_SPAWN_IN_CURRENT_DOMAIN, path, NULL);
- nlmHandle = FindNLMHandleInAddressSpace((char*)moduleName, NULL);
- }
-
- return (void *)nlmHandle;
-}
-
-void ap_os_dso_unload(void *handle)
-{
- KillMe(handle);
-}
-
-void *ap_os_dso_sym(void *handle, const char *symname)
-{
- return ImportSymbol((int)GetNLMHandle(), (char *)symname);
-}
-
-void ap_os_dso_unsym(void *handle, const char *symname)
-{
- UnimportSymbol((int)GetNLMHandle(), (char *)symname);
-}
-
-const char *ap_os_dso_error(void)
-{
- return NULL;
-}
-
-char *remove_filename(char* str)
-{
- int i, len = strlen(str);
-
- for (i=len; i; i--) {
- if (str[i] == '\\' || str[i] == '/') {
- str[i] = NULL;
- break;
- }
- }
- return str;
-}
-
-char *bslash2slash(char* str)
-{
- int i, len = strlen(str);
-
- for (i=0; i<len; i++) {
- if (str[i] == '\\') {
- str[i] = '/';
- break;
- }
- }
- return str;
-}
-
-void check_clean_load(module *top_module)
-{
- if (top_module != NULL) {
- module *m;
-
- ap_log_error(APLOG_MARK, APLOG_CRIT, NULL,
- "abnormal shutdown detected, performing a clean shutdown: please restart apache");
- for (m = top_module; m; m = m->next)
- ap_os_dso_unload((ap_os_dso_handle_t)m->dynamic_load_handle);
- exit(1);
- }
-}
-
-void init_name_space()
-{
- UnAugmentAsterisk(TRUE);
- SetCurrentNameSpace(NW_NS_LONG);
- SetTargetNameSpace(NW_NS_LONG);
-}
-
-/* Perform complete canonicalization. On NetWare we are just
- lower casing the file name so that the comparisons will match.
- NetWare assumes that all physical paths are fully qualified.
- Each file path must include a volume name.
- */
-static char *os_canonical_filename(pool *pPool, const char *szFile)
-{
- char *pNewName = ap_pstrdup(pPool, szFile);
- char *slash_test;
-
- bslash2slash(pNewName);
- /* Don't try to canonicalize a filename that isn't even valid
- This way we don't mess up proxy requests or other kinds
- of special filenames.
- */
- if (ap_os_is_filename_valid(pNewName)) {
- if ((pNewName[0] == '/') && (strchr (pNewName, ':') == NULL))
- {
- char vol[256];
-
- _splitpath (ap_server_root, vol, NULL, NULL, NULL);
- pNewName = ap_pstrcat (pPool, vol, pNewName, NULL);
- }
- if ((slash_test = strchr(pNewName, ':')) && (*(slash_test+1) != '/')
- && (*(slash_test+1) != '\0'))
- {
- char vol[_MAX_VOLUME+1];
-
- _splitpath (pNewName, vol, NULL, NULL, NULL);
- pNewName = ap_pstrcat (pPool, vol, "/", pNewName+strlen(vol), NULL);
- }
- }
- return pNewName;
-}
-
-char *ap_os_canonical_filename(pool *pPool, const char *szFile)
-{
- char *pNewName = os_canonical_filename(pPool, szFile);
-
- /* Lower case the name so that the interal string compares work */
- strlwr(pNewName);
- return pNewName;
-}
-
-
-char *ap_os_case_canonical_filename(pool *pPool, const char *szFile)
-{
- /* First thing we need to do is get a copy of the
- canonicalized path */
- char *pNewName = os_canonical_filename(pPool, szFile);
- int volnum=0;
- long dirnum=0;
- long pathcount=0;
- char *path;
- char vol[_MAX_VOLUME+1];
- int retval, x, y;
-
- /* See if path exists by trying to get the volume and directory number */
- retval = FEMapPathVolumeDirToVolumeDir(pNewName, 0, 0, &volnum, &dirnum);
- if (retval == 0) {
- /* allocate a buffer and ask the file system for the real name of
- the directory and file */
- path = ap_palloc(pPool, strlen(pNewName)+2);
- FEMapVolumeAndDirectoryToPath (volnum, dirnum, path, &pathcount);
-
- /* The file system gives it back in a lengh preceded string so we
- need to convert it to a null terminated string. */
- x = 0;
- while (pathcount-- > 0) {
- y = path[x];
- path[x] = '/';
- x += y + 1;
- }
- path[x] = '\0'; /* null terminate the full path */
-
- /* Get the name of the volume so that we can prepend it onto the path */
- FEMapVolumeNumberToName (volnum, vol);
- vol[vol[0]+1] = '\0';
- pNewName = ap_pstrcat (pPool, &(vol[1]), ":", path, NULL);
- }
-
- /* At this point we either have a real case accurate canonical path or
- the original name canonicalized */
- return pNewName;
-}
-
-
-/*
- * ap_os_is_filename_valid is given a filename, and returns 0 if the filename
- * is not valid for use on this system. On NetWare, this means it fails any
- * of the tests below. Otherwise returns 1.
- *
- * The tests are:
- *
- * 1) total path length greater than MAX_PATH
- *
- * 2) the file path must contain a volume specifier and no / or \
- * can appear before the volume specifier.
- *
- * 3) anything using the octets 0-31 or characters " < > | :
- * (these are reserved for Windows use in filenames. In addition
- * each file system has its own additional characters that are
- * invalid. See KB article Q100108 for more details).
- *
- * 4) anything ending in "." (no matter how many)
- * (filename doc, doc. and doc... all refer to the same file)
- *
- * 5) any segment in which the basename (before first period) matches
- * one of the DOS device names
- * (the list comes from KB article Q100108 although some people
- * reports that additional names such as "COM5" are also special
- * devices).
- *
- * If the path fails ANY of these tests, the result must be to deny access.
- */
-
-int ap_os_is_filename_valid(const char *file)
-{
- const char *segstart;
- unsigned int seglength;
- const char *pos;
- char *colonpos, *fslashpos, *bslashpos;
- static const char * const invalid_characters = "?\"<>*|:";
- static const char * const invalid_filenames[] = {
- "CON", "AUX", "COM1", "COM2", "COM3",
- "COM4", "LPT1", "LPT2", "LPT3", "PRN", "NUL", NULL
- };
-
- /* First check to make sure that we have a file so that we don't abend */
- if (file == NULL)
- return 0;
-
- /* Test 1 */
- if (strlen(file) >= _MAX_PATH) {
- /* Path too long for Windows. Note that this test is not valid
- * if the path starts with //?/ or \\?\. */
- return 0;
- }
-
- pos = file;
-
- /* Skip any leading non-path components. This can be either a
- * drive letter such as C:, or a UNC path such as \\SERVER\SHARE\.
- * We continue and check the rest of the path based on the rules above.
- * This means we could eliminate valid filenames from servers which
- * are not running NT (such as Samba).
- */
-
- colonpos = strchr (file, ':');
-
- if (!colonpos)
- return 0;
-
- pos = ++colonpos;
- if (!*pos) {
- /* No path information */
- /* Same as specifying volume:\ */
- return 1;
- }
-
- while (*pos) {
- unsigned int idx;
- unsigned int baselength;
-
- while (*pos == '/' || *pos == '\\') {
- pos++;
- }
- if (*pos == '\0') {
- break;
- }
- segstart = pos; /* start of segment */
- while (*pos && *pos != '/' && *pos != '\\') {
- pos++;
- }
- seglength = pos - segstart;
- /*
- * Now we have a segment of the path, starting at position "segstart"
- * and length "seglength"
- */
-
- /* Test 2 */
- for (idx = 0; idx < seglength; idx++) {
- if ((segstart[idx] > 0 && segstart[idx] < 32) ||
- strchr(invalid_characters, segstart[idx])) {
- return 0;
- }
- }
-
- /* Test 2.5 */
- if (seglength == 2) {
- if ( (segstart[0] == '.') && (segstart[1] == '.') ) {
- return 1;
- }
-
- }
-
- /* Test 3 */
- if (segstart[seglength-1] == '.') {
- return 0;
- }
-
- /* Test 4 */
- for (baselength = 0; baselength < seglength; baselength++) {
- if (segstart[baselength] == '.') {
- break;
- }
- }
-
- /* baselength is the number of characters in the base path of
- * the segment (which could be the same as the whole segment length,
- * if it does not include any dot characters). */
- if (baselength == 3 || baselength == 4) {
- for (idx = 0; invalid_filenames[idx]; idx++) {
- if (strlen(invalid_filenames[idx]) == baselength &&
- !strnicmp(invalid_filenames[idx], segstart, baselength)) {
- return 0;
- }
- }
- }
- }
-
- return 1;
-}
-
-#undef opendir_411
-DIR *os_opendir (const char *pathname)
-{
- struct stat s;
- DIR *d = opendir_411 (pathname);
-
- if (d) {
- strcpy (d->d_name, "<<**");
- }
-
- if (!d) {
- /* Let's check if this is an empty directory */
- if (stat(pathname, &s) != 0)
- return NULL;
- if (!(S_ISDIR(s.st_mode)))
- return NULL;
-
- /* If we are here, then this appears to be a directory */
- /* We allocate a name */
- d = NULL;
- d = (DIR *)malloc(sizeof(DIR));
- if (d) {
- memset(d, 0, sizeof(DIR));
- strcpy(d->d_name, "**<<");
- d->d_cdatetime = 50;
-
- }
-
- }
-
- return d;
-
-}
-
-#undef readdir_411
-DIR *os_readdir (DIR *dirP)
-{
-
-/*
- * First three if statements added for empty directory support.
- *
- */
- if ( (dirP->d_cdatetime == 50) && (dirP->d_name[0] == '*') &&
- (dirP->d_name[2] == '<') )
- {
- strcpy (dirP->d_name, ".");
- strcpy (dirP->d_nameDOS, ".");
- return (dirP);
- }
- else if ((dirP->d_cdatetime == 50) &&
- (dirP->d_name[0] == '.') &&
- (dirP->d_name[1] == '\0')) {
- strcpy (dirP->d_name, "..");
- strcpy (dirP->d_nameDOS, "..");
- return (dirP);
- }
- else if ( (dirP->d_cdatetime == 50) &&
- (dirP->d_name[0] == '.') &&
- (dirP->d_name[1] == '.') &&
- (dirP->d_name[2] == '\0') ) {
- return (NULL);
- }
- else if ((dirP->d_name[0] == '<') && (dirP->d_name[2] == '*')) {
- strcpy (dirP->d_name, ".");
- strcpy (dirP->d_nameDOS, ".");
- return (dirP);
- }
- else if ((dirP->d_name[0] == '.') && (dirP->d_name[1] == '\0')) {
- strcpy (dirP->d_name, "..");
- strcpy (dirP->d_nameDOS, "..");
- return (dirP);
- }
- else
- return readdir_411 (dirP);
-}
-
-
-#undef closedir_510
-int os_closedir (DIR *dirP)
-{
-/*
- * Modified to handle empty directories.
- *
- */
-
- if (dirP == NULL) {
- return 0;
- }
-
- if ( ( (dirP->d_cdatetime == 50) && (dirP->d_name[0] == '*') &&
- (dirP->d_name[2] == '<')
- ) ||
- ( (dirP->d_cdatetime == 50) && (dirP->d_name[0] == '.') &&
- (dirP->d_name[1] == '\0')
- ) ||
- ( (dirP->d_cdatetime == 50) && (dirP->d_name[0] == '.') &&
- (dirP->d_name[1] == '.') && (dirP->d_name[2] == '\0')
- )
- )
- {
-
- free(dirP);
- dirP = NULL;
- return 0;
- }
- else {
- return closedir_510(dirP);
- }
-
-
-}
-
-char *ap_os_http_method(void *r)
-{
- int s = ((request_rec*)r)->connection->client->fd;
- unsigned int optParam;
-
- if (!WSAIoctl(s, SO_SSL_GET_FLAGS, NULL, 0, &optParam, sizeof(optParam), NULL, NULL, NULL))
- if (optParam & (SO_SSL_ENABLE | SO_SSL_SERVER)) return "https";
- return "http";
-}
-
-unsigned short ap_os_default_port(void *r)
-{
- return ap_default_port_for_scheme(ap_os_http_method(r));
-}
diff --git a/usr.sbin/httpd/src/os/netware/os.h b/usr.sbin/httpd/src/os/netware/os.h
deleted file mode 100644
index 51ec96bd0e2..00000000000
--- a/usr.sbin/httpd/src/os/netware/os.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifndef APACHE_OS_H
-#define APACHE_OS_H
-
-#define PLATFORM "NETWARE"
-#define HAVE_CANONICAL_FILENAME
-
-/*
- * 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
- */
-
-typedef signed long int32;
-typedef int uid_t;
-typedef int gid_t;
-typedef int tid_t;
-
-#include "ap_config.h"
-#include <string.h>
-#include <stddef.h>
-#include <nwthread.h>
-#include <nwmalloc.h>
-#include <nwnamspc.h>
-#include <nwlib.h>
-#include <nwadv.h>
-#include <ws2nlm.h>
-#include <winsock2.h>
-#include <fcntl.h>
-#include <dirent.h>
-
-#define NO_LINGCLOSE
-#define NO_SLACK
-#define HAVE_UNISTD_H
-#define NO_SETSID
-#define NO_KILLPG
-#define NO_WRITEV
-#define NO_GETTIMEOFDAY
-#define NO_TIMES
-#define NO_USE_SIGACTION
-#define USE_LONGJMP
-#define MULTITHREAD
-
-#define NO_RELIABLE_PIPED_LOGS
-#define CASE_BLIND_FILESYSTEM
-#define NO_OTHER_CHILD
-
-#define USE_HSREGEX
-#define NETDB_USE_INTERNET
-#define N_PLAT_NLM
-#define APX386
-#define ALLOC_USE_MALLOC
-#define OPTIMIZE_TIMEOUTS
-#define FD_SETSIZE 128
-#define NO_DBM_REWRITEMAP
-
-#define crypt(buf,salt) (buf)
-#define sleep(t) delay(t*1000)
-#define getpid() ((pid_t)GetThreadGroupID())
-#define gettid() ((tid_t)GetThreadID())
-/* Netware doesn't have symlinks so S_ISLNK is always false */
-#define S_ISLNK(m) 0
-/* Netware doesn't have isnan,isinf so they always return false */
-#define isnan(m) 0
-#define isinf(m) 0
-#define lstat(x, y) stat(x, y)
-#define strcasecmp(s1, s2) stricmp(s1, s2)
-#define strncasecmp(s1, s2, n) strnicmp(s1, s2, n)
-#define mktemp(s) tmpnam(s)
-#define _getch getch
-
-/* Watcom reports that ERANGE is returned properly for any out of bounds
- * conditions, with a MIN/MAX_LONG value. This should be safe.
- */
-#define ap_strtol strtol
-
-#define opendir_411(p) os_opendir(p)
-#define opendir(p) os_opendir(p)
-DIR *os_opendir (const char *pathname);
-
-#define readdir_411(p) os_readdir(p)
-#define readdir(p) os_readdir(p)
-DIR *os_readdir (DIR *dirP);
-
-#define closedir_510(p) os_closedir(p)
-#define closedir(p) os_closedir(p)
-int os_closedir (DIR *dirP);
-
-/* Prototypes */
-void AMCSocketCleanup(void);
-void clean_parent_exit(int code);
-
-#ifdef __GNUC__
-static
-#endif
-inline int ap_os_is_path_absolute(const char *file)
-{
- char *s = strstr (file, "://");
-
- /* First make sure we aren't looking at a URL such as
- a proxy:http://blah.
- */
- if (!s) {
- s = strchr (file, ':');
-
- if (s) {
- if (strncmp(s, "://", 3) != 0)
- /* XXX: we assume that everything before the : is letters */
- return 1;
- }
- else {
- if (file[0] == '/')
- return 1;
- }
- }
-
- return 0;
-}
-
-#define ap_os_dso_handle_t void *
-void ap_os_dso_init(void);
-void *ap_os_dso_load(const char *);
-void ap_os_dso_unload(void *);
-void *ap_os_dso_sym(void *, const char *);
-void ap_os_dso_unsym(void *handle, const char *symname);
-const char *ap_os_dso_error(void);
-char *remove_filename(char*);
-char *bslash2slash(char*);
-void init_name_space(void);
-int ap_os_is_filename_valid(const char *file);
-char *ap_os_http_method(void *r);
-unsigned short ap_os_default_port(void *r);
-#endif /*! APACHE_OS_H*/
-
diff --git a/usr.sbin/httpd/src/os/netware/precomp.h b/usr.sbin/httpd/src/os/netware/precomp.h
deleted file mode 100644
index b5c7d0f86b9..00000000000
--- a/usr.sbin/httpd/src/os/netware/precomp.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma precompile_target "precomp.mch"
-#define NETWARE
-
-#ifndef __int64
-#define __int64 long long
-#endif
-
-
-
-
-
diff --git a/usr.sbin/httpd/src/os/netware/test_char.h b/usr.sbin/httpd/src/os/netware/test_char.h
deleted file mode 100644
index 46212b121d1..00000000000
--- a/usr.sbin/httpd/src/os/netware/test_char.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* this file is automatically generated by gen_test_char, do not edit */
-#define T_ESCAPE_SHELL_CMD 0x01 /* chars with special meaning in the shell */
-#define T_ESCAPE_PATH_SEGMENT 0x02 /* find path segment, as defined in RFC1808 */
-#define T_OS_ESCAPE_PATH 0x04 /* escape characters in a path or uri */
-#define T_HTTP_TOKEN_STOP 0x08 /* find http tokens, as defined in RFC2616 */
-#define T_ESCAPE_LOGITEM 0x10 /* filter what should go in the log file */
-
-static const unsigned char test_char_table[256] = {
- 0x00, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, /*0x00...0x07*/
- 0x1e, 0x1e, 0x1f, 0x1e, 0x1e, 0x1f, 0x1e, 0x1e, /*0x08...0x0f*/
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, /*0x10...0x17*/
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, /*0x18...0x1f*/
- 0x0e, 0x00, 0x17, 0x06, 0x01, 0x07, 0x01, 0x01, /*0x20...0x27*/
- 0x09, 0x09, 0x01, 0x00, 0x08, 0x00, 0x00, 0x0a, /*0x28...0x2f*/
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x30...0x37*/
- 0x00, 0x00, 0x08, 0x0f, 0x0f, 0x08, 0x0f, 0x0f, /*0x38...0x3f*/
- 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x40...0x47*/
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x48...0x4f*/
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x50...0x57*/
- 0x00, 0x00, 0x00, 0x0f, 0x1f, 0x0f, 0x07, 0x00, /*0x58...0x5f*/
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x60...0x67*/
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x68...0x6f*/
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /*0x70...0x77*/
- 0x00, 0x00, 0x00, 0x0f, 0x07, 0x0f, 0x01, 0x1e, /*0x78...0x7f*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0x80...0x87*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0x88...0x8f*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0x90...0x97*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0x98...0x9f*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xa0...0xa7*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xa8...0xaf*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xb0...0xb7*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xb8...0xbf*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xc0...0xc7*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xc8...0xcf*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xd0...0xd7*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xd8...0xdf*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xe0...0xe7*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xe8...0xef*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, /*0xf0...0xf7*/
- 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16 /*0xf8...0xff*/
-
-};
diff --git a/usr.sbin/httpd/src/os/netware/uri_delims.h b/usr.sbin/httpd/src/os/netware/uri_delims.h
deleted file mode 100644
index 0c855bf7269..00000000000
--- a/usr.sbin/httpd/src/os/netware/uri_delims.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* this file is automatically generated by gen_uri_delims, do not edit */
-static const unsigned char uri_delims[256] = {
- T_NUL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,T_HASH,0,0,0,0,
- 0,0,0,0,0,0,0,T_SLASH,0,0,0,0,0,0,0,0,0,0,T_COLON,0,
- 0,0,0,T_QUESTION,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-};
diff --git a/usr.sbin/httpd/src/os/os2/Makefile.tmpl b/usr.sbin/httpd/src/os/os2/Makefile.tmpl
deleted file mode 100644
index 9e21b9c69e9..00000000000
--- a/usr.sbin/httpd/src/os/os2/Makefile.tmpl
+++ /dev/null
@@ -1,57 +0,0 @@
-CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
-LIBS=$(EXTRA_LIBS) $(LIBS1)
-INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
-LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
-
-OBJS= os.o os-inline.o util_os2.o
-COPY= os.h os-inline.c
-
-LIB= libos.a
-
-all: $(LIB)
-
-$(LIB): $(OBJS)
- rm -f $@
- ar cr $@ $(OBJS)
- $(RANLIB) $@
-
-.c.o:
- $(CC) -c $(INCLUDES) $(CFLAGS) $<
-
-clean:
- for i in $(COPY); do rm -f $(INCDIR)/$$i ; done
- rm -f $(OBJS) $(LIB)
-
-distclean: clean
- -rm -f Makefile
-
-$(OBJS): Makefile
-
-$(INCDIR)/os.h: os.h
- cp $< $@
-
-$(INCDIR)/os-inline.c: os-inline.c
- cp $< $@
-
-# 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' \
- -e '1,$$s: $(OSDIR)/: $$(OSDIR)/:g' Makefile.new \
- > Makefile.tmpl \
- && rm Makefile.new
-
-# DO NOT REMOVE
-os-inline.o: os-inline.c $(INCDIR)/ap_config.h \
- $(INCDIR)/ap_mmn.h $(INCDIR)/ap_config_auto.h \
- $(INCDIR)/os.h $(INCDIR)/ap_ctype.h $(INCDIR)/hsregex.h
-os.o: os.c os.h os-inline.c
-util_os2.o: util_os2.c $(INCDIR)/httpd.h $(INCDIR)/ap_config.h \
- $(INCDIR)/ap_mmn.h $(INCDIR)/ap_config_auto.h \
- $(INCDIR)/os.h $(INCDIR)/os-inline.c $(INCDIR)/ap_ctype.h \
- $(INCDIR)/hsregex.h $(INCDIR)/ap_alloc.h $(INCDIR)/buff.h \
- $(INCDIR)/ap.h $(INCDIR)/util_uri.h $(INCDIR)/http_log.h
diff --git a/usr.sbin/httpd/src/os/os2/os-inline.c b/usr.sbin/httpd/src/os/os2/os-inline.c
deleted file mode 100644
index 1f9e933213a..00000000000
--- a/usr.sbin/httpd/src/os/os2/os-inline.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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)
-{
- /* For now, just do the same check that http_request.c and mod_alias.c
- * do.
- */
- return file && (file[0] == '/' || (file[1] == ':' && file[2] == '/'));
-}
diff --git a/usr.sbin/httpd/src/os/os2/os.c b/usr.sbin/httpd/src/os/os2/os.c
deleted file mode 100644
index 934ca24614d..00000000000
--- a/usr.sbin/httpd/src/os/os2/os.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * This file will include OS specific functions which are not inlineable.
- * Any inlineable functions should be defined in os-inline.c instead.
- */
-
-#include "os.h"
-#define INCL_DOS
-#include <os2.h>
-#include <stdio.h>
-#include <string.h>
-
-static int rc=0;
-static char errorstr[20];
-
-void ap_os_dso_init(void)
-{
-}
-
-
-
-ap_os_dso_handle_t ap_os_dso_load(const char *module_name)
-{
- HMODULE handle;
-
- rc = DosLoadModule(errorstr, sizeof(errorstr), module_name, &handle);
-
- if (rc == 0)
- return handle;
-
- return 0;
-}
-
-
-
-void ap_os_dso_unload(ap_os_dso_handle_t handle)
-{
- DosFreeModule(handle);
-}
-
-
-
-void *ap_os_dso_sym(ap_os_dso_handle_t handle, const char *funcname)
-{
- PFN func;
-
- rc = DosQueryProcAddr( handle, 0, funcname, &func );
-
- if (rc == 0)
- return func;
-
- return NULL;
-}
-
-
-
-const char *ap_os_dso_error(void)
-{
- static char message[200];
- strcpy(message, ap_os_error_message(rc));
- strcat(message, " for module ");
- strcat(message, errorstr);
- return message;
-}
diff --git a/usr.sbin/httpd/src/os/os2/os.h b/usr.sbin/httpd/src/os/os2/os.h
deleted file mode 100644
index 5a37e4e764f..00000000000
--- a/usr.sbin/httpd/src/os/os2/os.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef APACHE_OS_H
-#define APACHE_OS_H
-
-#define PLATFORM "OS/2"
-#define HAVE_CANONICAL_FILENAME
-#define HAVE_DRIVE_LETTERS
-#define HAVE_UNC_PATHS
-
-/*
- * 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
- */
-
-#if defined(__GNUC__) && !defined(INLINE)
-/* Compiler supports inline, so include the inlineable functions as
- * part of the header
- */
-#define INLINE extern __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
-
-/* FIXME: the following should be implemented on this platform */
-#define ap_os_is_filename_valid(f) (1)
-
-/* Use a specialized kill() function */
-int ap_os_kill(int pid, int sig);
-
-/* Maps an OS error code to an error message */
-char *ap_os_error_message(int err);
-
-/* OS/2 doesn't have symlinks so S_ISLNK is always false */
-#define S_ISLNK(m) 0
-#define lstat(x, y) stat(x, y)
-
-#define isinf(n) (!isfinite(n))
-#define HAVE_ISINF
-#define HAVE_ISNAN
-
-/* strtol() correctly returns ERANGE on overflow, use it */
-#define ap_strtol strtol
-
-/* Dynamic loading functions */
-#define ap_os_dso_handle_t unsigned long
-void ap_os_dso_init(void);
-ap_os_dso_handle_t ap_os_dso_load(const char *);
-void ap_os_dso_unload(ap_os_dso_handle_t);
-void * ap_os_dso_sym(ap_os_dso_handle_t, const char *);
-const char *ap_os_dso_error(void);
-
-#endif /* ! APACHE_OS_H */
diff --git a/usr.sbin/httpd/src/os/os2/util_os2.c b/usr.sbin/httpd/src/os/os2/util_os2.c
deleted file mode 100644
index be2fff63253..00000000000
--- a/usr.sbin/httpd/src/os/os2/util_os2.c
+++ /dev/null
@@ -1,154 +0,0 @@
-#define INCL_DOS
-#define INCL_DOSERRORS
-#include <os2.h>
-#include "httpd.h"
-#include "http_log.h"
-
-
-API_EXPORT(char *)ap_os_case_canonical_filename(pool *pPool, const char *szFile)
-{
- char *buf;
- char buf2[CCHMAXPATH];
- int rc, len;
- char *pos;
-
-/* Remove trailing slash unless it's a root directory */
- len = strlen(szFile);
- buf = ap_pstrndup(pPool, szFile, len);
-
- if (len > 3 && buf[len-1] == '/')
- buf[--len] = 0;
-
- if (buf[0] == '/' && buf[1] == '/') {
- /* A UNC path */
- if (strchr(buf+2, '/') == NULL) { /* Allow // or //server */
- return ap_pstrdup(pPool, buf);
- }
- }
-
- rc = DosQueryPathInfo(buf, FIL_QUERYFULLNAME, buf2, sizeof(buf2));
-
- if (rc) {
- if ( rc != ERROR_INVALID_NAME ) {
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, NULL, "OS/2 error %d for file %s", rc, szFile);
- }
-
- return ap_pstrdup(pPool, szFile);
- }
-
-/* Switch backslashes to forward */
- for (pos=buf2; *pos; pos++)
- if (*pos == '\\')
- *pos = '/';
-
- return ap_pstrdup(pPool, buf2);
-}
-
-
-
-static void fix_component(char *path, char *lastcomp)
-{
- FILEFINDBUF3 fb3;
- HDIR hDir = HDIR_CREATE;
- ULONG numNames = 1;
- ULONG rc = DosFindFirst( (UCHAR *)path, &hDir, FILE_NORMAL|FILE_DIRECTORY, &fb3, sizeof(fb3), &numNames, FIL_STANDARD );
-
- if (rc == 0)
- strcpy(lastcomp, fb3.achName);
-
- DosFindClose(hDir);
-}
-
-
-
-char *ap_os_systemcase_canonical_filename(pool *pPool, const char *szFile)
-{
- char *szCanonicalFile = ap_os_case_canonical_filename(pPool, szFile);
- int startslash = 2, slashnum=0;
- char *pos, *prevslash = NULL;
-
- if (szCanonicalFile[0] == '/' && szCanonicalFile[1] == '/') /* a UNC name */
- startslash = 5;
-
- for (pos = szCanonicalFile; *pos; pos++) {
- if (*pos == '/') {
- slashnum++;
- if (slashnum >= startslash) {
- *pos = 0;
- fix_component(szCanonicalFile, prevslash+1);
- *pos = '/';
- }
- prevslash = pos;
- }
- }
-
- if (slashnum >= startslash) {
- fix_component(szCanonicalFile, prevslash+1);
- }
-
- return szCanonicalFile;
-}
-
-
-
-API_EXPORT(char *)ap_os_canonical_filename(pool *pPool, const char *szFile)
-{
- char *szCanonicalFile = ap_os_systemcase_canonical_filename(pPool, szFile);
- strlwr(szCanonicalFile);
- return szCanonicalFile;
-}
-
-
-
-int ap_os_kill(pid_t pid, int sig)
-{
-/* SIGTERM's don't work too well in OS/2 (only affects other EMX programs).
- CGIs may not be, esp. REXX scripts, so use a native call instead */
-
- int rc;
-
- if ( sig == SIGTERM ) {
- rc = DosSendSignalException( pid, XCPT_SIGNAL_BREAK );
-
- if ( rc ) {
- errno = ESRCH;
- rc = -1;
- }
- } else {
- rc = kill(pid, sig);
- }
-
- return rc;
-}
-
-
-
-char *ap_os_error_message(int err)
-{
- static char result[200];
- char message[HUGE_STRING_LEN];
- ULONG len;
- char *pos;
- int c;
-
- if (DosGetMessage(NULL, 0, message, HUGE_STRING_LEN, err, "OSO001.MSG", &len) == 0) {
- len--;
- message[len] = 0;
- pos = result;
-
- if (len >= sizeof(result))
- len = sizeof(result-1);
-
- for (c=0; c<len; c++) {
- while (ap_isspace(message[c]) && ap_isspace(message[c+1])) /* skip multiple whitespace */
- c++;
- *(pos++) = ap_isspace(message[c]) ? ' ' : message[c];
- }
-
- *pos = 0;
- } else {
- sprintf(result, "OS/2 error %d", err);
- }
-
- return result;
-}
diff --git a/usr.sbin/httpd/src/os/os390/Makefile.tmpl b/usr.sbin/httpd/src/os/os390/Makefile.tmpl
deleted file mode 100644
index 23c509918ef..00000000000
--- a/usr.sbin/httpd/src/os/os390/Makefile.tmpl
+++ /dev/null
@@ -1,64 +0,0 @@
-CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
-LIBS=$(EXTRA_LIBS) $(LIBS1)
-INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
-LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
-
-OBJS= os.o os-inline.o
-
-LIB= libos.a
-
-all: $(LIB)
-
-$(LIB): $(OBJS)
- rm -f $@
- ar cr $@ $(OBJS)
- $(RANLIB) $@
-
-.c.o:
- $(CC) -c $(INCLUDES) $(CFLAGS) $<
-
-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' \
- -e '1,$$s: $(OSDIR)/: $$(OSDIR)/:g' Makefile.new \
- > Makefile.tmpl \
- && rm Makefile.new
-
-$(OBJS): Makefile
-
-# DO NOT REMOVE
-
-os-inline.o: os-inline.c
-os-inline.o: $(INCDIR)/ap_config.h
-os-inline.o: $(INCDIR)/ap_mmn.h
-os-inline.o: $(INCDIR)/ap_config_auto.h
-os-inline.o: os.h
-os-inline.o: $(INCDIR)/ap_ctype.h
-os-inline.o: $(INCDIR)/hsregex.h
-os.o: os.c
-os.o: $(INCDIR)/httpd.h
-os.o: $(INCDIR)/ap_config.h
-os.o: $(INCDIR)/ap_mmn.h
-os.o: $(INCDIR)/ap_config_auto.h
-os.o: os.h
-os.o: $(INCDIR)/ap_ctype.h
-os.o: $(INCDIR)/hsregex.h
-os.o: $(INCDIR)/ap_alloc.h
-os.o: $(INCDIR)/buff.h
-os.o: $(INCDIR)/ap.h
-os.o: ebcdic.h
-os.o: $(INCDIR)/util_uri.h
-os.o: $(INCDIR)/http_core.h
-
-
diff --git a/usr.sbin/httpd/src/os/os390/README.os390 b/usr.sbin/httpd/src/os/os390/README.os390
deleted file mode 100644
index 547b3f6633a..00000000000
--- a/usr.sbin/httpd/src/os/os390/README.os390
+++ /dev/null
@@ -1,86 +0,0 @@
-README.os390
-==============
-
-This file describes how one extracts the apache source files from a compressed
-archive on one of the apache source code distribution web pages to an OS/390
-system. OS/390 represents characters with the ebcdic code set. The files
-in the apache source trees on the web represent characters using the ascii
-code set. The procedure described here de-compresses the archive file and
-extracts the files from the archive while translating characters in the files
-from ascii to ebcdic. Once you download the compressed archive to an OS/390
-system and follow this procedure, you will be ready to configure, compile, and
-install apache on your OS/390 system.
-
-This procedure assumes that you will download the apache tree using a browser
-on a workstation and then you will transfer the compressed archive from your
-workstation to an OS/390 system. You could probably just ftp the compressed
-archive to your OS/390 system ifyou like. If you download to a workstation as
-described here, it is assumed that the workstation has TCP/IP and FTP installed
-on it. It is also assumed that you have TCP/IP and FTP access from the
-workstation to the OS/390 system you want to put apache on.
-
-Procedure for extracting apache source to an OS/390 system:
------------------------------------------------------------
-
-- From either www.apache.org/dist or from dev.apache.org/from-CVS/apache-version
- select one of the source trees with a file type of .tar.gz or .tar.Z and
- download it to your workstation. Ensure that the name of the downloaded
- file remains the same as the name of the file on the web page.
-
-- Also from the same web page download xebcdic.sh.
-
-- From your workstation ftp to the OS/390 system you would like to run apache
- on.
- - ftp os390-host-name
- - You'll be prompted for user id and password.
- - Once you've logged in successfully you'll get the ftp prompt.
-
-- FTP the .tar.gz file and xebcdic.sh files you downloaded to your workstation
- to the OS/390 system. The xebcdic.sh file must be ftp'ed in ascii mode. The
- apache compressed archive file must be ftp'ed in binary mode.
- - put xebcdic.sh
- - bin
- - put apache-compressed-archive-file-name
-
-- End your ftp connection.
- - bye or quit
-
-- From your OS/390 system use the xebcdic.sh shell script to de-compress and
- extract the apache source. This script will de-compress the apache source
- tree and will then extract all the files from the archive. As the files are
- extracted, they are all translated from ascii to ebcdic. All the gif files
- are then re-extracted from the archive without applying the ascii to ebcdic
- translation so that they won't be corrupted.
-
- The name of the compressed archive file you specify to xebcdic.sh must follow
- the following format:
-
- apache-version_timeStamp.tar.gz or
- apache-version_timeStamp.tar.Z or
- apache-version.tar.gz or
- apache-version.tar.Z or
- apache_version.tar.gz or
- apache_version.tar.Z
-
- When you invoke the script, you may specify which file types should be
- re-extracted without applying the ascii to ebcdic translation. This can be
- used to save static pages as ascii improving performance when serving those
- pages by avoiding the ebcdic to ascii translation at the time they are served.
- Please refer to top-of-source-tree/src/README.ebcdic for information on how
- to use the AddType and DefaultType directives to serve static pages without
- trying to translate from ebcdic to ascii.
-
- - To extract the source tree and have html and txt files re-extracted
- without translation specify the following:
-
- ./xebcdic.sh apache-compressed-archive-file-name --f=*.html --f=*.txt
-
- - To extract the source tree and have the static text content files that
- are part of the source tree stored on your OS/390 system in ascii specify
- the following:
-
- ./xebcdic.sh apache-compressed-archive-file-name --all-ascii-content
-
-- The apache source tree is now ready for you to configure, make and install.
- Refer to top-of-source-tree/INSTALL for directions on how to proceed.
-
diff --git a/usr.sbin/httpd/src/os/os390/ebcdic.h b/usr.sbin/httpd/src/os/os390/ebcdic.h
deleted file mode 100644
index 10a8000627d..00000000000
--- a/usr.sbin/httpd/src/os/os390/ebcdic.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef EBCDIC_H
-#define EBCDIC_H "$Id: ebcdic.h,v 1.2 2002/03/29 02:08:07 beck Exp $"
-
-#include <ap_ebcdic.h>
-
-#endif /*EBCDIC_H*/
diff --git a/usr.sbin/httpd/src/os/os390/os-inline.c b/usr.sbin/httpd/src/os/os390/os-inline.c
deleted file mode 100644
index e58917af369..00000000000
--- a/usr.sbin/httpd/src/os/os390/os-inline.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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/os390/os.c b/usr.sbin/httpd/src/os/os390/os.c
deleted file mode 100644
index 36aee6b69bc..00000000000
--- a/usr.sbin/httpd/src/os/os390/os.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-/*
- * 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"
-
diff --git a/usr.sbin/httpd/src/os/os390/os.h b/usr.sbin/httpd/src/os/os390/os.h
deleted file mode 100644
index f949c965636..00000000000
--- a/usr.sbin/httpd/src/os/os390/os.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef APACHE_OS_H
-#define APACHE_OS_H
-
-#define PLATFORM "OS390"
-
-/*
- * 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
- */
-
-#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)
-#define ap_os_kill(pid, sig) kill(pid, sig)
-
-#endif /*! APACHE_OS_H*/
diff --git a/usr.sbin/httpd/src/os/os390/xebcdic.sh b/usr.sbin/httpd/src/os/os390/xebcdic.sh
deleted file mode 100644
index 8aa69980658..00000000000
--- a/usr.sbin/httpd/src/os/os390/xebcdic.sh
+++ /dev/null
@@ -1,202 +0,0 @@
-#!/bin/sh
-#
-# xebcdic.sh fileName [--all-ascii-content] [--f=pattern ... ]
-#
-# This shell script decompresses an archive containing an apache source tree
-# and then extracts the source files from the archive. The source files are
-# translated from ASCII to EBCDIC as they are extracted from the archive.
-# Once all the files have been extracted and translated, the binary files are
-# re-extracted to undo the ASCII to EBCDIC translation on those files. Once
-# this script is done, the extracted tree can be used on an EBCDIC based
-# system.
-#
-# Input: fileName -- fileName has one of the following formats:
-# apache-version_timeStamp.tar.gz or
-# apache-version_timeStamp.tar.Z or
-# apache-version.tar.gz or
-# apache-version.tar.Z or
-# apache_version.tar.gz or
-# apache_version.tar.Z
-#
-# --f=pattern -- specifies that all files which match the pattern
-# are to be re-extracted without ascii to ebcdic
-# translation being applied. pattern is a file name
-# specification that may contain path names and
-# the wildcard character. All paths are assumed to
-# be under the apache source tree top. Binary files
-# are always re-extracted without ascii to ebcdic
-# translation regardless of whether any pattern is
-# specified or not. Multiple patterns may be specified
-# by repeating this option.
-#
-#
-# --all-ascii-content -- specifies that all the text content shipped
-# with the apache tree should be stored in
-# ascii on the OS/390 system. This re-extracts
-# all the *.htm* files in the htdocs directory
-# of the apache tree without doing the ascii
-# to ebcdic translation. In addition to the
-# *.htm* files, file htdocs/manual/LICENSE and
-# file htdocs/manual/misc/HTTP_Features.tsv
-# are also stored in ascii. If this option
-# is specified, directives AddType and
-# DefaultType need to be used to correctly
-# serve the pages without trying to first
-# translate from ebcdic to ascii. See
-# apache-tree-top/src/README.EBCDIC.
-#
-# Example Invocations:
-#
-# ./xebcdic.sh apache_1.3.9.tar.gz: Runs gunzip, runs pax and
-# extracts everything translating it to ebcdic, and re-extracts
-# all gif files in the htdocs and icons directories without
-# applying ascii to ebcdic translation.
-#
-# ./xebcdic.sh apache_1.3.9.tar.gz --f=*.htm* --f=htdocs/*.tsv:
-# Runs gunzip, runs pax and extracts everything translating it to
-# ebcdic, re-extracts all gif files without ascii to ebcdic
-# translation, and re-extracts all the *.htm* files in the apache
-# source tree and all *.tsv files in the htdocs directory of the
-# apache source tree without ascii to ebcdic translation.
-#
-# ./xebcdic.sh apache_1.3.9.tar.gz --all-ascii-content: Runs gunzip,
-# runs pax and extracts everything translating it to ebcdic,
-# re-extracts all gif files without ascii to ebcdic translation,
-# and re-extracts all the *.htm* files in the htdocs directory
-# as well as htdocs/manual/LICENSE and
-# htdocs/manual/misc/HTTP_Features.tsv without ascii to ebcdic
-# translation.
-#
-# Output: fileName.tar.gz is replaced with fileName.tar and the apache
-# source tree is extracted into a directory named apache-version or
-# apache_version. All files except binary files and any files
-# specified through the options are translated from ascii to
-# ebcdic.
-#
-# Assumptions: The path to gunzip, uncompress and pax is defined and
-# from where this script is invoked.
-#
-
-echo "Input file name is: $1"
-
-# Verify fileName
-if ! echo $1 | grep -q 'apache_.*\.tar\.gz' && \
- ! echo $1 | grep -q 'apache_.*\.tar\.Z' && \
- ! echo $1 | grep -q 'apache-.*_.*\.tar\.gz' && \
- ! echo $1 | grep -q 'apache-.*_.*\.tar\.Z' && \
- ! echo $1 | grep -q 'apache-.*\.tar\.gz' && \
- ! echo $1 | grep -q 'apache-.*\.tar\.Z'
-then
- echo "Filename, $1, does not follow required format."
- echo "Filename should have one of the following formats:"
- echo "apache-version_timeStamp.tar.gz or"
- echo "apache-version_timeStamp.tar.Z or"
- echo "apache-version.tar.gz or"
- echo "apache-version.tar.Z or"
- echo "apache_version.tar.gz or"
- echo "apache_version.tar.Z"
- exit 1;
-fi
-
-if [ ! -f $1 ]; then
- echo "$1 is not a file"
- exit 1;
-fi
-
-if [ ! -a $1 ]; then
- echo "$1 file does not exist"
- exit 1;
-fi
-
-# Verify fileType option if specified
-for option in $@
-do
- case "$option" in
- $1) ;;
- --all-ascii-content) ;;
- --f=*) ;;
- *) echo "Invalid option specified. Command syntax is:"
- echo "xebcdic.sh compressed-archive-file-name [--all-ascii-content]"
- echo " [--f=pattern ... ]"
- exit 1;
- ;;
- esac
-done
-
-# Figure out whether to gunzip or uncompress
-if echo $1 | grep -q 'apache[-_].*\.tar\.gz'; then
- DECOMPRESS="gunzip"
-else
- DECOMPRESS="uncompress"
-fi
-echo "Decompression utility $DECOMPRESS will be used."
-
-# Set name of tar file after decompressing
-if [ "x$DECOMPRESS" = "xgunzip" ]; then
- TARFILE=`echo $1 | sed s/\.tar\.gz/\.tar/`
-else
- TARFILE=`echo $1 | sed s/\.tar\.Z/\.tar/`
-fi
-echo "Archive file name is: $TARFILE"
-
-# Set name of apache source tree directory
-if echo $1 | grep -q 'apache-.*_.*\.tar*'; then
- APDIR=`echo $1 | sed s/_.*//`
-else
- APDIR=`echo $1 | sed s/\.tar.*//`
-fi
-echo "Apache source tree top is: $APDIR"
-
-# Decompress input file
-echo "Starting decompression of $1"
-if [ "x$DECOMPRESS" = "xgunzip" ]; then
- if gunzip $1; then
- echo "Decompression of $1 completed successfully"
- else
- exit 1;
- fi
-else
- if uncompress $1; then
- echo "Decompression of $1 completed successfully"
- else
- exit 1;
- fi
-fi
-
-# Extract source files and translate them all from ASCII to EBCDIC
-
-# Determine code page for locale
-
-echo "Starting extraction of source files from archive $TARFILE."
-echo "ASCII being translated to EBCDIC."
-echo "ASCII code page assumed to be ISO8859-1."
-echo "EBCDIC code page assumed to be IBM-1047."
-pax -ofrom=ISO8859-1,to=IBM-1047 -rvf $TARFILE
-echo "Extraction and translation of source files from archive completed."
-
-# Re-extract gif files without ASCII to EBCDIC translation
-echo "Re-extracting gif files without ASCII to EBCDIC translation"
-pax -rvf $TARFILE $(find $APDIR/htdocs -type f -name "*.gif*")
-pax -rvf $TARFILE $(find $APDIR/icons -type f -name "*.gif*")
-
-# Re-extract appropriate files as requested by user
-for option in $@; do
- case "$option" in
- $1)
- ;;
- --all-ascii-content) echo "Re-extracting files in $APDIR/htdocs without ASCII to EBCDIC translation"
- pax -rvf $TARFILE $(find $APDIR/htdocs -type f -name "*.htm*")
- pax -rvf $TARFILE $(find $APDIR/htdocs -type f -name "*.tsv*")
- pax -rvf $TARFILE $(find $APDIR/htdocs -name "manual/LICENSE")
- ;;
- --f=*) PATTERN=`echo $option | sed s/--f=//`
- if [ "x$PATTERN" != "x" ]; then
- echo "Re-extracting files matching $PATTERN without ASCII to EBCDIC translation"
- pax -rvf $TARFILE $(find $APDIR -type f -name "$PATTERN")
- fi
- ;;
- *)
- ;;
- esac
-done
-
diff --git a/usr.sbin/httpd/src/os/tpf/Makefile.tmpl b/usr.sbin/httpd/src/os/tpf/Makefile.tmpl
deleted file mode 100644
index 719f603bda6..00000000000
--- a/usr.sbin/httpd/src/os/tpf/Makefile.tmpl
+++ /dev/null
@@ -1,41 +0,0 @@
-CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
-LIBS=$(EXTRA_LIBS) $(LIBS1)
-INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
-LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
-
-OBJS= os.o os-inline.o cgetop.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 $(INCDIR)/ap_config.h
-cgetop.o: cgetop.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
deleted file mode 100644
index 6cc580e593f..00000000000
--- a/usr.sbin/httpd/src/os/tpf/TPFExport
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/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"
-export TPF=YES
-export _C89_INCLIBS=""
-export _C89_CSYSLIB=""
-export _C89_OPTIONS="-W 0,langlvl(extended)"
-echo "Done"
diff --git a/usr.sbin/httpd/src/os/tpf/cgetop.c b/usr.sbin/httpd/src/os/tpf/cgetop.c
deleted file mode 100644
index 21f01653be3..00000000000
--- a/usr.sbin/httpd/src/os/tpf/cgetop.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/**********************************************************************/
-/* */
-/* Copyright (c) 1987, 1993, 1994 */
-/* The Regents of the University of California. 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. Neither the name of the University nor the names of its */
-/* contributors may be used to endorse or promote products derived */
-/* from this software without specific prior written permission. */
-/* */
-/* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS''*/
-/* AND ANY EXPRESS 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 REGENTS */
-/* OR 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. */
-/* */
-/**********************************************************************/
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)getopt.c 8.2 (Berkeley) 4/2/94";
-#endif /* LIBC_SCCS and not lint */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#ifndef __CGETOP_
-extern char *optarg;
-extern int opterr, optind, optopt;
-int getopt (int, char * const *, const char *);
-char *group_from_gid (unsigned long, int);
-char *user_from_uid (unsigned long, int);
-extern int optreset;
-#endif
-
-int opterr = 1, /* if error message should be */
- /* printed */
- optind = 1, /* index into parent argv vector */
- optopt, /* character checked for validity */
- optreset; /* reset getopt */
-char *optarg; /* argument associated with */
- /* option */
-
-#define BADCH (int)'?'
-#define BADARG (int)':'
-#define EMSG ""
-
-/**********************************************************************/
-/* */
-/* getopt -- */
-/* Parse argc/argv argument vector. */
-/* */
-/**********************************************************************/
-int
-getopt(nargc, nargv, ostr)
- int nargc;
- char * const *nargv;
- const char *ostr;
-{
- /* removed -- BSD2TPF -- crt0 does not create __progname on TPF */
- /* extern char *__progname; */
- /* end of removed -- BSD2TPF */
-
- static char *place = EMSG; /* option letter processing */
- char *oli; /* option letter list index */
-
- /* added -- BSD2TPF -- emulate BSD crt0 function to set __progname */
- char empty = '\0';
- char *__progname = &empty;
- if (nargv[0]) {
- if ((__progname = strrchr(nargv[0], '/')) == NULL) {
- __progname = nargv[0];
- }
- else {
- ++__progname;
- }
- }
- /* end of added -- BSD2TPF */
-
- if (optreset || !*place) { /* update scanning pointer */
- optreset = 0;
- if (optind >= nargc || *(place = nargv[optind]) != '-') {
- place = EMSG;
- return (EOF);
- }
- if (place[1] && *++place == '-') {
- /* found "--" */
- ++optind;
- place = EMSG;
- return (EOF);
- }
- } /* option letter okay? */
- if ((optopt = (int)*place++) == (int)':' ||
- !(oli = strchr(ostr, optopt))) {
- /* if the user didn't */
- /* specify '-' as an option, */
- /* assume it means EOF. */
- if (optopt == (int)'-')
- return (EOF);
- if (!*place)
- ++optind;
- if (opterr && *ostr != ':')
- (void)fprintf(stderr,
- "%s: illegal option -- %c\n", __progname, optopt);
- return (BADCH);
- }
- if (*++oli != ':') { /* don't need argument */
- optarg = NULL;
- if (!*place)
- ++optind;
- }
- else { /* need an argument */
- if (*place) /* no white space */
- optarg = place;
- else if (nargc <= ++optind) { /* no arg */
- place = EMSG;
- if (*ostr == ':')
- return (BADARG);
- if (opterr)
- (void)fprintf(stderr,
- "%s: option requires an argument -- %c\n",
- __progname, optopt);
- return (BADCH);
- }
- else /* white space */
- optarg = nargv[optind];
- place = EMSG;
- ++optind;
- }
- return (optopt); /* dump back option letter */
-} \ No newline at end of file
diff --git a/usr.sbin/httpd/src/os/tpf/ebcdic.h b/usr.sbin/httpd/src/os/tpf/ebcdic.h
deleted file mode 100644
index a46d3ff9b37..00000000000
--- a/usr.sbin/httpd/src/os/tpf/ebcdic.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef EBCDIC_H
-#define EBCDIC_H "$Id: ebcdic.h,v 1.3 2002/03/29 02:08:07 beck Exp $"
-
-#include <ap_ebcdic.h>
-
-#endif /*EBCDIC_H*/
diff --git a/usr.sbin/httpd/src/os/tpf/os-inline.c b/usr.sbin/httpd/src/os/tpf/os-inline.c
deleted file mode 100644
index e58917af369..00000000000
--- a/usr.sbin/httpd/src/os/tpf/os-inline.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * 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
deleted file mode 100644
index b67ed430ccf..00000000000
--- a/usr.sbin/httpd/src/os/tpf/os.c
+++ /dev/null
@@ -1,862 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-/*
- * 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"
-#include "scoreboard.h"
-#include "http_log.h"
-#include "http_conf_globals.h"
-#ifdef __PIPE_
-#include <ipc.h>
-#include <shm.h>
-static TPF_FD_LIST *tpf_fds = NULL;
-#endif
-
-void *tpf_shm_static_ptr = NULL;
-unsigned short zinet_model;
-char *argv_ptr = NULL;
-
-static FILE *sock_fp;
-static int sock_sd;
-
-int tpf_select(int maxfds, fd_set *reads, fd_set *writes, fd_set *excepts,
- struct timeval *tv)
-{
-/* We're going to force our way through select. We're only interested reads
- and TPF allows 2billion+ socket descriptors for we don't want an fd_set
- that big. Just assume that maxfds-1 contains the socket descriptor we're
- interested in. If it's 0, leave it alone. */
-
- int sockets[1];
- int no_reads = 0;
- int no_writes = 0;
- int no_excepts = 0;
- int timeout = 0;
- int rv = 0;
-
- if(maxfds) {
- if(tv)
- timeout = tv->tv_sec * 1000 + tv->tv_usec;
- sockets[0] = maxfds-1;
- no_reads++;
- }
- else
- sockets[0] = 0;
-
- ap_check_signals();
- if ((no_reads + no_writes + no_excepts == 0) &&
- (tv) && (tv->tv_sec + tv->tv_usec != 0)) {
- /* TPF's select immediately returns if the sum of
- no_reads, no_writes, and no_excepts is zero.
- The following code makes TPF's select work a little closer
- to everyone else's select:
- */
-#ifdef TPF_HAVE_SAWNC
- struct ev0bk evnblock;
-#endif
- timeout = tv->tv_sec;
- if (tv->tv_usec) {
- timeout++; /* round up to seconds (like TPF's select does) */
- }
- if (timeout > 0) { /* paranoid check for valid timeout */
-#ifdef TPF_HAVE_SAWNC
- evnblock.evnpstinf.evnbkc1 = 1; /* nbr of posts needed */
- evntc(&evnblock, EVENT_CNT, 'N', timeout, EVNTC_1052);
- tpf_sawnc(&evnblock, EVENT_CNT);
-#else
- sleep(timeout);
-#endif
- }
- } else {
- if (timeout < 0) { /* paranoid check for valid timeout */
- timeout = 0;
- }
- rv = select(sockets, no_reads, no_writes, no_excepts, timeout);
- }
- ap_check_signals();
-
- return rv;
-
-}
-
-int tpf_accept(int sockfd, struct sockaddr *peer, int *paddrlen)
-{
- int socks[1];
- int rv;
-
- ap_check_signals();
- socks[0] = sockfd;
- rv = select(socks, 1, 0, 0, TPF_ACCEPT_SECS_TO_BLOCK * 1000);
- errno = sock_errno();
- if(rv>0) {
- rv = accept(sockfd, peer, paddrlen);
- errno = sock_errno();
- }
- ap_check_signals();
- return rv;
-}
-
-/* the getpass function is not usable on TPF */
-char *getpass(const char* prompt)
-{
- errno = EIO;
- return((char *)NULL);
-}
-
-/* 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);
-}
-
-int execvp(const char *file, char *const argv[])
-{
- errno = ENOSYS;
- return(-1);
-}
-
-
-
-int ap_tpf_spawn_child(pool *p, int (*func) (void *, child_info *),
- void *data, enum kill_conditions kill_how,
- int *pipe_in, int *pipe_out, int *pipe_err,
- int out_fds[], int in_fds[], int err_fds[])
-
-{
-
- int i, temp_out, temp_in, temp_err, save_errno, pid, result=0;
- int fd_flags_out, fd_flags_in, fd_flags_err;
- struct tpf_fork_input fork_input;
- TPF_FORK_CHILD *cld = (TPF_FORK_CHILD *) data;
- array_header *env_arr = ap_table_elts ((array_header *) cld->subprocess_env);
- table_entry *elts = (table_entry *) env_arr->elts;
-#ifdef TPF_FORK_EXTENDED
-#define WHITE " \t\n"
-#define MAXARGC 49
- char *arguments;
- char *args[MAXARGC + 1];
- char **envp = NULL;
- pool *subpool = NULL;
-
-#include "util_script.h"
-
-#endif /* TPF_FORK_EXTENDED */
-
- if (func) {
- if (result=func(data, NULL)) {
- return 0; /* error from child function */
- }
- }
-
- if (pipe_out) {
- fd_flags_out = fcntl(out_fds[0], F_GETFD);
- fcntl(out_fds[0], F_SETFD, FD_CLOEXEC);
- temp_out = dup(STDOUT_FILENO);
- fcntl(temp_out, F_SETFD, FD_CLOEXEC);
- dup2(out_fds[1], STDOUT_FILENO);
- }
-
- if (pipe_in) {
- fd_flags_in = fcntl(in_fds[1], F_GETFD);
- fcntl(in_fds[1], F_SETFD, FD_CLOEXEC);
- temp_in = dup(STDIN_FILENO);
- fcntl(temp_in, F_SETFD, FD_CLOEXEC);
- dup2(in_fds[0], STDIN_FILENO);
- }
-
- if (pipe_err) {
- fd_flags_err = fcntl(err_fds[0], F_GETFD);
- fcntl(err_fds[0], F_SETFD, FD_CLOEXEC);
- temp_err = dup(STDERR_FILENO);
- fcntl(temp_err, F_SETFD, FD_CLOEXEC);
- dup2(err_fds[1], STDERR_FILENO);
- }
-
-/* set up environment variables for the tpf_fork */
- if (cld->subprocess_env) {
-#ifdef TPF_FORK_EXTENDED
- /* with extended tpf_fork( ) we pass the pointer to a list of pointers */
- /* that point to "key=value" strings for each env variable */
- subpool = ap_make_sub_pool(p);
- envp = ap_create_environment(subpool, cld->subprocess_env);
-#else
- /* without extended tpf_fork( ) we setenv( ) each env variable */
- /* so the child inherits them */
- for (i = 0; i < env_arr->nelts; ++i) {
- if (!elts[i].key)
- continue;
- setenv (elts[i].key, elts[i].val, 1);
- }
-#endif /* TPF_FORK_EXTENDED */
- }
-
- fork_input.program = (const char*) cld->filename;
- fork_input.prog_type = cld->prog_type;
- fork_input.istream = TPF_FORK_IS_BALANCE;
- fork_input.ebw_data_length = 0;
- fork_input.ebw_data = NULL;
- fork_input.parm_data = NULL;
-
-#ifdef TPF_FORK_EXTENDED
- /* use a copy of cld->filename because strtok is destructive */
- arguments = ap_pstrdup(p, cld->filename);
- args[0] = strtok(arguments, WHITE);
-
- for (i = 0; i < MAXARGC && args[i] ; i++) {
- args[i + 1] = strtok(NULL, WHITE);
- }
- args[MAXARGC] = NULL;
-
- if ((pid = tpf_fork(&fork_input,
- (const char **)args,
- (const char **)envp)) < 0) {
-#else
- if ((pid = tpf_fork(&fork_input)) < 0) {
-#endif /* TPF_FORK_EXTENDED */
- save_errno = errno;
- if (pipe_out) {
- close(out_fds[0]);
- }
- if (pipe_in) {
- close(in_fds[1]);
- }
- if (pipe_err) {
- close(err_fds[0]);
- }
- errno = save_errno;
- pid = 0;
- }
-
-#ifdef TPF_FORK_EXTENDED
- if (subpool) {
- ap_destroy_pool(subpool);
- }
-#else
- if (cld->subprocess_env) {
- for (i = 0; i < env_arr->nelts; ++i) {
- if (!elts[i].key)
- continue;
- unsetenv (elts[i].key);
- }
- }
-#endif /* TPF_FORK_EXTENDED */
-
- if (pipe_out) {
- close(out_fds[1]);
- dup2(temp_out, STDOUT_FILENO);
- close(temp_out);
- fcntl(out_fds[0], F_SETFD, fd_flags_out);
- }
-
- if (pipe_in) {
- close(in_fds[0]);
- dup2(temp_in, STDIN_FILENO);
- close(temp_in);
- fcntl(in_fds[1], F_SETFD, fd_flags_in);
- }
-
-
- if (pipe_err) {
- close(err_fds[1]);
- dup2(temp_err, STDERR_FILENO);
- close(temp_err);
- fcntl(err_fds[0], F_SETFD, fd_flags_err);
- }
-
-
- if (pid) {
-
- ap_note_subprocess(p, pid, kill_how);
-
- if (pipe_out) {
- *pipe_out = out_fds[0];
- }
- if (pipe_in) {
- *pipe_in = in_fds[1];
- }
- if (pipe_err) {
- *pipe_err = err_fds[0];
- }
- }
-
- return pid;
-
-}
-
-pid_t os_fork(server_rec *s, int slot)
-{
- struct tpf_fork_input fork_input;
- APACHE_TPF_INPUT input_parms;
- int count;
- listen_rec *lr;
-
- fflush(stdin);
- if (dup2(fileno(sock_fp), STDIN_FILENO) == -1)
- ap_log_error(APLOG_MARK, APLOG_CRIT, s,
- "unable to replace stdin with sock device driver");
- fflush(stdout);
- if (dup2(fileno(sock_fp), STDOUT_FILENO) == -1)
- ap_log_error(APLOG_MARK, APLOG_CRIT, s,
- "unable to replace stdout with sock device driver");
- input_parms.generation = ap_my_generation;
-#ifdef USE_SHMGET_SCOREBOARD
- input_parms.scoreboard_heap = ap_scoreboard_image;
-#endif
-
- lr = ap_listeners;
- count = 0;
- do {
- input_parms.listeners[count] = lr->fd;
- lr = lr->next;
- count++;
- } while(lr != ap_listeners);
-
- input_parms.slot = slot;
- input_parms.restart_time = ap_restart_time;
- input_parms.shm_static_ptr = tpf_shm_static_ptr;
- input_parms.tpf_fds = tpf_fds;
- fork_input.ebw_data = &input_parms;
- fork_input.program = ap_server_argv0;
- fork_input.prog_type = TPF_FORK_NAME;
- fork_input.istream = TPF_FORK_IS_BALANCE;
- fork_input.ebw_data_length = sizeof(input_parms);
- fork_input.parm_data = argv_ptr;
-#ifdef TPF_FORK_EXTENDED
- return tpf_fork(&fork_input, NULL, NULL);
-#else
- return tpf_fork(&fork_input);
-#endif /* TPF_FORK_EXTENDED */
-}
-
-void ap_tpf_zinet_checks(int standalone,
- const char *servername,
- server_rec *s) {
-
- INETD_IDCT_ENTRY_PTR idct;
-
- /* explicitly disallow "ServerType inetd" on TPF */
- if (!standalone) {
- ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, s,
- TPF_SERVERTYPE_MSG);
- exit(1); /* abort start-up of server */
- }
-
- /* figure out zinet model for our server from the idct slot */
- idct = inetd_getServer(servername);
- if (idct) {
- zinet_model = idct->model;
- free(idct);
- } else {
- ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, s,
- TPF_UNABLE_TO_DETERMINE_ZINET_MODEL, servername);
- exit(1); /* abort start-up of server */
- }
-
- /* check for valid zinet models */
- if (zinet_model != INETD_IDCF_MODEL_DAEMON &&
- zinet_model != INETD_IDCF_MODEL_NOLISTEN) {
- ap_log_error(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, s,
- TPF_STANDALONE_CONFLICT_MSG);
- exit(1); /* abort start-up of server */
- }
-
-#ifdef TPF_NOLISTEN_WARNING
-/* nag about switching to DAEMON model */
- if (zinet_model == INETD_IDCF_MODEL_NOLISTEN) {
- ap_log_error(APLOG_MARK, APLOG_WARNING|APLOG_NOERRNO, s,
- TPF_NOLISTEN_WARNING);
- }
-#endif
-
-}
-
-int os_check_server(char *server) {
- int *current_acn;
-
- ap_check_signals();
-
- /* check that the program activation number hasn't changed */
- current_acn = (int *)cinfc_fast(CINFC_CMMACNUM);
- if (ecbp2()->ce2acn != *current_acn) {
- return 1; /* shutdown */
- }
-
- /* check our InetD status */
- if (inetd_getServerStatus(server) != INETD_SERVER_STATUS_ACTIVE) {
- return 1; /* shutdown */
- }
-
- /* if DAEMON model, make sure parent is still around */
- if (zinet_model == INETD_IDCF_MODEL_DAEMON) {
- if (getppid() == 1) {
- return 1; /* shutdown */
- }
- }
-
- return 0; /* keep on running... */
-}
-
-void os_note_additional_cleanups(pool *p, int sd) {
- char sockfilename[50];
- /* write the socket to file so that TPF socket device driver
- will close socket in case we happen to abend. */
- sprintf(sockfilename, "/dev/tpf.socket.file/%.8X", sd);
- sock_fp = fopen(sockfilename, "r+");
- /* arrange to close on exec or restart */
- ap_note_cleanups_for_file_ex(p, sock_fp, 1);
- sock_sd = sd;
-}
-
-void ap_tpf_save_argv(int argc, char **argv) {
-
- int i, len = 3; /* 3 for "-x " */
-
- for (i = 1; i < argc; i++) { /* find len for calloc */
- len += strlen (argv[i]);
- ++len; /* 1 for blank */
- }
-
- argv_ptr = malloc(len + 1);
- strcpy(argv_ptr, "-x");
- for (i = 1; i < argc; i++) {
- strcat(argv_ptr, " ");
- strcat(argv_ptr, argv[i]);
- }
-}
-
-void os_tpf_child(APACHE_TPF_INPUT *input_parms) {
- extern pid_t tpf_parent_pid;
- extern char tpf_mutex_key[TPF_MUTEX_KEY_SIZE];
-
- tpf_child = 1;
- ap_my_generation = input_parms->generation;
- ap_restart_time = input_parms->restart_time;
- tpf_fds = input_parms->tpf_fds;
- tpf_shm_static_ptr = input_parms->shm_static_ptr;
- tpf_parent_pid = getppid();
- sprintf(tpf_mutex_key, "%.*x", TPF_MUTEX_KEY_SIZE - 1, tpf_parent_pid);
-}
-
-#ifndef __PIPE_
-
-int pipe(int fildes[2])
-{
- errno = ENOSYS;
- return(-1);
-}
-
-API_EXPORT(piped_log *) ap_open_piped_log(pool *p, const char *program)
-
-{
- fprintf(stderr, "Pipes not supported on this TPF system\n");
- exit (1);
-}
-
-#else
-
-void ap_tpf_detach_shared_mem(void *address)
-{
- if (*((void **)address)) {
- shmdt(*((void **)address));
- *((void **)address) = NULL;
- }
-}
-
-static void *ap_tpf_get_shared_mem(size_t size)
-{
- key_t shmkey = IPC_PRIVATE;
- int shmid = -1;
- void *result;
-
- if ((shmid = shmget(shmkey, size, IPC_CREAT | SHM_R | SHM_W)) == -1) {
- perror("shmget failed in ap_tpf_get_shared_mem function");
- exit(1);
- }
-#define BADSHMAT ((void *)(-1))
- if ((result = shmat(shmid, 0, 0)) == BADSHMAT) {
- perror("shmat failed in ap_tpf_get_shared_mem");
- }
- if (shmctl(shmid, IPC_RMID, NULL) != 0) {
- perror("shmctl(IPC_RMID) failed in ap_tpf_get_shared_mem");
- }
- if (result == BADSHMAT) { /* now bailout */
- exit(1);
- }
-
- return result;
-}
-
-int ap_tpf_fd_lookup(enum FILE_TYPE file_type, const char *fname)
-/* lookup a fd in the fd inheritance table */
-{
- if (tpf_fds) {
- int i;
- TPF_FD_ITEM *fd_item = &tpf_fds->first_item;
-
- for (i = 1; i <= tpf_fds->nbr_of_items; i++, fd_item++) {
- /* check for an fd with the same type and name */
- if ((file_type == fd_item->file_type) &&
- (strcmp(fname, fd_item->fname) == 0) ) {
- /* we've got a match, check that fd is still open */
- struct stat stbuf;
-
- if (fstat(fd_item->fd, &stbuf) == 0) {
- return(fd_item->fd);
- }
- else {
- /* fd is not open - the entire fd table is suspect */
- fprintf(stderr, "fstat failed in ap_tpf_fd_lookup "
- "for fd %i (filename/pipe to %s): %s\n",
- fd_item->fd, fname, strerror(errno));
- ap_tpf_detach_shared_mem(&tpf_fds);
- return(-1);
- }
- }
- }
- }
- return(-1);
-}
-
-void ap_tpf_add_fd(pool *p, int fd, enum FILE_TYPE file_type, const char *fname)
-/* add a newly opened fd to the fd inheritance table */
-{
- int fname_size;
-
- if (tpf_child) {
- return; /* no kids allowed */
- }
- if (tpf_fds == NULL) {
- /* get shared memory if necssary */
- tpf_fds = ap_tpf_get_shared_mem((size_t)TPF_FD_LIST_SIZE);
- if (tpf_fds) {
- ap_register_cleanup(p, (void *)&tpf_fds,
- ap_tpf_detach_shared_mem, ap_null_cleanup);
- tpf_fds->nbr_of_items = 0;
- tpf_fds->next_avail_byte = &tpf_fds->first_item;
- tpf_fds->last_avail_byte = (char *)tpf_fds + TPF_FD_LIST_SIZE;
- }
- }
- /* add fd */
- if (tpf_fds) {
- TPF_FD_ITEM *fd_item;
-
- /* make sure there's room */
- fname_size = strlen(fname) + 1;
- if (sizeof(TPF_FD_ITEM) + fname_size >
- (char *)tpf_fds->last_avail_byte -
- (char *)tpf_fds->next_avail_byte) {
- fprintf(stderr, "fd inheritance table out of room, increase "
- "TPF_FD_LIST_SIZE in os.h and recompile Apache\n");
- exit(1);
- }
- /* add the new item */
- fd_item = tpf_fds->next_avail_byte;
- tpf_fds->next_avail_byte = fd_item + 1;
- tpf_fds->last_avail_byte
- = (char *)tpf_fds->last_avail_byte - fname_size;
- fd_item->fname = tpf_fds->last_avail_byte;
- strcpy(fd_item->fname, fname);
- fd_item->fd = fd;
- fd_item->file_type = file_type;
- tpf_fds->nbr_of_items++;
- }
-}
-
-API_EXPORT(piped_log *) ap_open_piped_log(pool *p, const char *program)
-{
- int log_fd;
- piped_log *pl;
-
- /* check fd inheritance table to see if this log is already open */
- log_fd = ap_tpf_fd_lookup(PIPE_OUT, program);
- if (log_fd < 0) {
- /* this is a new log - open it */
- FILE *dummy;
- TPF_FORK_CHILD cld;
- cld.filename = (char *)program;
- cld.subprocess_env = NULL;
- cld.prog_type = FORK_NAME;
-
- if (ap_spawn_child(p, NULL, &cld, kill_after_timeout,
- &dummy, NULL, NULL)) {
- log_fd = fileno(dummy);
- /* add this log to the fd inheritance table */
- ap_tpf_add_fd(p, log_fd, PIPE_OUT, program);
- }
- else {
- perror("ap_spawn_child");
- fprintf(stderr, "Couldn't fork child for piped log process\n");
- exit (1);
- }
- }
-
- pl = ap_palloc(p, sizeof (*pl));
- pl->p = p;
- pl->fds[1] = log_fd;
-
- return pl;
-}
-
-#endif /* __PIPE_ */
-
-/* The following functions are used for the tpf specific module called
- mod_tpf_shm_static. This module is a clone of Apache's mod_mmap_static.
- Because TPF doesn't support the system call mmap(), it is replaced by
- shared memory, but uses the mmap directives, etc. */
-
-union align{
-
- /* Types which are likely to have the longest RELEVANT alignment
- * restrictions... */
-
- char *cp;
- void (*f) (void);
- long l;
- FILE *fp;
- double d;
-};
-
-#define CLICK_SZ (sizeof(union align))
-union block_hdr {
- union align a;
-
- /* Actual header... */
-
- struct {
- char *endp;
- union block_hdr *next;
- char *first_avail;
- #ifdef POOL_DEBUG
- union block_hdr *global_next;
- struct pool *owning_pool;
- #endif
- } h;
-};
-
-struct pool {
- union block_hdr *first;
- union block_hdr *last;
- struct cleanup *cleanups;
- struct process_chain *subprocesses;
- struct pool *sub_pools;
- struct pool *sub_next;
- struct pool *sub_prev;
- struct pool *parent;
- char *free_first_avail;
-#ifdef ALLOC_USE_MALLOC
- void *allocation_list;
-#endif
-#ifdef POOL_DEBUG
- struct pool *joined;
-#endif
-};
-
-#include "ap_alloc.h"
-#define POOL_HDR_CLICKS (1 + ((sizeof(struct pool) - 1) / CLICK_SZ))
-#define POOL_HDR_BYTES (POOL_HDR_CLICKS * CLICK_SZ)
-
-pool * ap_get_shared_mem_pool(size_t size)
-{
- pool *new_pool;
- union block_hdr *blok;
-
- blok = (union block_hdr *) ap_tpf_get_shared_mem(size);
- /* if shm fails, it will exit blok will be valid here */
- memset((char *) blok, '\0', size);
- blok->h.next = NULL;
- blok->h.first_avail = (char *) (blok + 1);
- blok->h.endp = size + blok->h.first_avail;
- new_pool = (pool *) blok->h.first_avail;
- blok->h.first_avail += POOL_HDR_BYTES;
- new_pool->free_first_avail = blok->h.first_avail;
- new_pool->first = new_pool->last = blok;
-
- return new_pool;
-}
-
-int ap_check_shm_space(struct pool *a, int size)
-{
- union block_hdr *blok = a->last;
- char *first_avail = blok->h.first_avail;
- char *new_first_avail;
-
- new_first_avail = first_avail + size;
- if (new_first_avail <= blok->h.endp) {
- return (1);
- }
- else
- return (0);
-}
-
-/*
- This function serves as an interim killpg for Apache shutdown purposes.
- TPF won't have an actual killpg for a very long time, if ever.
- (And kill with a negative pid doesn't work on TPF either.)
-*/
-int killpg(pid_t pgrp, int sig)
-{
- int i;
-
- ap_sync_scoreboard_image();
-
- for (i = 0; i < HARD_SERVER_LIMIT; ++i) {
- int pid = ap_scoreboard_image->parent[i].pid;
- /* the pgrp check is so that we don't kill ourself: */
- if (pid && pid != pgrp) {
- kill(pid, sig);
- }
- }
- /* allow time for the signals to get to the children */
- sleep(1);
- /* get idle children's attention by closing the socket */
- closesocket(sock_sd);
- sleep(1);
-
- return(0);
-}
-
-/*
- This function augments http_main's show_compile_settings function.
- This way definitions that are only shown on TPF won't clutter up
- main line code.
-*/
-void show_os_specific_compile_settings(void)
-{
-int i;
-
-#ifdef USE_TPF_SCOREBOARD
- #error "USE_TPF_SCOREBOARD (system heap scoreboard)"
- #error "is no longer supported."
- #error "Replace with USE_SHMGET_SCOREBOARD to use"
- #error "shared memory or remove entirely to use"
- #error "scoreboard on file for pre-PUT10 systems"
-#endif
-
-#ifdef TPF_FORK_EXTENDED
- printf(" -D TPF_FORK_EXTENDED\n");
-#endif
-
-#ifdef TPF_HAVE_NONSOCKET_SELECT
- printf(" -D TPF_HAVE_NONSOCKET_SELECT\n");
-#endif
-
-#ifdef TPF_NO_NONSOCKET_SELECT
- printf(" -D TPF_NO_NONSOCKET_SELECT\n");
-#endif
-
-#ifdef TPF_HAVE_SAWNC
- printf(" -D TPF_HAVE_SAWNC\n");
-#endif
-
-#ifdef TPF_NO_SAWNC
- printf(" -D TPF_NO_SAWNC\n");
-#endif
-
-#ifdef TPF_HAVE_NSD
- printf(" -D TPF_HAVE_NSD\n");
-#endif
-
-#ifdef HAVE_SYSLOG
- printf(" -D HAVE_SYSLOG\n");
-#endif
-
- printf(" -D TPF_ACCEPT_SECS_TO_BLOCK=%i\n", TPF_ACCEPT_SECS_TO_BLOCK);
- /* round SCOREBOARD_MAINTENANCE_INTERVAL up to seconds */
- i = (SCOREBOARD_MAINTENANCE_INTERVAL + 999999) / 1000000;
- if (i == 1) {
- printf(" -D SCOREBOARD_MAINTENANCE_INTERVAL=1 SECOND\n");
- } else {
- printf(" -D SCOREBOARD_MAINTENANCE_INTERVAL=%i SECONDS\n", i);
- }
-
-#ifdef TPF_HAVE_SIGACTION
- printf(" -D TPF_HAVE_SIGACTION\n");
-#endif
-
-#ifdef NO_USE_SIGACTION
- printf(" -D NO_USE_SIGACTION\n");
-#endif
-
-}
diff --git a/usr.sbin/httpd/src/os/tpf/os.h b/usr.sbin/httpd/src/os/tpf/os.h
deleted file mode 100644
index fb0390e35df..00000000000
--- a/usr.sbin/httpd/src/os/tpf/os.h
+++ /dev/null
@@ -1,231 +0,0 @@
-#ifndef APACHE_OS_H
-#define APACHE_OS_H
-
-/*
- * This file is 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
- */
-
-#define PLATFORM "TPF"
-
-/************************************************************************
- * PJ26895 provides support for non_socket_select.
- * You can determine if this apar is applied to your system by looking
- * at i$pwbl.h. If the function non_socket_select is defined,
- * then add #define TPF_HAVE_NONSOCKET_SELECT
- * else add #define TPF_NO_NONSOCKET_SELECT
- *
- * One of these two #defines is required and must be added here in os.h
- * before the following check.
- ************************************************************************/
-
-#if !defined(TPF_HAVE_NONSOCKET_SELECT) && !defined(TPF_NO_NONSOCKET_SELECT)
- #error "You must define whether your system supports non_socket_select()"
- #error "See src/os/tpf/os.h for instructions"
-#endif
-
-#if defined(TPF_HAVE_NONSOCKET_SELECT) && defined(TPF_NO_NONSOCKET_SELECT)
- #error "TPF_HAVE_NONSOCKET_SELECT and TPF_NO_NONSOCKET_SELECT"
- #error "cannot both be defined"
- #error "See src/os/tpf/os.h for instructions"
-#endif
-
-/************************************************************************
- * PJ27387 or PJ26188 provides support for tpf_sawnc.
- * You can determine if this apar is applied to your system by looking at
- * tpfapi.h or i$fsdd.h. If the function tpf_sawnc is defined,
- * then add #define TPF_HAVE_SAWNC
- * else add #define TPF_NO_SAWNC
- *
- * One of these two #defines is required and must be added here in os.h
- * before the following check.
- ************************************************************************/
-
-#if !defined(TPF_HAVE_SAWNC) && !defined(TPF_NO_SAWNC)
- #error "You must define whether your system supports tpf_sawnc()"
- #error "See src/os/tpf/os.h for instructions"
-#endif
-
-#if defined(TPF_HAVE_SAWNC) && defined(TPF_NO_SAWNC)
- #error "TPF_HAVE_SAWNC and TPF_NO_SAWNC"
- #error "cannot both be defined"
- #error "See src/os/tpf/os.h for instructions"
-#endif
-
-/* if the compiler defined errno then undefine it
- and pick up the correct definition from errno.h */
-#if defined(errno) && !defined(__errnoh)
-#undef errno
-#include <errno.h>
-#endif
-
-/* If APAR PJ27277 (which shipped on PUT13) has been applied */
-/* then we want to #define TPF_FORK_EXTENDED so Perl CGIs will work. */
-/* Rather than hardcoding it we'll check for "environ" in stdlib.h, */
-/* which was also added by PJ27277. */
-#include <stdlib.h>
-#if defined(environ) && !defined(TPF_FORK_EXTENDED)
-#define TPF_FORK_EXTENDED
-#endif
-
-#include <sysapi.h>
-#include "ap_config.h"
-
-#define WUNTRACED 0 /* TPF's waitpid() doesn't support WUNTRACED */
-
-/* TPF_ACCEPT_SECS_TO_BLOCK is the number of seconds to block while
- waiting to accept a new request in the ap_accept/tpf_accept function */
-#ifndef TPF_ACCEPT_SECS_TO_BLOCK
-#define TPF_ACCEPT_SECS_TO_BLOCK 1
-#endif
-
-#ifdef HAVE_ISNAN
-#undef HAVE_ISNAN
-#endif
-
-#ifdef HAVE_ISINF
-#undef HAVE_ISINF
-#endif
-
-#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
-#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 *f);
-#endif
-
-/* Other ap_os_ routines not used by this platform */
-
-#define ap_os_is_filename_valid(f) (1)
-#define ap_os_kill(pid, sig) kill(pid, sig)
-
-#include <strings.h>
-#ifndef __strings_h
-
-#define FD_SETSIZE 2048
-
-typedef long fd_mask;
-
-#define NBBY 8 /* number of bits in a byte */
-#define NFDBITS (sizeof(fd_mask) * NBBY)
-#define howmany(x, y) (((x)+((y)-1))/(y))
-
-typedef struct fd_set {
- fd_mask fds_bits [howmany(FD_SETSIZE, NFDBITS)];
-} fd_set;
-
-#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)))
-#endif
-
-#ifdef FD_SET
-#undef FD_SET
-#define FD_SET(n, p) (0)
-#endif
-
-#define TPF_MUTEX_KEY_SIZE (sizeof(pid_t)*2+1)
-
-/* TPF doesn't have, or need, tzset (it is used in mod_expires.c) */
-#define tzset()
-
-/* definitions for the file descriptor inheritance table */
-#define TPF_FD_LIST_SIZE 4000
-
-enum FILE_TYPE { PIPE_OUT = 1, PIPE_IN, PIPE_ERR };
-
-typedef struct tpf_fd_item {
- int fd;
- enum FILE_TYPE file_type;
- char *fname;
-}TPF_FD_ITEM;
-
-typedef struct tpf_fd_list {
- void *next_avail_byte;
- void *last_avail_byte;
- unsigned int nbr_of_items;
- TPF_FD_ITEM first_item;
-}TPF_FD_LIST;
-
-#include <i$netd.h>
-typedef struct apache_input {
- void *scoreboard_heap; /* scoreboard system heap address */
- int slot; /* child number */
- int generation; /* server generation number */
- int listeners[10];
- time_t restart_time;
- TPF_FD_LIST *tpf_fds; /* fd inheritance table ptr */
- void *shm_static_ptr; /* shm ptr for static pages */
-}APACHE_TPF_INPUT;
-
-typedef union ebw_area {
- INETD_SERVER_INPUT parent;
- APACHE_TPF_INPUT child;
-}EBW_AREA;
-
-extern void *tpf_shm_static_ptr; /* mod_tpf_shm_static */
-#define TPF_SHM_STATIC_SIZE 200000
-#define MMAP_SEGMENT_SIZE 32767 /* writev can handle 32767 */
-#define _SYS_UIO_H_ /* writev */
-
-typedef struct tpf_fork_child {
- char *filename;
- enum { FORK_NAME = 1, FORK_FILE = 2 } prog_type;
- void *subprocess_env;
-}TPF_FORK_CHILD;
-
-int tpf_accept(int sockfd, struct sockaddr *peer, int *paddrlen);
-extern int tpf_child;
-
-struct server_rec;
-pid_t os_fork(struct server_rec *s, int slot);
-void ap_tpf_zinet_checks(int standalone,
- const char *servername,
- struct server_rec *s);
-int os_check_server(char *server);
-void show_os_specific_compile_settings(void);
-char *getpass(const char *prompt);
-int killpg(pid_t pgrp, int sig);
-extern char *ap_server_argv0;
-#include <signal.h>
-#ifndef SIGPIPE
-#define SIGPIPE 14
-#endif
-#ifdef NSIG
-#undef NSIG
-#endif
-void ap_tpf_save_argv(int argc, char **argv);
-
-/* various #defines for ServerType/ZINET model checks: */
-
-#define TPF_SERVERTYPE_MSG \
- "ServerType inetd is not supported on TPF" \
- " -- Apache startup aborted"
-
-#ifdef INETD_IDCF_MODEL_DAEMON
-#define TPF_STANDALONE_CONFLICT_MSG \
- "ServerType standalone requires ZINET model DAEMON or NOLISTEN" \
- " -- Apache startup aborted"
-#define TPF_NOLISTEN_WARNING \
- "ZINET model DAEMON is preferred over model NOLISTEN"
-#else
-#define INETD_IDCF_MODEL_DAEMON -1
-#define TPF_STANDALONE_CONFLICT_MSG \
- "ServerType standalone requires ZINET model NOLISTEN" \
- " -- Apache startup aborted"
-#endif
-
-#define TPF_UNABLE_TO_DETERMINE_ZINET_MODEL \
- "Unable to determine ZINET model: inetd_getServer(\"%s\") " \
- "call failed -- Apache startup aborted"
-
-#endif /*! APACHE_OS_H*/
diff --git a/usr.sbin/httpd/src/os/win32/ApacheOS.dsp b/usr.sbin/httpd/src/os/win32/ApacheOS.dsp
deleted file mode 100644
index 86d511f9c86..00000000000
--- a/usr.sbin/httpd/src/os/win32/ApacheOS.dsp
+++ /dev/null
@@ -1,89 +0,0 @@
-# Microsoft Developer Studio Project File - Name="ApacheOS" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Static Library" 0x0104
-
-CFG=ApacheOS - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "ApacheOS.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ApacheOS.mak" CFG="ApacheOS - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ApacheOS - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "ApacheOS - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-
-!IF "$(CFG)" == "ApacheOS - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "LibR"
-# PROP BASE Intermediate_Dir "LibR"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "LibR"
-# PROP Intermediate_Dir "LibR"
-# PROP Target_Dir ""
-RSC=rc.exe
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fd"LibR\ApacheOS" /FD /c
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ELSEIF "$(CFG)" == "ApacheOS - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "LibD"
-# PROP BASE Intermediate_Dir "LibD"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "LibD"
-# PROP Intermediate_Dir "LibD"
-# PROP Target_Dir ""
-RSC=rc.exe
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fd"LibD\ApacheOS" /FD /c
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LIB32=link.exe -lib
-# ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
-
-!ENDIF
-
-# Begin Target
-
-# Name "ApacheOS - Win32 Release"
-# Name "ApacheOS - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\os.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\os.h
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/ApacheOS.mak b/usr.sbin/httpd/src/os/win32/ApacheOS.mak
deleted file mode 100644
index ca65901e21b..00000000000
--- a/usr.sbin/httpd/src/os/win32/ApacheOS.mak
+++ /dev/null
@@ -1,184 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on ApacheOS.dsp
-!IF "$(CFG)" == ""
-CFG=ApacheOS - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to ApacheOS - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "ApacheOS - Win32 Release" && "$(CFG)" != "ApacheOS - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "ApacheOS.mak" CFG="ApacheOS - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "ApacheOS - Win32 Release" (based on "Win32 (x86) Static Library")
-!MESSAGE "ApacheOS - Win32 Debug" (based on "Win32 (x86) Static Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "ApacheOS - Win32 Release"
-
-OUTDIR=.\LibR
-INTDIR=.\LibR
-# Begin Custom Macros
-OutDir=.\LibR
-# End Custom Macros
-
-ALL : "$(OUTDIR)\ApacheOS.lib"
-
-
-CLEAN :
- -@erase "$(INTDIR)\ApacheOS.idb"
- -@erase "$(INTDIR)\ApacheOS.pdb"
- -@erase "$(INTDIR)\os.obj"
- -@erase "$(OUTDIR)\ApacheOS.lib"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\ApacheOS" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\ApacheOS.bsc"
-BSC32_SBRS= \
-
-LIB32=link.exe -lib
-LIB32_FLAGS=/nologo /out:"$(OUTDIR)\ApacheOS.lib"
-LIB32_OBJS= \
- "$(INTDIR)\os.obj"
-
-"$(OUTDIR)\ApacheOS.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
- $(LIB32) @<<
- $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "ApacheOS - Win32 Debug"
-
-OUTDIR=.\LibD
-INTDIR=.\LibD
-# Begin Custom Macros
-OutDir=.\LibD
-# End Custom Macros
-
-ALL : "$(OUTDIR)\ApacheOS.lib"
-
-
-CLEAN :
- -@erase "$(INTDIR)\ApacheOS.idb"
- -@erase "$(INTDIR)\ApacheOS.pdb"
- -@erase "$(INTDIR)\os.obj"
- -@erase "$(OUTDIR)\ApacheOS.lib"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\ApacheOS" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\ApacheOS.bsc"
-BSC32_SBRS= \
-
-LIB32=link.exe -lib
-LIB32_FLAGS=/nologo /out:"$(OUTDIR)\ApacheOS.lib"
-LIB32_OBJS= \
- "$(INTDIR)\os.obj"
-
-"$(OUTDIR)\ApacheOS.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
- $(LIB32) @<<
- $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("ApacheOS.dep")
-!INCLUDE "ApacheOS.dep"
-!ELSE
-!MESSAGE Warning: cannot find "ApacheOS.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "ApacheOS - Win32 Release" || "$(CFG)" == "ApacheOS - Win32 Debug"
-SOURCE=.\os.c
-
-"$(INTDIR)\os.obj" : $(SOURCE) "$(INTDIR)"
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/BaseAddr.ref b/usr.sbin/httpd/src/os/win32/BaseAddr.ref
deleted file mode 100644
index 7b136f25090..00000000000
--- a/usr.sbin/httpd/src/os/win32/BaseAddr.ref
+++ /dev/null
@@ -1,31 +0,0 @@
-; os/win32/BaseAddr.ref contains the central repository
-; of all module base addresses
-; to avoid relocation
-
-; WARNING: Update this file by reviewing the image size
-; of the debug-generated dll files; release images
-; should fit in the larger debug-sized reservations.
-; Always allow some slack (if >C000, size at 20000)
-; to allow for discrepancies between builds.
-
-; module name base-address max-size
-
-ApacheCore 0x6FF60000 0x000A0000
-xmlparse 0x6FF40000 0x00020000
-xmltok 0x6FF10000 0x00030000
-mod_auth_anon 0x6FEF0000 0x00010000
-mod_auth_digest 0x6FED0000 0x00020000
-mod_cern_meta 0x6FEC0000 0x00010000
-mod_digest 0x6FEB0000 0x00010000
-mod_expires 0x6FEA0000 0x00010000
-mod_headers 0x6FE90000 0x00010000
-mod_info 0x6FE80000 0x00010000
-mod_rewrite 0x6FE60000 0x00020000
-mod_speling 0x6FE50000 0x00010000
-mod_status 0x6FE40000 0x00010000
-mod_usertrack 0x6FE30000 0x00010000
-mod_proxy 0x6FE10000 0x00020000
-mod_auth_dbm 0x6FE00000 0x00010000
-mod_unique_id 0x6FDF0000 0x00010000
-mod_vhost_alias 0x6FDE0000 0x00010000
-mod_mime_magic 0x6FDD0000 0x00010000
diff --git a/usr.sbin/httpd/src/os/win32/MakeModuleMak.cpp b/usr.sbin/httpd/src/os/win32/MakeModuleMak.cpp
deleted file mode 100644
index 9ab9f272217..00000000000
--- a/usr.sbin/httpd/src/os/win32/MakeModuleMak.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-#include <fstream.h>
-#include <assert.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-void MakeMake(const char *szModule,const char *szSource)
- {
- ifstream ifs("Module.mak.tmpl",ios::nocreate);
- assert(ifs.good());
-
- char buf[1024];
- sprintf(buf,"%s.mak",szModule);
- ofstream ofs(buf,ios::trunc);
- for( ; ; )
- {
- ifs.getline(buf,sizeof buf);
- if(ifs.eof())
- break;
- for(char *s=buf ; *s ; )
- {
- char *p=strchr(s,'%');
- if(!p)
- {
- ofs << s << '\n';
- break;
- }
- if(!strncmp(p,"%Module%",8))
- {
- ofs.write(s,p-s);
- ofs << szModule;
- s=p+8;
- }
- else if(!strncmp(p,"%Source%",8))
- {
- ofs.write(s,p-s);
- ofs << szSource;
- s=p+8;
- }
- else
- {
- ofs.write(s,p-s+1);
- s=p+1;
- }
- }
- }
- }
-
-void main(int argc,char **argv)
- {
- if(argc < 2 || (argc%2) != 1)
- {
- cerr << argv[0] << " [<module name> <source file>]+\n";
- exit(1);
- }
- for(int n=1 ; n < argc ; n+=2)
- MakeMake(argv[n],argv[n+1]);
- }
-
diff --git a/usr.sbin/httpd/src/os/win32/Module.mak.tmpl b/usr.sbin/httpd/src/os/win32/Module.mak.tmpl
deleted file mode 100644
index 4f6f2e1be9c..00000000000
--- a/usr.sbin/httpd/src/os/win32/Module.mak.tmpl
+++ /dev/null
@@ -1,230 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-!IF "$(CFG)" == ""
-CFG=%Module% - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to %Module% - Win32\
- Debug.
-!ENDIF
-
-!IF "$(CFG)" != "%Module% - Win32 Release" && "$(CFG)" !=\
- "%Module% - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE on this makefile
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "%Module%.mak"\
- CFG="%Module% - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "%Module% - Win32 Release" (based on\
- "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "%Module% - Win32 Debug" (based on\
- "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-################################################################################
-# Begin Project
-# PROP Target_Last_Scanned "%Module% - Win32 Debug"
-MTL=mktyplib.exe
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "%Module% - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "%Module%R"
-# PROP Intermediate_Dir "%Module%R"
-# PROP Target_Dir ""
-OUTDIR=.\%Module%R
-INTDIR=.\%Module%R
-
-ALL : "$(OUTDIR)\%Module%.dll"
-
-CLEAN :
- -@erase "$(INTDIR)\%Source%.obj"
- -@erase "$(OUTDIR)\%Module%.dll"
- -@erase "$(OUTDIR)\%Module%.exp"
- -@erase "$(OUTDIR)\%Module%.lib"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\regex" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
-CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\regex" /D "WIN32" /D "NDEBUG" /D\
- "_WINDOWS" /Fp"$(INTDIR)/%Module%.pch" /YX /Fo"$(INTDIR)/" /c
-CPP_OBJS=.\%Module%R/
-CPP_SBRS=.\.
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /win32
-MTL_PROJ=/nologo /D "NDEBUG" /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/%Module%.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-# ADD LINK32 ..\CoreR\ApacheCore.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386
-LINK32_FLAGS=..\CoreR\ApacheCore.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib\
- uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll\
- /incremental:no /pdb:"$(OUTDIR)/%Module%.pdb" /machine:I386\
- /out:"$(OUTDIR)/%Module%.dll"\
- /implib:"$(OUTDIR)/%Module%.lib"
-LINK32_OBJS= \
- "$(INTDIR)\%Source%.obj"
-
-"$(OUTDIR)\%Module%.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "%Module% - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "%Module%D"
-# PROP Intermediate_Dir "%Module%D"
-# PROP Target_Dir ""
-OUTDIR=.\%Module%D
-INTDIR=.\%Module%D
-
-ALL : "$(OUTDIR)\%Module%.dll"
-
-CLEAN :
- -@erase "$(INTDIR)\%Source%.obj"
- -@erase "$(INTDIR)\vc40.idb"
- -@erase "$(INTDIR)\vc40.pdb"
- -@erase "$(OUTDIR)\%Module%.dll"
- -@erase "$(OUTDIR)\%Module%.exp"
- -@erase "$(OUTDIR)\%Module%.ilk"
- -@erase "$(OUTDIR)\%Module%.lib"
- -@erase "$(OUTDIR)\%Module%.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\regex" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
-CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\regex" /D "WIN32" /D "_DEBUG"\
- /D "_WINDOWS" /Fp"$(INTDIR)/%Module%.pch" /YX /Fo"$(INTDIR)/"\
- /Fd"$(INTDIR)/" /c
-CPP_OBJS=.\%Module%D/
-CPP_SBRS=.\.
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /win32
-MTL_PROJ=/nologo /D "_DEBUG" /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-BSC32_FLAGS=/nologo /o"$(OUTDIR)/%Module%.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 ..\CoreD\ApacheCore.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386
-LINK32_FLAGS=..\CoreD\ApacheCore.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib\
- uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll\
- /incremental:yes /pdb:"$(OUTDIR)/%Module%.pdb" /debug /machine:I386\
- /out:"$(OUTDIR)/%Module%.dll"\
- /implib:"$(OUTDIR)/%Module%.lib"
-LINK32_OBJS= \
- "$(INTDIR)\%Source%.obj"
-
-"$(OUTDIR)\%Module%.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-.c{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_OBJS)}.obj:
- $(CPP) $(CPP_PROJ) $<
-
-.c{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cpp{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-.cxx{$(CPP_SBRS)}.sbr:
- $(CPP) $(CPP_PROJ) $<
-
-################################################################################
-# Begin Target
-
-# Name "%Module% - Win32 Release"
-# Name "%Module% - Win32 Debug"
-
-!IF "$(CFG)" == "%Module% - Win32 Release"
-
-!ELSEIF "$(CFG)" == "%Module% - Win32 Debug"
-
-!ENDIF
-
-################################################################################
-# Begin Source File
-
-SOURCE=\work\apache\src\%Source%.c
-DEP_CPP_MOD_A=\
- "..\ap_alloc.h"\
- "..\buff.h"\
- "..\conf.h"\
- "..\http_config.h"\
- "..\http_core.h"\
- "..\http_log.h"\
- "..\http_request.h"\
- "..\httpd.h"\
- "..\regex\regex.h"\
- "..\ap_mmn.h"\
- ".\readdir.h"\
- {$(INCLUDE)}"\sys\stat.h"\
- {$(INCLUDE)}"\sys\types.h"\
-
-NODEP_CPP_MOD_A=\
- "..\sfio.h"\
-
-
-"$(INTDIR)\%Source%.obj" : $(SOURCE) $(DEP_CPP_MOD_A) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-# End Source File
-# End Target
-# End Project
-################################################################################
diff --git a/usr.sbin/httpd/src/os/win32/Win9xConHook.c b/usr.sbin/httpd/src/os/win32/Win9xConHook.c
deleted file mode 100644
index eb6e7f270a6..00000000000
--- a/usr.sbin/httpd/src/os/win32/Win9xConHook.c
+++ /dev/null
@@ -1,739 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifdef WIN32
-
-/*
- * Win9xConHook.dll - a hook proc to clean up Win95/98 console behavior.
- *
- * It is well(?) documented by Microsoft that the Win9x HandlerRoutine
- * hooked by the SetConsoleCtrlHandler never receives the CTRL_CLOSE_EVENT,
- * CTRL_LOGOFF_EVENT or CTRL_SHUTDOWN_EVENT signals.
- *
- * It is possible to have a second window to monitor the WM_ENDSESSION
- * message, but the close button still fails..
- *
- * There is a 16bit polling method for the close window option, but this
- * is CPU intensive and requires thunking.
- *
- * Attempts to subclass the 'tty' console fail, since that message thread
- * is actually owned by the 16 bit winoldap.mod process, although the
- * window reports it is owned by the process/thread of the console app.
- *
- * Win9xConHook is thunks the WM_CLOSE and WM_ENDSESSION messages,
- * first through a window hook procedure in the winoldap context, into
- * a subclass WndProc, and on to a second hidden monitor window in the
- * console application's context that dispatches them to the console app's
- * registered HandlerRoutine.
- */
-
-/* This debugging define turns on output to COM1, although you better init
- * the port first (even using hyperterm). It's the only way to catch the
- * goings on within system logoff/shutdown.
- * #define DBG 1
- */
-
-#include <windows.h>
-
-/* Variables used within any process context:
- * hookwndmsg is a shared message to send Win9xConHook signals
- * origwndprop is a wndprop atom to store the orig wndproc of the tty
- * hookwndprop is a wndprop atom to store the hwnd of the hidden child
- * is_service reminds us to unmark this process on the way out
- */
-static UINT hookwndmsg = 0;
-static LPCTSTR origwndprop;
-static LPCTSTR hookwndprop;
-static BOOL is_service = 0;
-//static HMODULE hmodThis = NULL;
-
-/* Variables used within the tty processes' context:
- * is_tty flags this process; -1 == unknown, 1 == if tty, 0 == if not
- * hw_tty is the handle of the top level tty in this process context
- * is_subclassed is toggled to assure DllMain removes the subclass on unload
- * hmodLock is there to try and prevent this dll from being unloaded if the
- * hook is removed while we are subclassed
- */
-static int is_tty = -1;
-static HWND hwtty = NULL;
-static BOOL is_subclassed = 0;
-
-// This simply causes a gpfault the moment it tries to FreeLibrary within
-// the subclass procedure ... not good.
-//static HMODULE hmodLock = NULL;
-
-/* Variables used within the service or console app's context:
- * hmodHook is the instance handle of this module for registering the hooks
- * hhkGetMessage is the hook handle for catching Posted messages
- * hhkGetMessage is the hook handle for catching Sent messages
- * monitor_hwnd is the invisible window that handles our tty messages
- * the tty_info strucure is used to pass args into the hidden window's thread
- */
-static HMODULE hmodHook = NULL;
-static HHOOK hhkGetMessage;
-//static HHOOK hhkCallWndProc;
-static HWND monitor_hwnd = NULL;
-
-typedef struct {
- PHANDLER_ROUTINE phandler;
- HINSTANCE instance;
- HWND parent;
- INT type;
- LPCSTR name;
-} tty_info;
-
-/* These are the GetWindowLong offsets for the hidden window's internal info
- * gwltty_phandler is the address of the app's HandlerRoutine
- * gwltty_ttywnd is the tty this hidden window will handle messages from
- */
-#define gwltty_phandler 0
-#define gwltty_ttywnd 4
-
-/* Forward declaration prototypes for internal functions
- */
-static BOOL CALLBACK EnumttyWindow(HWND wnd, LPARAM retwnd);
-static LRESULT WINAPI RegisterWindows9xService(BOOL set_service);
-static LRESULT CALLBACK ttyConsoleCtrlWndProc(HWND hwnd, UINT msg,
- WPARAM wParam, LPARAM lParam);
-static DWORD WINAPI ttyConsoleCtrlThread(LPVOID tty);
-static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg,
- WPARAM wParam, LPARAM lParam);
-static int HookProc(int hc, HWND *hwnd, UINT *msg,
- WPARAM *wParam, LPARAM *lParam);
-#ifdef DBG
-static VOID DbgPrintf(LPTSTR fmt, ...);
-#endif
-
-
-/* DllMain is invoked by every process in the entire system that is hooked
- * by our window hooks, notably the tty processes' context, and by the user
- * who wants tty messages (the app). Keep it light and simple.
- */
-BOOL __declspec(dllexport) APIENTRY DllMain(HINSTANCE hModule, ULONG ulReason,
- LPVOID pctx)
-{
- if (ulReason == DLL_PROCESS_ATTACH)
- {
- //hmodThis = hModule;
- if (!hookwndmsg) {
- origwndprop = MAKEINTATOM(GlobalAddAtom("Win9xConHookOrigProc"));
- hookwndprop = MAKEINTATOM(GlobalAddAtom("Win9xConHookThunkWnd"));
- hookwndmsg = RegisterWindowMessage("Win9xConHookMsg");
- }
-#ifdef DBG
-// DbgPrintf("H ProcessAttach:%8.8x\r\n",
-// GetCurrentProcessId());
-#endif
- }
- else if ( ulReason == DLL_PROCESS_DETACH )
- {
-#ifdef DBG
-// DbgPrintf("H ProcessDetach:%8.8x\r\n", GetCurrentProcessId());
-#endif
- if (monitor_hwnd)
- SendMessage(monitor_hwnd, WM_DESTROY, 0, 0);
- if (is_subclassed)
- SendMessage(hwtty, hookwndmsg, 0, (LPARAM)hwtty);
- if (hmodHook)
- {
- if (hhkGetMessage) {
- UnhookWindowsHookEx(hhkGetMessage);
- hhkGetMessage = NULL;
- }
- //if (hhkCallWndProc) {
- // UnhookWindowsHookEx(hhkCallWndProc);
- // hhkCallWndProc = NULL;
- //}
- FreeLibrary(hmodHook);
- hmodHook = NULL;
- }
- if (is_service)
- RegisterWindows9xService(FALSE);
- if (hookwndmsg) {
- GlobalDeleteAtom((ATOM)origwndprop);
- GlobalDeleteAtom((ATOM)hookwndprop);
- hookwndmsg = 0;
- }
- }
- return TRUE;
-}
-
-
-/* This group of functions are provided for the service/console app
- * to register itself a HandlerRoutine to accept tty or service messages
- */
-
-
-/* Exported function that creates a Win9x 'service' via a hidden window,
- * that notifies the process via the HandlerRoutine messages.
- */
-BOOL __declspec(dllexport) WINAPI Windows9xServiceCtrlHandler(
- PHANDLER_ROUTINE phandler,
- LPCSTR name)
-{
- /* If we have not yet done so */
- FreeConsole();
-
- if (name)
- {
- DWORD tid;
- HANDLE hThread;
- /* NOTE: this is static so the module can continue to
- * access these args while we go on to other things
- */
- static tty_info tty;
- tty.instance = GetModuleHandle(NULL);
- tty.phandler = phandler;
- tty.parent = NULL;
- tty.name = name;
- tty.type = 2;
- RegisterWindows9xService(TRUE);
- hThread = CreateThread(NULL, 0, ttyConsoleCtrlThread,
- (LPVOID)&tty, 0, &tid);
- if (hThread)
- {
- CloseHandle(hThread);
- return TRUE;
- }
- }
- else /* remove */
- {
- if (monitor_hwnd)
- SendMessage(monitor_hwnd, WM_DESTROY, 0, 0);
- RegisterWindows9xService(FALSE);
- return TRUE;
- }
- return FALSE;
-}
-
-
-/* Exported function that registers a HandlerRoutine to accept missing
- * Win9x CTRL_EVENTs from the tty window, as NT does without a hassle.
- * If add is 1 or 2, register the handler, if 2 also mark it as a service.
- * If add is 0 deregister the handler, and unmark if a service
- */
-BOOL __declspec(dllexport) WINAPI FixConsoleCtrlHandler(
- PHANDLER_ROUTINE phandler,
- INT add)
-{
- HWND parent;
-
- if (add)
- {
- HANDLE hThread;
- DWORD tid;
- /* NOTE: this is static so the module can continue to
- * access these args while we go on to other things
- */
- static tty_info tty;
- EnumWindows(EnumttyWindow, (LPARAM)&parent);
- if (!parent) {
-#ifdef DBG
- DbgPrintf("A EnumttyWindow failed (%d)\r\n", GetLastError());
-#endif
- return FALSE;
- }
- tty.instance = GetModuleHandle(NULL);
- tty.phandler = phandler;
- tty.parent = parent;
- tty.type = add;
- if (add == 2) {
- tty.name = "ttyService";
- RegisterWindows9xService(TRUE);
- }
- else
- tty.name = "ttyMonitor";
- hThread = CreateThread(NULL, 0, ttyConsoleCtrlThread,
- (LPVOID)&tty, 0, &tid);
- if (!hThread)
- return FALSE;
- CloseHandle(hThread);
- hmodHook = LoadLibrary("Win9xConHook.dll");
- if (hmodHook)
- {
- hhkGetMessage = SetWindowsHookEx(WH_GETMESSAGE,
- (HOOKPROC)GetProcAddress(hmodHook, "GetMsgProc"), hmodHook, 0);
- //hhkCallWndProc = SetWindowsHookEx(WH_CALLWNDPROC,
- // (HOOKPROC)GetProcAddress(hmodHook, "CallWndProc"), hmodHook, 0);
- }
- return TRUE;
- }
- else /* remove */
- {
- if (monitor_hwnd) {
- SendMessage(monitor_hwnd, WM_DESTROY, 0, 0);
- }
- if (hmodHook)
- {
- if (hhkGetMessage) {
- UnhookWindowsHookEx(hhkGetMessage);
- hhkGetMessage = NULL;
- }
- //if (hhkCallWndProc) {
- // UnhookWindowsHookEx(hhkCallWndProc);
- // hhkCallWndProc = NULL;
- //}
- FreeLibrary(hmodHook);
- hmodHook = NULL;
- }
- if (is_service)
- RegisterWindows9xService(FALSE);
- return TRUE;
- }
- return FALSE;
-}
-
-
-/* The following internal helpers are only used within the app's context
- */
-
-/* ttyConsoleCreateThread is the process that runs within the user app's
- * context. It creates and pumps the messages of a hidden monitor window,
- * watching for messages from the system, or the associated subclassed tty
- * window. Things can happen in our context that can't be done from the
- * tty's context, and visa versa, so the subclass procedure and this hidden
- * window work together to make it all happen.
- */
-static DWORD WINAPI ttyConsoleCtrlThread(LPVOID tty)
-{
- WNDCLASS wc;
- MSG msg;
- wc.style = CS_GLOBALCLASS;
- wc.lpfnWndProc = ttyConsoleCtrlWndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 8;
- wc.hInstance = NULL;
- wc.hIcon = NULL;
- wc.hCursor = NULL;
- wc.hbrBackground = NULL;
- wc.lpszMenuName = NULL;
- if (((tty_info*)tty)->parent)
- wc.lpszClassName = "ttyConHookChild";
- else
- wc.lpszClassName = "ApacheWin95ServiceMonitor";
-
- if (!RegisterClass(&wc)) {
-#ifdef DBG
- DbgPrintf("A proc %8.8x Error creating class %s (%d)\r\n",
- GetCurrentProcessId(), wc.lpszClassName, GetLastError());
-#endif
- return 0;
- }
-
- /* Create an invisible window */
- monitor_hwnd = CreateWindow(wc.lpszClassName, ((tty_info*)tty)->name,
- WS_OVERLAPPED & ~WS_VISIBLE,
- CW_USEDEFAULT, CW_USEDEFAULT,
- CW_USEDEFAULT, CW_USEDEFAULT,
- NULL, NULL,
- ((tty_info*)tty)->instance, tty);
-
- if (!monitor_hwnd) {
-#ifdef DBG
- DbgPrintf("A proc %8.8x Error creating window %s %s (%d)\r\n",
- GetCurrentProcessId(), wc.lpszClassName,
- ((tty_info*)tty)->name, GetLastError());
-#endif
- return 0;
- }
-
- while (GetMessage(&msg, NULL, 0, 0))
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
-
- /* Tag again as deleted, just in case we missed WM_DESTROY */
- monitor_hwnd = NULL;
- return 0;
-}
-
-
-/* This is the WndProc procedure for our invisible window.
- * When our subclasssed tty window receives the WM_CLOSE, WM_ENDSESSION,
- * or WM_QUERYENDSESSION messages, the message is dispatched to our hidden
- * window (this message process), and we call the installed HandlerRoutine
- * that was registered by the app.
- */
-static LRESULT CALLBACK ttyConsoleCtrlWndProc(HWND hwnd, UINT msg,
- WPARAM wParam, LPARAM lParam)
-{
- if (msg == WM_CREATE)
- {
- tty_info *tty = (tty_info*)(((LPCREATESTRUCT)lParam)->lpCreateParams);
- SetWindowLong(hwnd, gwltty_phandler, (LONG)tty->phandler);
- SetWindowLong(hwnd, gwltty_ttywnd, (LONG)tty->parent);
-#ifdef DBG
- DbgPrintf("A proc %8.8x created %8.8x %s for tty wnd %8.8x\r\n",
- GetCurrentProcessId(), hwnd,
- tty->name, tty->parent);
-#endif
- if (tty->parent) {
- SetProp(tty->parent, hookwndprop, hwnd);
- PostMessage(tty->parent, hookwndmsg,
- tty->type, (LPARAM)tty->parent);
- }
- return 0;
- }
- else if (msg == WM_DESTROY)
- {
- HWND parent = (HWND)GetWindowLong(hwnd, gwltty_ttywnd);
-#ifdef DBG
- DbgPrintf("A proc %8.8x destroyed %8.8x ttyConHookChild\r\n",
- GetCurrentProcessId(), hwnd);
-#endif
- if (parent) {
- RemoveProp(parent, hookwndprop);
- SendMessage(parent, hookwndmsg, 0, (LPARAM)parent);
- }
- monitor_hwnd = NULL;
- }
- else if (msg == WM_CLOSE)
- {
- PHANDLER_ROUTINE phandler =
- (PHANDLER_ROUTINE)GetWindowLong(hwnd, gwltty_phandler);
- LRESULT rv = phandler(CTRL_CLOSE_EVENT);
-#ifdef DBG
- DbgPrintf("A proc %8.8x invoked CTRL_CLOSE_EVENT "
- "returning %d\r\n",
- GetCurrentProcessId(), rv);
-#endif
- if (rv)
- return !rv;
- }
- else if ((msg == WM_QUERYENDSESSION) || (msg == WM_ENDSESSION))
- {
- if (lParam & ENDSESSION_LOGOFF)
- {
- PHANDLER_ROUTINE phandler =
- (PHANDLER_ROUTINE)GetWindowLong(hwnd, gwltty_phandler);
- LRESULT rv = phandler(CTRL_LOGOFF_EVENT);
-#ifdef DBG
- DbgPrintf("A proc %8.8x invoked CTRL_LOGOFF_EVENT "
- "returning %d\r\n",
- GetCurrentProcessId(), rv);
-#endif
- if (rv)
- return ((msg == WM_QUERYENDSESSION) ? rv : !rv);
- }
- else
- {
- PHANDLER_ROUTINE phandler =
- (PHANDLER_ROUTINE)GetWindowLong(hwnd, gwltty_phandler);
- LRESULT rv = phandler(CTRL_SHUTDOWN_EVENT);
-#ifdef DBG
- DbgPrintf("A proc %8.8x invoked CTRL_SHUTDOWN_EVENT "
- "returning %d\r\n", GetCurrentProcessId(), rv);
-#endif
- if (rv)
- return ((msg == WM_QUERYENDSESSION) ? rv : !rv);
- }
- }
- return (DefWindowProc(hwnd, msg, wParam, lParam));
-}
-
-
-/* The following internal helpers are invoked by the hooked tty and our app
- */
-
-
-/* Register or deregister the current process as a Windows9x style service.
- * Experience shows this call is ignored across processes, so the second
- * arg to RegisterServiceProcess (process group id) is effectively useless.
- */
-static LRESULT WINAPI RegisterWindows9xService(BOOL set_service)
-{
- static HINSTANCE hkernel;
- static DWORD (WINAPI *register_service_process)(DWORD, DWORD) = NULL;
- BOOL rv;
-
- if (set_service == is_service)
- return 1;
-
-#ifdef DBG
- DbgPrintf("R %s proc %8.8x as a service\r\n",
- set_service ? "installing" : "removing",
- GetCurrentProcessId());
-#endif
-
- if (!register_service_process)
- {
- /* Obtain a handle to the kernel library */
- hkernel = LoadLibrary("KERNEL32.DLL");
- if (!hkernel)
- return 0;
-
- /* Find the RegisterServiceProcess function */
- register_service_process = (DWORD (WINAPI *)(DWORD, DWORD))
- GetProcAddress(hkernel, "RegisterServiceProcess");
- if (register_service_process == NULL) {
- FreeLibrary(hkernel);
- return 0;
- }
- }
-
- /* Register this process as a service */
- rv = register_service_process(0, set_service != FALSE);
- if (rv)
- is_service = set_service;
-
- if (!is_service)
- {
- /* Unload the kernel library */
- FreeLibrary(hkernel);
- register_service_process = NULL;
- }
- return rv;
-}
-
-
-/*
- * This function only works when this process is the active process
- * (e.g. once it is running a child process, it can no longer determine
- * which console window is its own.)
- */
-static BOOL CALLBACK EnumttyWindow(HWND wnd, LPARAM retwnd)
-{
- char tmp[8];
- if (GetClassName(wnd, tmp, sizeof(tmp)) && !strcmp(tmp, "tty"))
- {
- DWORD wndproc, thisproc = GetCurrentProcessId();
- GetWindowThreadProcessId(wnd, &wndproc);
- if (wndproc == thisproc) {
- *((HWND*)retwnd) = wnd;
- return FALSE;
- }
- }
- return TRUE;
-}
-
-
-/* The remaining code all executes --in the tty's own process context--
- *
- * That means special attention must be paid to what it's doing...
- */
-
-/* Subclass message process for the tty window
- *
- * This code -handles- WM_CLOSE, WM_ENDSESSION and WM_QUERYENDSESSION
- * by dispatching them to the window identified by the hookwndprop
- * property atom set against our window. Messages are then dispatched
- * to origwndprop property atom we set against the window when we
- * injected this subclass. This trick did not work with simply a hook.
- */
-static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg,
- WPARAM wParam, LPARAM lParam)
-{
- WNDPROC origproc = (WNDPROC) GetProp(hwnd, origwndprop);
- if (!origproc)
- return 0;
-
- if (msg == WM_NCDESTROY
- || (msg == hookwndmsg && !LOWORD(wParam) && (HWND)lParam == hwnd))
- {
- if (is_subclassed) {
-#ifdef DBG
- DbgPrintf("W proc %08x hwnd:%08x Subclass removed\r\n",
- GetCurrentProcessId(), hwnd);
-#endif
- if (is_service)
- RegisterWindows9xService(FALSE);
- SetWindowLong(hwnd, GWL_WNDPROC, (LONG)origproc);
- RemoveProp(hwnd, origwndprop);
- RemoveProp(hwnd, hookwndprop);
- is_subclassed = FALSE;
- //if (hmodLock)
- // FreeLibrary(hmodLock);
- //hmodLock = NULL;
- }
- }
- else if (msg == WM_CLOSE || msg == WM_ENDSESSION
- || msg == WM_QUERYENDSESSION)
- {
- HWND child = (HWND)GetProp(hwnd, hookwndprop);
- if (child) {
-#ifdef DBG
- DbgPrintf("W proc %08x hwnd:%08x forwarded msg:%d\r\n",
- GetCurrentProcessId(), hwnd, msg);
-#endif
- return SendMessage(child, msg, wParam, lParam);
- }
- }
- return CallWindowProc(origproc, hwnd, msg, wParam, lParam);
-}
-
-
-/* HookProc, once installed, is responsible for subclassing the system
- * tty windows. It generally does nothing special itself, since
- * research indicates that it cannot deal well with the messages we are
- * interested in, that is, WM_CLOSE, WM_QUERYSHUTDOWN and WM_SHUTDOWN
- * of the tty process.
- *
- * Respond and subclass only when a WM_NULL is received by the window.
- */
-int HookProc(int hc, HWND *hwnd, UINT *msg, WPARAM *wParam, LPARAM *lParam)
-{
- if (is_tty == -1 && *hwnd)
- {
- char ttybuf[8];
- HWND htty;
- hwtty = *hwnd;
- while (htty = GetParent(hwtty))
- hwtty = htty;
- is_tty = (GetClassName(hwtty, ttybuf, sizeof(ttybuf))
- && !strcmp(ttybuf, "tty"));
-#ifdef DBG
- if (is_tty)
- DbgPrintf("H proc %08x tracking hwnd %08x\r\n",
- GetCurrentProcessId(), hwtty);
-#endif
- }
-
- if (*msg == hookwndmsg && *wParam && *lParam == (LPARAM)hwtty && is_tty)
- {
- WNDPROC origproc = (WNDPROC)GetWindowLong(hwtty, GWL_WNDPROC);
- //char myname[MAX_PATH];
- //if (GetModuleFileName(hmodThis, myname, sizeof(myname)))
- // hmodLock = LoadLibrary(myname);
- SetProp(hwtty, origwndprop, origproc);
- SetWindowLong(hwtty, GWL_WNDPROC, (LONG)WndProc);
- is_subclassed = TRUE;
-#ifdef DBG
- DbgPrintf("H proc %08x hwnd:%08x Subclassed\r\n",
- GetCurrentProcessId(), hwtty);
-#endif
- if (LOWORD(*wParam) == 2)
- RegisterWindows9xService(TRUE);
- }
-
- return -1;
-}
-
-
-/*
- * PostMessage Hook:
- */
-LRESULT __declspec(dllexport) CALLBACK GetMsgProc(INT hc, WPARAM wParam,
- LPARAM lParam)
-{
- PMSG pmsg;
-
- pmsg = (PMSG)lParam;
-
- if (pmsg) {
- int rv = HookProc(hc, &pmsg->hwnd, &pmsg->message,
- &pmsg->wParam, &pmsg->lParam);
- if (rv != -1)
- return rv;
- }
- /*
- * CallNextHookEx apparently ignores the hhook argument, so pass NULL
- */
- return CallNextHookEx(NULL, hc, wParam, lParam);
-}
-
-
-/*
- * SendMessage Hook:
- */
-LRESULT __declspec(dllexport) CALLBACK CallWndProc(INT hc, WPARAM wParam,
- LPARAM lParam)
-{
- PCWPSTRUCT pcwps = (PCWPSTRUCT)lParam;
-
- if (pcwps) {
- int rv = HookProc(hc, &pcwps->hwnd, &pcwps->message,
- &pcwps->wParam, &pcwps->lParam);
- if (rv != -1)
- return rv;
- }
- /*
- * CallNextHookEx apparently ignores the hhook argument, so pass NULL
- */
- return CallNextHookEx(NULL, hc, wParam, lParam);
-}
-
-
-#ifdef DBG
-VOID DbgPrintf(
- LPTSTR fmt,
- ...
- )
-{
- static HANDLE mutex;
- va_list marker;
- TCHAR szBuf[256];
- DWORD t;
- HANDLE gDbgOut;
-
- va_start(marker, fmt);
- wvsprintf(szBuf, fmt, marker);
- va_end(marker);
-
- if (!mutex)
- mutex = CreateMutex(NULL, FALSE, "Win9xConHookDbgOut");
- WaitForSingleObject(mutex, INFINITE);
- gDbgOut = CreateFile("COM1", GENERIC_READ | GENERIC_WRITE, 0,
- NULL, OPEN_EXISTING, FILE_FLAG_WRITE_THROUGH, NULL);
- WriteFile(gDbgOut, szBuf, strlen(szBuf), &t, NULL);
- CloseHandle(gDbgOut);
- ReleaseMutex(mutex);
-}
-#endif
-
-#endif /* WIN32 */
diff --git a/usr.sbin/httpd/src/os/win32/Win9xConHook.def b/usr.sbin/httpd/src/os/win32/Win9xConHook.def
deleted file mode 100644
index 85ec166404e..00000000000
--- a/usr.sbin/httpd/src/os/win32/Win9xConHook.def
+++ /dev/null
@@ -1,10 +0,0 @@
-LIBRARY Win9xConHook
-
-EXETYPE WINDOWS
-
-EXPORTS
- DllMain
- GetMsgProc
- CallWndProc
- FixConsoleCtrlHandler
- Windows9xServiceCtrlHandler
diff --git a/usr.sbin/httpd/src/os/win32/Win9xConHook.dsp b/usr.sbin/httpd/src/os/win32/Win9xConHook.dsp
deleted file mode 100644
index 8456fc2464c..00000000000
--- a/usr.sbin/httpd/src/os/win32/Win9xConHook.dsp
+++ /dev/null
@@ -1,103 +0,0 @@
-# Microsoft Developer Studio Project File - Name="Win9xConHook" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=Win9xConHook - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "Win9xConHook.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Win9xConHook.mak" CFG="Win9xConHook - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Win9xConHook - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "Win9xConHook - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "Win9xConHook - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir ".\Release"
-# PROP BASE Intermediate_Dir ".\Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\Win9xConHook_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /base:"0x1c0f0000" /opt:ref
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /base:"0x1c0f0000" /opt:ref
-
-!ELSEIF "$(CFG)" == "Win9xConHook - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\Win9xConHook_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /base:"0x1c0f0000"
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /base:"0x1c0f0000"
-
-!ENDIF
-
-# Begin Target
-
-# Name "Win9xConHook - Win32 Release"
-# Name "Win9xConHook - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\Win9xConHook.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\Win9xConHook.def
-# End Source File
-# Begin Source File
-
-SOURCE=.\Win9xConHook.h
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/Win9xConHook.h b/usr.sbin/httpd/src/os/win32/Win9xConHook.h
deleted file mode 100644
index e0f91fa0407..00000000000
--- a/usr.sbin/httpd/src/os/win32/Win9xConHook.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifndef AP_WIN9XCONHOOK_H
-#define AP_WIN9XCONHOOK_H
-
-#ifdef WIN32
-
-/* Windows9xServiceCtrlHandler registers a handler routine, frees the
- * console window, and registers this process as a service in Win9x.
- * It creats a hidden window of class "ApacheWin95ServiceMonitor"
- * and titled by the name passed, which passes the WM_SHUTDOWN message
- * through the given HandlerRoutine's CTRL_SHUTDOWN event.
- * Call with name of NULL to remove the Service handler.
- */
-BOOL WINAPI Windows9xServiceCtrlHandler(PHANDLER_ROUTINE phandler, LPCSTR name);
-
-
-/* FixConsoleControlHandler registers a handler routine with the
- * Win9xConHook.dll, creating a hidden window and forwarding the
- * WM_ENDSESSION and WM_CLOSE messages to the given HandlerRoutine
- * as CTRL_SHUTDOWN_EVENT, CTRL_LOGOFF_EVENT and CTRL_CLOSE_EVENT.
- * The application should still use SetConsoleCtrlHandler to grab
- * the CTRL_BREAK_EVENT and CTRL_C_EVENT, if desired.
- */
-BOOL WINAPI FixConsoleCtrlHandler(PHANDLER_ROUTINE phandler, BOOL add);
-
-
-/*
- * Exported PostMessage Hook, never use this directly:
- *
- * LRESULT CALLBACK GetMsgProc(INT hc, WPARAM wParam, LPARAM lParam);
- */
-
-
-/*
- * Exported SendMessage Hook, never use this directly:
- *
- * LRESULT CALLBACK CallWndProc(INT hc, WPARAM wParam, LPARAM lParam);
- */
-
-#endif /* WIN32 */
-
-#endif AP_WIN9XCONHOOK_H \ No newline at end of file
diff --git a/usr.sbin/httpd/src/os/win32/Win9xConHook.mak b/usr.sbin/httpd/src/os/win32/Win9xConHook.mak
deleted file mode 100644
index 9bd6d423ddf..00000000000
--- a/usr.sbin/httpd/src/os/win32/Win9xConHook.mak
+++ /dev/null
@@ -1,198 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on Win9xConHook.dsp
-!IF "$(CFG)" == ""
-CFG=Win9xConHook - Win32 Release
-!MESSAGE No configuration specified. Defaulting to Win9xConHook - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "Win9xConHook - Win32 Release" && "$(CFG)" != "Win9xConHook - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "Win9xConHook.mak" CFG="Win9xConHook - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "Win9xConHook - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "Win9xConHook - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "Win9xConHook - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-ALL : "$(OUTDIR)\Win9xConHook.dll"
-
-
-CLEAN :
- -@erase "$(INTDIR)\Win9xConHook.obj"
- -@erase "$(INTDIR)\Win9xConHook_src.idb"
- -@erase "$(INTDIR)\Win9xConHook_src.pdb"
- -@erase "$(OUTDIR)\Win9xConHook.dll"
- -@erase "$(OUTDIR)\Win9xConHook.exp"
- -@erase "$(OUTDIR)\Win9xConHook.lib"
- -@erase "$(OUTDIR)\Win9xConHook.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\Win9xConHook_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\Win9xConHook.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib /nologo /base:"0x1c0f0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\Win9xConHook.pdb" /debug /machine:I386 /def:".\Win9xConHook.def" /out:"$(OUTDIR)\Win9xConHook.dll" /implib:"$(OUTDIR)\Win9xConHook.lib" /opt:ref
-DEF_FILE= \
- ".\Win9xConHook.def"
-LINK32_OBJS= \
- "$(INTDIR)\Win9xConHook.obj"
-
-"$(OUTDIR)\Win9xConHook.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "Win9xConHook - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-ALL : "$(OUTDIR)\Win9xConHook.dll"
-
-
-CLEAN :
- -@erase "$(INTDIR)\Win9xConHook.obj"
- -@erase "$(INTDIR)\Win9xConHook_src.idb"
- -@erase "$(INTDIR)\Win9xConHook_src.pdb"
- -@erase "$(OUTDIR)\Win9xConHook.dll"
- -@erase "$(OUTDIR)\Win9xConHook.exp"
- -@erase "$(OUTDIR)\Win9xConHook.lib"
- -@erase "$(OUTDIR)\Win9xConHook.pdb"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\Win9xConHook_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\Win9xConHook.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib /nologo /base:"0x1c0f0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\Win9xConHook.pdb" /debug /machine:I386 /def:".\Win9xConHook.def" /out:"$(OUTDIR)\Win9xConHook.dll" /implib:"$(OUTDIR)\Win9xConHook.lib"
-DEF_FILE= \
- ".\Win9xConHook.def"
-LINK32_OBJS= \
- "$(INTDIR)\Win9xConHook.obj"
-
-"$(OUTDIR)\Win9xConHook.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("Win9xConHook.dep")
-!INCLUDE "Win9xConHook.dep"
-!ELSE
-!MESSAGE Warning: cannot find "Win9xConHook.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "Win9xConHook - Win32 Release" || "$(CFG)" == "Win9xConHook - Win32 Debug"
-SOURCE=.\Win9xConHook.c
-
-"$(INTDIR)\Win9xConHook.obj" : $(SOURCE) "$(INTDIR)"
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/apache.ico b/usr.sbin/httpd/src/os/win32/apache.ico
deleted file mode 100644
index bfb4f63ab62..00000000000
--- a/usr.sbin/httpd/src/os/win32/apache.ico
+++ /dev/null
Binary files differ
diff --git a/usr.sbin/httpd/src/os/win32/apache.rc b/usr.sbin/httpd/src/os/win32/apache.rc
deleted file mode 100644
index 6dde63f9501..00000000000
--- a/usr.sbin/httpd/src/os/win32/apache.rc
+++ /dev/null
@@ -1,84 +0,0 @@
-//Microsoft Developer Studio generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "winresrc.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Neutral resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
-#ifdef _WIN32
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDI_APACHE ICON DISCARDABLE "apache.ico"
-#endif // Neutral resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.K.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE DISCARDABLE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE DISCARDABLE
-BEGIN
- "#include ""winresrc.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE DISCARDABLE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-#endif // English (U.K.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/usr.sbin/httpd/src/os/win32/getopt.c b/usr.sbin/httpd/src/os/win32/getopt.c
deleted file mode 100644
index 1ab5f77a585..00000000000
--- a/usr.sbin/httpd/src/os/win32/getopt.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifdef WIN32
-
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-#include <stdlib.h>
-
-#define OPTERRCOLON (1)
-#define OPTERRNF (2)
-#define OPTERRARG (3)
-
-char *optarg;
-int optreset = 0;
-int optind = 1;
-int opterr = 1;
-int optopt;
-
-static int
-optiserr(int argc, char * const *argv, int oint, const char *optstr,
- int optchr, int err)
-{
- if(opterr)
- {
- fprintf(stderr, "Error in argument %d, char %d: ", oint, optchr+1);
- switch(err)
- {
- case OPTERRCOLON:
- fprintf(stderr, ": in flags\n");
- break;
- case OPTERRNF:
- fprintf(stderr, "option not found %c\n", argv[oint][optchr]);
- break;
- case OPTERRARG:
- fprintf(stderr, "no argument for option %c\n", argv[oint][optchr]);
- break;
- default:
- fprintf(stderr, "unknown\n");
- break;
- }
- }
- optopt = argv[oint][optchr];
- return('?');
-}
-
-
-
-int
-getopt(int argc, char* const *argv, const char *optstr)
-{
- static int optchr = 0;
- static int dash = 0; /* have already seen the - */
-
- char *cp;
-
- if (optreset)
- optreset = optchr = dash = 0;
- if(optind >= argc)
- return(EOF);
- if(!dash && (argv[optind][0] != '-'))
- return(EOF);
- if(!dash && (argv[optind][0] == '-') && !argv[optind][1])
- {
- /*
- * use to specify stdin. Need to let pgm process this and
- * the following args
- */
- return(EOF);
- }
- if((argv[optind][0] == '-') && (argv[optind][1] == '-'))
- {
- /* -- indicates end of args */
- optind++;
- return(EOF);
- }
- if(!dash)
- {
- assert((argv[optind][0] == '-') && argv[optind][1]);
- dash = 1;
- optchr = 1;
- }
-
- /* Check if the guy tries to do a -: kind of flag */
- assert(dash);
- if(argv[optind][optchr] == ':')
- {
- dash = 0;
- optind++;
- return(optiserr(argc, argv, optind-1, optstr, optchr, OPTERRCOLON));
- }
- if(!(cp = strchr(optstr, argv[optind][optchr])))
- {
- int errind = optind;
- int errchr = optchr;
-
- if(!argv[optind][optchr+1])
- {
- dash = 0;
- optind++;
- }
- else
- optchr++;
- return(optiserr(argc, argv, errind, optstr, errchr, OPTERRNF));
- }
- if(cp[1] == ':')
- {
- dash = 0;
- optind++;
- if(optind == argc)
- return(optiserr(argc, argv, optind-1, optstr, optchr, OPTERRARG));
- optarg = argv[optind++];
- return(*cp);
- }
- else
- {
- if(!argv[optind][optchr+1])
- {
- dash = 0;
- optind++;
- }
- else
- optchr++;
- return(*cp);
- }
- assert(0);
- return(0);
-}
-
-#ifdef TESTGETOPT
-int
- main (int argc, char **argv)
- {
- int c;
- extern char *optarg;
- extern int optind;
- int aflg = 0;
- int bflg = 0;
- int errflg = 0;
- char *ofile = NULL;
-
- while ((c = getopt(argc, argv, "abo:")) != EOF)
- switch (c) {
- case 'a':
- if (bflg)
- errflg++;
- else
- aflg++;
- break;
- case 'b':
- if (aflg)
- errflg++;
- else
- bflg++;
- break;
- case 'o':
- ofile = optarg;
- (void)printf("ofile = %s\n", ofile);
- break;
- case '?':
- errflg++;
- }
- if (errflg) {
- (void)fprintf(stderr,
- "usage: cmd [-a|-b] [-o <filename>] files...\n");
- exit (2);
- }
- for ( ; optind < argc; optind++)
- (void)printf("%s\n", argv[optind]);
- return 0;
- }
-
-#endif /* TESTGETOPT */
-
-#endif /* WIN32 */
diff --git a/usr.sbin/httpd/src/os/win32/getopt.h b/usr.sbin/httpd/src/os/win32/getopt.h
deleted file mode 100644
index 1fdb319cc6f..00000000000
--- a/usr.sbin/httpd/src/os/win32/getopt.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifndef GETOPT_H
-#define GETOPT_H
-
-#ifdef WIN32
-
-extern char *optarg;
-extern int optreset;
-extern int optind;
-extern int opterr;
-extern int optopt;
-int getopt(int argc, char* const *argv, const char *optstr);
-
-#endif /* WIN32 */
-
-#endif /* GETOPT_H */ \ No newline at end of file
diff --git a/usr.sbin/httpd/src/os/win32/main_win32.c b/usr.sbin/httpd/src/os/win32/main_win32.c
deleted file mode 100644
index 2dd16d2009f..00000000000
--- a/usr.sbin/httpd/src/os/win32/main_win32.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifdef WIN32
-
-/* main_win32.c - Apache executable stub file for Win32
- * This file's purpose in life is to load, and call the
- * "real" main function, apache_main(), located in ApacheCore.dll
- *
- * This was done because having the main() function in a DLL,
- * although Win32 allows it, seemed wrong. Also, MSVC++ won't
- * link an executable without at least one object file. This
- * satistifies that requirement.
- */
-
-__declspec(dllexport) int apache_main(int argc, char *argv[]);
-
-int main(int argc, char *argv[])
-{
- return apache_main(argc, argv);
-}
-
-#endif /* WIN32 */ \ No newline at end of file
diff --git a/usr.sbin/httpd/src/os/win32/mod_auth_anon.dsp b/usr.sbin/httpd/src/os/win32/mod_auth_anon.dsp
deleted file mode 100644
index d6cfc09acda..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_auth_anon.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_auth_anon" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_auth_anon - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_auth_anon.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_auth_anon.mak" CFG="mod_auth_anon - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_auth_anon - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_auth_anon - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_auth_anon - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_auth_anon_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_auth_anon.so" /base:@"BaseAddr.ref",mod_auth_anon /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_auth_anon.so" /base:@"BaseAddr.ref",mod_auth_anon /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_auth_anon - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_auth_anon_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_auth_anon.so" /base:@"BaseAddr.ref",mod_auth_anon
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_auth_anon.so" /base:@"BaseAddr.ref",mod_auth_anon
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_auth_anon - Win32 Release"
-# Name "mod_auth_anon - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_auth_anon.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_auth_anon.mak b/usr.sbin/httpd/src/os/win32/mod_auth_anon.mak
deleted file mode 100644
index 36a7a1a81bd..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_auth_anon.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_auth_anon.dsp
-!IF "$(CFG)" == ""
-CFG=mod_auth_anon - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_auth_anon - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_auth_anon - Win32 Release" && "$(CFG)" != "mod_auth_anon - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_auth_anon.mak" CFG="mod_auth_anon - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_auth_anon - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_auth_anon - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_auth_anon - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_auth_anon.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_auth_anon.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_auth_anon.obj"
- -@erase "$(INTDIR)\mod_auth_anon_src.idb"
- -@erase "$(INTDIR)\mod_auth_anon_src.pdb"
- -@erase "$(OUTDIR)\mod_auth_anon.exp"
- -@erase "$(OUTDIR)\mod_auth_anon.lib"
- -@erase "$(OUTDIR)\mod_auth_anon.pdb"
- -@erase "$(OUTDIR)\mod_auth_anon.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_auth_anon_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_auth_anon.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_auth_anon.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_auth_anon.so" /implib:"$(OUTDIR)\mod_auth_anon.lib" /base:@"BaseAddr.ref",mod_auth_anon /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_auth_anon.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_auth_anon.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_auth_anon - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_auth_anon.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_auth_anon.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_auth_anon.obj"
- -@erase "$(INTDIR)\mod_auth_anon_src.idb"
- -@erase "$(INTDIR)\mod_auth_anon_src.pdb"
- -@erase "$(OUTDIR)\mod_auth_anon.exp"
- -@erase "$(OUTDIR)\mod_auth_anon.lib"
- -@erase "$(OUTDIR)\mod_auth_anon.pdb"
- -@erase "$(OUTDIR)\mod_auth_anon.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_auth_anon_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_auth_anon.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_auth_anon.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_auth_anon.so" /implib:"$(OUTDIR)\mod_auth_anon.lib" /base:@"BaseAddr.ref",mod_auth_anon
-LINK32_OBJS= \
- "$(INTDIR)\mod_auth_anon.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_auth_anon.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_auth_anon.dep")
-!INCLUDE "mod_auth_anon.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_auth_anon.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_auth_anon - Win32 Release" || "$(CFG)" == "mod_auth_anon - Win32 Debug"
-
-!IF "$(CFG)" == "mod_auth_anon - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_auth_anon - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_auth_anon.c
-
-"$(INTDIR)\mod_auth_anon.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_auth_dbm.dsp b/usr.sbin/httpd/src/os/win32/mod_auth_dbm.dsp
deleted file mode 100644
index 12f913257df..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_auth_dbm.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_auth_dbm" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_auth_dbm - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_auth_dbm.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_auth_dbm.mak" CFG="mod_auth_dbm - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_auth_dbm - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_auth_dbm - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_auth_dbm - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /I "..\..\lib\sdbm" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_auth_dbm_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_auth_dbm.so" /base:@"BaseAddr.ref",mod_auth_dbm /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_auth_dbm.so" /base:@"BaseAddr.ref",mod_auth_dbm /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_auth_dbm - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /I "..\..\lib\sdbm" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_auth_dbm_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_auth_dbm.so" /base:@"BaseAddr.ref",mod_auth_dbm
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_auth_dbm.so" /base:@"BaseAddr.ref",mod_auth_dbm
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_auth_dbm - Win32 Release"
-# Name "mod_auth_dbm - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_auth_dbm.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_auth_dbm.mak b/usr.sbin/httpd/src/os/win32/mod_auth_dbm.mak
deleted file mode 100644
index 88fe867716a..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_auth_dbm.mak
+++ /dev/null
@@ -1,274 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_auth_dbm.dsp
-!IF "$(CFG)" == ""
-CFG=mod_auth_dbm - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_auth_dbm - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_auth_dbm - Win32 Release" && "$(CFG)" != "mod_auth_dbm - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_auth_dbm.mak" CFG="mod_auth_dbm - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_auth_dbm - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_auth_dbm - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_auth_dbm - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_auth_dbm.so"
-
-!ELSE
-
-ALL : "sdbm - Win32 Release" "ApacheCore - Win32 Release" "$(OUTDIR)\mod_auth_dbm.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN" "sdbm - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_auth_dbm.obj"
- -@erase "$(INTDIR)\mod_auth_dbm_src.idb"
- -@erase "$(INTDIR)\mod_auth_dbm_src.pdb"
- -@erase "$(OUTDIR)\mod_auth_dbm.exp"
- -@erase "$(OUTDIR)\mod_auth_dbm.lib"
- -@erase "$(OUTDIR)\mod_auth_dbm.pdb"
- -@erase "$(OUTDIR)\mod_auth_dbm.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /I "..\..\lib\sdbm" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_auth_dbm_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_auth_dbm.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_auth_dbm.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_auth_dbm.so" /implib:"$(OUTDIR)\mod_auth_dbm.lib" /base:@"BaseAddr.ref",mod_auth_dbm /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_auth_dbm.obj" \
- "..\..\Release\ApacheCore.lib" \
- "..\..\lib\sdbm\LibR\sdbm.lib"
-
-"$(OUTDIR)\mod_auth_dbm.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_auth_dbm - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_auth_dbm.so"
-
-!ELSE
-
-ALL : "sdbm - Win32 Debug" "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_auth_dbm.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN" "sdbm - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_auth_dbm.obj"
- -@erase "$(INTDIR)\mod_auth_dbm_src.idb"
- -@erase "$(INTDIR)\mod_auth_dbm_src.pdb"
- -@erase "$(OUTDIR)\mod_auth_dbm.exp"
- -@erase "$(OUTDIR)\mod_auth_dbm.lib"
- -@erase "$(OUTDIR)\mod_auth_dbm.pdb"
- -@erase "$(OUTDIR)\mod_auth_dbm.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /I "..\..\lib\sdbm" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_auth_dbm_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_auth_dbm.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_auth_dbm.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_auth_dbm.so" /implib:"$(OUTDIR)\mod_auth_dbm.lib" /base:@"BaseAddr.ref",mod_auth_dbm
-LINK32_OBJS= \
- "$(INTDIR)\mod_auth_dbm.obj" \
- "..\..\Debug\ApacheCore.lib" \
- "..\..\lib\sdbm\LibD\sdbm.lib"
-
-"$(OUTDIR)\mod_auth_dbm.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_auth_dbm.dep")
-!INCLUDE "mod_auth_dbm.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_auth_dbm.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_auth_dbm - Win32 Release" || "$(CFG)" == "mod_auth_dbm - Win32 Debug"
-
-!IF "$(CFG)" == "mod_auth_dbm - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_auth_dbm - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-!IF "$(CFG)" == "mod_auth_dbm - Win32 Release"
-
-"sdbm - Win32 Release" :
- cd "..\../..\src\lib\sdbm"
- $(MAKE) /$(MAKEFLAGS) /F ".\sdbm.mak" CFG="sdbm - Win32 Release"
- cd "..\..\os\win32"
-
-"sdbm - Win32 ReleaseCLEAN" :
- cd "..\../..\src\lib\sdbm"
- $(MAKE) /$(MAKEFLAGS) /F ".\sdbm.mak" CFG="sdbm - Win32 Release" RECURSE=1 CLEAN
- cd "..\..\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_auth_dbm - Win32 Debug"
-
-"sdbm - Win32 Debug" :
- cd "..\../..\src\lib\sdbm"
- $(MAKE) /$(MAKEFLAGS) /F ".\sdbm.mak" CFG="sdbm - Win32 Debug"
- cd "..\..\os\win32"
-
-"sdbm - Win32 DebugCLEAN" :
- cd "..\../..\src\lib\sdbm"
- $(MAKE) /$(MAKEFLAGS) /F ".\sdbm.mak" CFG="sdbm - Win32 Debug" RECURSE=1 CLEAN
- cd "..\..\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_auth_dbm.c
-
-"$(INTDIR)\mod_auth_dbm.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_auth_digest.dsp b/usr.sbin/httpd/src/os/win32/mod_auth_digest.dsp
deleted file mode 100644
index 555654846ee..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_auth_digest.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_auth_digest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_auth_digest - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_auth_digest.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_auth_digest.mak" CFG="mod_auth_digest - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_auth_digest - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_auth_digest - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_auth_digest - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_auth_digest_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_auth_digest.so" /base:@"BaseAddr.ref",mod_auth_digest /opt:ref
-# ADD LINK32 kernel32.lib advapi32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_auth_digest.so" /base:@"BaseAddr.ref",mod_auth_digest /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_auth_digest - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_auth_digest_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib advapi32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_auth_digest.so" /base:@"BaseAddr.ref",mod_auth_digest
-# ADD LINK32 kernel32.lib advapi32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_auth_digest.so" /base:@"BaseAddr.ref",mod_auth_digest
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_auth_digest - Win32 Release"
-# Name "mod_auth_digest - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\experimental\mod_auth_digest.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_auth_digest.mak b/usr.sbin/httpd/src/os/win32/mod_auth_digest.mak
deleted file mode 100644
index 7918f650053..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_auth_digest.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_auth_digest.dsp
-!IF "$(CFG)" == ""
-CFG=mod_auth_digest - Win32 Debug
-!MESSAGE No configuration specified. Defaulting to mod_auth_digest - Win32 Debug.
-!ENDIF
-
-!IF "$(CFG)" != "mod_auth_digest - Win32 Release" && "$(CFG)" != "mod_auth_digest - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_auth_digest.mak" CFG="mod_auth_digest - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_auth_digest - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_auth_digest - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_auth_digest - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_auth_digest.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_auth_digest.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_auth_digest.obj"
- -@erase "$(INTDIR)\mod_auth_digest_src.idb"
- -@erase "$(INTDIR)\mod_auth_digest_src.pdb"
- -@erase "$(OUTDIR)\mod_auth_digest.exp"
- -@erase "$(OUTDIR)\mod_auth_digest.lib"
- -@erase "$(OUTDIR)\mod_auth_digest.pdb"
- -@erase "$(OUTDIR)\mod_auth_digest.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_auth_digest_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_auth_digest.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib advapi32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_auth_digest.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_auth_digest.so" /implib:"$(OUTDIR)\mod_auth_digest.lib" /base:@"BaseAddr.ref",mod_auth_digest /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_auth_digest.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_auth_digest.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_auth_digest - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_auth_digest.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_auth_digest.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_auth_digest.obj"
- -@erase "$(INTDIR)\mod_auth_digest_src.idb"
- -@erase "$(INTDIR)\mod_auth_digest_src.pdb"
- -@erase "$(OUTDIR)\mod_auth_digest.exp"
- -@erase "$(OUTDIR)\mod_auth_digest.lib"
- -@erase "$(OUTDIR)\mod_auth_digest.pdb"
- -@erase "$(OUTDIR)\mod_auth_digest.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_auth_digest_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_auth_digest.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib advapi32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_auth_digest.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_auth_digest.so" /implib:"$(OUTDIR)\mod_auth_digest.lib" /base:@"BaseAddr.ref",mod_auth_digest
-LINK32_OBJS= \
- "$(INTDIR)\mod_auth_digest.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_auth_digest.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_auth_digest.dep")
-!INCLUDE "mod_auth_digest.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_auth_digest.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_auth_digest - Win32 Release" || "$(CFG)" == "mod_auth_digest - Win32 Debug"
-
-!IF "$(CFG)" == "mod_auth_digest - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_auth_digest - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\experimental\mod_auth_digest.c
-
-"$(INTDIR)\mod_auth_digest.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_cern_meta.dsp b/usr.sbin/httpd/src/os/win32/mod_cern_meta.dsp
deleted file mode 100644
index 1a38c6abb37..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_cern_meta.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_cern_meta" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_cern_meta - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_cern_meta.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_cern_meta.mak" CFG="mod_cern_meta - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_cern_meta - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_cern_meta - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_cern_meta - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_cern_meta_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_cern_meta.so" /base:@"BaseAddr.ref",mod_cern_meta /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_cern_meta.so" /base:@"BaseAddr.ref",mod_cern_meta /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_cern_meta - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_cern_meta_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_cern_meta.so" /base:@"BaseAddr.ref",mod_cern_meta
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_cern_meta.so" /base:@"BaseAddr.ref",mod_cern_meta
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_cern_meta - Win32 Release"
-# Name "mod_cern_meta - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_cern_meta.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_cern_meta.mak b/usr.sbin/httpd/src/os/win32/mod_cern_meta.mak
deleted file mode 100644
index 22b49447a51..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_cern_meta.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_cern_meta.dsp
-!IF "$(CFG)" == ""
-CFG=mod_cern_meta - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_cern_meta - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_cern_meta - Win32 Release" && "$(CFG)" != "mod_cern_meta - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_cern_meta.mak" CFG="mod_cern_meta - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_cern_meta - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_cern_meta - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_cern_meta - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_cern_meta.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_cern_meta.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_cern_meta.obj"
- -@erase "$(INTDIR)\mod_cern_meta_src.idb"
- -@erase "$(INTDIR)\mod_cern_meta_src.pdb"
- -@erase "$(OUTDIR)\mod_cern_meta.exp"
- -@erase "$(OUTDIR)\mod_cern_meta.lib"
- -@erase "$(OUTDIR)\mod_cern_meta.pdb"
- -@erase "$(OUTDIR)\mod_cern_meta.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_cern_meta_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_cern_meta.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_cern_meta.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_cern_meta.so" /implib:"$(OUTDIR)\mod_cern_meta.lib" /base:@"BaseAddr.ref",mod_cern_meta /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_cern_meta.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_cern_meta.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_cern_meta - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_cern_meta.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_cern_meta.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_cern_meta.obj"
- -@erase "$(INTDIR)\mod_cern_meta_src.idb"
- -@erase "$(INTDIR)\mod_cern_meta_src.pdb"
- -@erase "$(OUTDIR)\mod_cern_meta.exp"
- -@erase "$(OUTDIR)\mod_cern_meta.lib"
- -@erase "$(OUTDIR)\mod_cern_meta.pdb"
- -@erase "$(OUTDIR)\mod_cern_meta.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_cern_meta_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_cern_meta.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_cern_meta.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_cern_meta.so" /implib:"$(OUTDIR)\mod_cern_meta.lib" /base:@"BaseAddr.ref",mod_cern_meta
-LINK32_OBJS= \
- "$(INTDIR)\mod_cern_meta.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_cern_meta.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_cern_meta.dep")
-!INCLUDE "mod_cern_meta.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_cern_meta.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_cern_meta - Win32 Release" || "$(CFG)" == "mod_cern_meta - Win32 Debug"
-
-!IF "$(CFG)" == "mod_cern_meta - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_cern_meta - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_cern_meta.c
-
-"$(INTDIR)\mod_cern_meta.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_digest.dsp b/usr.sbin/httpd/src/os/win32/mod_digest.dsp
deleted file mode 100644
index dea88e6008a..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_digest.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_digest" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_digest - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_digest.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_digest.mak" CFG="mod_digest - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_digest - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_digest - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_digest - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_digest_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_digest.so" /base:@"BaseAddr.ref",mod_digest /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_digest.so" /base:@"BaseAddr.ref",mod_digest /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_digest - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_digest_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_digest.so" /base:@"BaseAddr.ref",mod_digest
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_digest.so" /base:@"BaseAddr.ref",mod_digest
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_digest - Win32 Release"
-# Name "mod_digest - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_digest.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_digest.mak b/usr.sbin/httpd/src/os/win32/mod_digest.mak
deleted file mode 100644
index 82b1673804e..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_digest.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_digest.dsp
-!IF "$(CFG)" == ""
-CFG=mod_digest - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_digest - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_digest - Win32 Release" && "$(CFG)" != "mod_digest - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_digest.mak" CFG="mod_digest - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_digest - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_digest - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_digest - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_digest.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_digest.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_digest.obj"
- -@erase "$(INTDIR)\mod_digest_src.idb"
- -@erase "$(INTDIR)\mod_digest_src.pdb"
- -@erase "$(OUTDIR)\mod_digest.exp"
- -@erase "$(OUTDIR)\mod_digest.lib"
- -@erase "$(OUTDIR)\mod_digest.pdb"
- -@erase "$(OUTDIR)\mod_digest.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_digest_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_digest.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_digest.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_digest.so" /implib:"$(OUTDIR)\mod_digest.lib" /base:@"BaseAddr.ref",mod_digest /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_digest.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_digest.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_digest - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_digest.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_digest.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_digest.obj"
- -@erase "$(INTDIR)\mod_digest_src.idb"
- -@erase "$(INTDIR)\mod_digest_src.pdb"
- -@erase "$(OUTDIR)\mod_digest.exp"
- -@erase "$(OUTDIR)\mod_digest.lib"
- -@erase "$(OUTDIR)\mod_digest.pdb"
- -@erase "$(OUTDIR)\mod_digest.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_digest_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_digest.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_digest.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_digest.so" /implib:"$(OUTDIR)\mod_digest.lib" /base:@"BaseAddr.ref",mod_digest
-LINK32_OBJS= \
- "$(INTDIR)\mod_digest.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_digest.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_digest.dep")
-!INCLUDE "mod_digest.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_digest.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_digest - Win32 Release" || "$(CFG)" == "mod_digest - Win32 Debug"
-
-!IF "$(CFG)" == "mod_digest - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_digest - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_digest.c
-
-"$(INTDIR)\mod_digest.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_expires.dsp b/usr.sbin/httpd/src/os/win32/mod_expires.dsp
deleted file mode 100644
index 39fb70437db..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_expires.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_expires" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_expires - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_expires.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_expires.mak" CFG="mod_expires - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_expires - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_expires - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_expires - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_expires_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_expires.so" /base:@"BaseAddr.ref",mod_expires /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_expires.so" /base:@"BaseAddr.ref",mod_expires /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_expires - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_expires_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_expires.so" /base:@"BaseAddr.ref",mod_expires
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_expires.so" /base:@"BaseAddr.ref",mod_expires
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_expires - Win32 Release"
-# Name "mod_expires - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_expires.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_expires.mak b/usr.sbin/httpd/src/os/win32/mod_expires.mak
deleted file mode 100644
index 96c8fe30a0b..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_expires.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_expires.dsp
-!IF "$(CFG)" == ""
-CFG=mod_expires - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_expires - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_expires - Win32 Release" && "$(CFG)" != "mod_expires - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_expires.mak" CFG="mod_expires - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_expires - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_expires - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_expires - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_expires.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_expires.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_expires.obj"
- -@erase "$(INTDIR)\mod_expires_src.idb"
- -@erase "$(INTDIR)\mod_expires_src.pdb"
- -@erase "$(OUTDIR)\mod_expires.exp"
- -@erase "$(OUTDIR)\mod_expires.lib"
- -@erase "$(OUTDIR)\mod_expires.pdb"
- -@erase "$(OUTDIR)\mod_expires.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_expires_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_expires.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_expires.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_expires.so" /implib:"$(OUTDIR)\mod_expires.lib" /base:@"BaseAddr.ref",mod_expires /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_expires.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_expires.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_expires - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_expires.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_expires.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_expires.obj"
- -@erase "$(INTDIR)\mod_expires_src.idb"
- -@erase "$(INTDIR)\mod_expires_src.pdb"
- -@erase "$(OUTDIR)\mod_expires.exp"
- -@erase "$(OUTDIR)\mod_expires.lib"
- -@erase "$(OUTDIR)\mod_expires.pdb"
- -@erase "$(OUTDIR)\mod_expires.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_expires_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_expires.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_expires.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_expires.so" /implib:"$(OUTDIR)\mod_expires.lib" /base:@"BaseAddr.ref",mod_expires
-LINK32_OBJS= \
- "$(INTDIR)\mod_expires.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_expires.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_expires.dep")
-!INCLUDE "mod_expires.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_expires.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_expires - Win32 Release" || "$(CFG)" == "mod_expires - Win32 Debug"
-
-!IF "$(CFG)" == "mod_expires - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_expires - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_expires.c
-
-"$(INTDIR)\mod_expires.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_headers.dsp b/usr.sbin/httpd/src/os/win32/mod_headers.dsp
deleted file mode 100644
index dfdf83f5641..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_headers.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_headers" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_headers - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_headers.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_headers.mak" CFG="mod_headers - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_headers - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_headers - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_headers - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_headers_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_headers.so" /base:@"BaseAddr.ref",mod_headers /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_headers.so" /base:@"BaseAddr.ref",mod_headers /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_headers - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_headers_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_headers.so" /base:@"BaseAddr.ref",mod_headers
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_headers.so" /base:@"BaseAddr.ref",mod_headers
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_headers - Win32 Release"
-# Name "mod_headers - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_headers.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_headers.mak b/usr.sbin/httpd/src/os/win32/mod_headers.mak
deleted file mode 100644
index 70d0790d893..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_headers.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_headers.dsp
-!IF "$(CFG)" == ""
-CFG=mod_headers - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_headers - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_headers - Win32 Release" && "$(CFG)" != "mod_headers - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_headers.mak" CFG="mod_headers - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_headers - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_headers - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_headers - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_headers.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_headers.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_headers.obj"
- -@erase "$(INTDIR)\mod_headers_src.idb"
- -@erase "$(INTDIR)\mod_headers_src.pdb"
- -@erase "$(OUTDIR)\mod_headers.exp"
- -@erase "$(OUTDIR)\mod_headers.lib"
- -@erase "$(OUTDIR)\mod_headers.pdb"
- -@erase "$(OUTDIR)\mod_headers.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_headers_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_headers.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_headers.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_headers.so" /implib:"$(OUTDIR)\mod_headers.lib" /base:@"BaseAddr.ref",mod_headers /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_headers.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_headers.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_headers - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_headers.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_headers.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_headers.obj"
- -@erase "$(INTDIR)\mod_headers_src.idb"
- -@erase "$(INTDIR)\mod_headers_src.pdb"
- -@erase "$(OUTDIR)\mod_headers.exp"
- -@erase "$(OUTDIR)\mod_headers.lib"
- -@erase "$(OUTDIR)\mod_headers.pdb"
- -@erase "$(OUTDIR)\mod_headers.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_headers_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_headers.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_headers.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_headers.so" /implib:"$(OUTDIR)\mod_headers.lib" /base:@"BaseAddr.ref",mod_headers
-LINK32_OBJS= \
- "$(INTDIR)\mod_headers.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_headers.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_headers.dep")
-!INCLUDE "mod_headers.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_headers.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_headers - Win32 Release" || "$(CFG)" == "mod_headers - Win32 Debug"
-
-!IF "$(CFG)" == "mod_headers - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_headers - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_headers.c
-
-"$(INTDIR)\mod_headers.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_info.dsp b/usr.sbin/httpd/src/os/win32/mod_info.dsp
deleted file mode 100644
index f9490c569b2..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_info.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_info" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_info - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_info.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_info.mak" CFG="mod_info - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_info - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_info - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_info - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_info_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_info.so" /base:@"BaseAddr.ref",mod_info /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_info.so" /base:@"BaseAddr.ref",mod_info /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_info - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_info_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_info.so" /base:@"BaseAddr.ref",mod_info
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_info.so" /base:@"BaseAddr.ref",mod_info
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_info - Win32 Release"
-# Name "mod_info - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_info.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_info.mak b/usr.sbin/httpd/src/os/win32/mod_info.mak
deleted file mode 100644
index 4b1ca88b957..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_info.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_info.dsp
-!IF "$(CFG)" == ""
-CFG=mod_info - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_info - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_info - Win32 Release" && "$(CFG)" != "mod_info - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_info.mak" CFG="mod_info - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_info - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_info - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_info - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_info.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_info.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_info.obj"
- -@erase "$(INTDIR)\mod_info_src.idb"
- -@erase "$(INTDIR)\mod_info_src.pdb"
- -@erase "$(OUTDIR)\mod_info.exp"
- -@erase "$(OUTDIR)\mod_info.lib"
- -@erase "$(OUTDIR)\mod_info.pdb"
- -@erase "$(OUTDIR)\mod_info.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_info_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_info.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_info.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_info.so" /implib:"$(OUTDIR)\mod_info.lib" /base:@"BaseAddr.ref",mod_info /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_info.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_info.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_info - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_info.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_info.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_info.obj"
- -@erase "$(INTDIR)\mod_info_src.idb"
- -@erase "$(INTDIR)\mod_info_src.pdb"
- -@erase "$(OUTDIR)\mod_info.exp"
- -@erase "$(OUTDIR)\mod_info.lib"
- -@erase "$(OUTDIR)\mod_info.pdb"
- -@erase "$(OUTDIR)\mod_info.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_info_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_info.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_info.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_info.so" /implib:"$(OUTDIR)\mod_info.lib" /base:@"BaseAddr.ref",mod_info
-LINK32_OBJS= \
- "$(INTDIR)\mod_info.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_info.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_info.dep")
-!INCLUDE "mod_info.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_info.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_info - Win32 Release" || "$(CFG)" == "mod_info - Win32 Debug"
-
-!IF "$(CFG)" == "mod_info - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_info - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_info.c
-
-"$(INTDIR)\mod_info.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_isapi.c b/usr.sbin/httpd/src/os/win32/mod_isapi.c
deleted file mode 100644
index 3d7f6b88404..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_isapi.c
+++ /dev/null
@@ -1,933 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-/*
- * mod_isapi.c - Internet Server Application (ISA) module for Apache
- * by Alexei Kosut <akosut@apache.org>
- *
- * This module implements Microsoft's ISAPI, allowing Apache (when running
- * under Windows) to load Internet Server Applications (ISAPI extensions).
- * It implements all of the ISAPI 2.0 specification, except for the
- * "Microsoft-only" extensions dealing with asynchronous I/O. All ISAPI
- * extensions that use only synchronous I/O and are compatible with the
- * ISAPI 2.0 specification should work (most ISAPI 1.0 extensions should
- * function as well).
- *
- * To load, simply place the ISA in a location in the document tree.
- * Then add an "AddHandler isapi-isa dll" into your config file.
- * You should now be able to load ISAPI DLLs just be reffering to their
- * URLs. Make sure the ExecCGI option is active in the directory
- * the ISA is in.
- */
-
-#ifdef WIN32
-
-/* A lousy hack to include ap_check_cmd_context(): */
-#define CORE_PRIVATE
-
-#include "httpd.h"
-#include "http_config.h"
-#include "http_core.h"
-#include "http_protocol.h"
-#include "http_request.h"
-#include "http_log.h"
-#include "util_script.h"
-#include <stdlib.h>
-/* We use the exact same header file as the original */
-#include <HttpExt.h>
-
-/* Seems IIS does not enforce the requirement for \r\n termination on HSE_REQ_SEND_RESPONSE_HEADER,
- define this to conform */
-#define RELAX_HEADER_RULE
-
-#if !defined(HSE_REQ_SEND_RESPONSE_HEADER_EX) \
- || !defined(HSE_REQ_MAP_URL_TO_PATH_EX)
-#pragma message("WARNING: This build of Apache is missing the recent changes")
-#pragma message("in the Microsoft Win32 Platform SDK; some mod_isapi features")
-#pragma message("will be disabled. To obtain the latest Platform SDK files,")
-#pragma message("please refer to:")
-#pragma message("http://msdn.microsoft.com/downloads/sdks/platform/platform.asp")
-#endif
-
-module isapi_module;
-
-static DWORD ReadAheadBuffer = 49152;
-static int LogNotSupported = -1;
-static int AppendLogToErrors = 0;
-static int AppendLogToQuery = 0;
-
-/* Our "Connection ID" structure */
-
-typedef struct {
- LPEXTENSION_CONTROL_BLOCK ecb;
- request_rec *r;
- int status;
-} isapi_cid;
-
-/* Declare the ISAPI functions */
-
-BOOL WINAPI GetServerVariable (HCONN hConn, LPSTR lpszVariableName,
- LPVOID lpvBuffer, LPDWORD lpdwSizeofBuffer);
-BOOL WINAPI WriteClient (HCONN ConnID, LPVOID Buffer, LPDWORD lpwdwBytes,
- DWORD dwReserved);
-BOOL WINAPI ReadClient (HCONN ConnID, LPVOID lpvBuffer, LPDWORD lpdwSize);
-BOOL WINAPI ServerSupportFunction (HCONN hConn, DWORD dwHSERequest,
- LPVOID lpvBuffer, LPDWORD lpdwSize,
- LPDWORD lpdwDataType);
-
-/*
- The optimiser blows it totally here. What happens is that autos are addressed relative to the
- stack pointer, which, of course, moves around. The optimiser seems to lose track of it somewhere
- between setting isapi_entry and calling through it. We work around the problem by forcing it to
- use frame pointers.
-*/
-#pragma optimize("y",off)
-
-int isapi_handler (request_rec *r) {
- LPEXTENSION_CONTROL_BLOCK ecb =
- ap_pcalloc(r->pool, sizeof(struct _EXTENSION_CONTROL_BLOCK));
- HSE_VERSION_INFO *pVer = ap_pcalloc(r->pool, sizeof(HSE_VERSION_INFO));
-
- HINSTANCE isapi_handle;
- BOOL (*isapi_version)(HSE_VERSION_INFO *); /* entry point 1 */
- DWORD (*isapi_entry)(LPEXTENSION_CONTROL_BLOCK); /* entry point 2 */
- BOOL (*isapi_term)(DWORD); /* optional entry point 3 */
-
- isapi_cid *cid = ap_pcalloc(r->pool, sizeof(isapi_cid));
- table *e = r->subprocess_env;
- DWORD read;
- char *p;
- int retval;
- int res;
-
- /* Use similar restrictions as CGIs */
-
- if (!(ap_allow_options(r) & OPT_EXECCGI))
- return FORBIDDEN;
-
- if (r->finfo.st_mode == 0)
- return NOT_FOUND;
-
- if (S_ISDIR(r->finfo.st_mode))
- return FORBIDDEN;
-
- if (!(isapi_handle = ap_os_dso_load(r->filename))) {
- ap_log_rerror(APLOG_MARK, APLOG_ALERT, r,
- "ISAPI Could not load DLL: %s", r->filename);
- return SERVER_ERROR;
- }
-
- if (!(isapi_version =
- (void *)(ap_os_dso_sym(isapi_handle, "GetExtensionVersion")))) {
- ap_log_rerror(APLOG_MARK, APLOG_ALERT, r,
- "DLL could not load GetExtensionVersion(): %s",
- r->filename);
- ap_os_dso_unload(isapi_handle);
- return SERVER_ERROR;
- }
-
- if (!(isapi_entry =
- (void *)(ap_os_dso_sym(isapi_handle, "HttpExtensionProc")))) {
- ap_log_rerror(APLOG_MARK, APLOG_ALERT, r,
- "DLL could not load HttpExtensionProc(): %s",
- r->filename);
- ap_os_dso_unload(isapi_handle);
- return SERVER_ERROR;
- }
-
- isapi_term = (void *)(ap_os_dso_sym(isapi_handle, "TerminateExtension"));
-
- /* Run GetExtensionVersion() */
-
- if (!(*isapi_version)(pVer)) {
- ap_log_rerror(APLOG_MARK, APLOG_ALERT, r,
- "ISAPI GetExtensionVersion() failed: %s", r->filename);
- ap_os_dso_unload(isapi_handle);
- return SERVER_ERROR;
- }
-
- /* Set up variables. There are a couple of special cases for ISAPI.
- * XXX: These were taken verbatim from GetServerVariable, and should
- * be reviewed carefully.
- */
- ap_add_common_vars(r);
- ap_add_cgi_vars(r);
- ap_table_setn(r->subprocess_env, "UNMAPPED_REMOTE_USER", "REMOTE_USER");
- ap_table_setn(r->subprocess_env, "SERVER_PORT_SECURE", "0");
- ap_table_setn(r->subprocess_env, "URL", r->uri);
-
- /* Set up connection ID */
- ecb->ConnID = (HCONN)cid;
- cid->ecb = ecb;
- cid->r = r;
- cid->status = 0;
-
- ecb->cbSize = sizeof(struct _EXTENSION_CONTROL_BLOCK);
- ecb->dwVersion = MAKELONG(0, 2);
- ecb->dwHttpStatusCode = 0;
- strcpy(ecb->lpszLogData, "");
- ecb->lpszMethod = ap_pstrdup(r->pool, r->method);
- ecb->lpszQueryString = ap_pstrdup(r->pool, ap_table_get(e, "QUERY_STRING"));
- ecb->lpszPathInfo = ap_pstrdup(r->pool, ap_table_get(e, "PATH_INFO"));
- ecb->lpszPathTranslated = ap_pstrdup(r->pool, ap_table_get(e, "PATH_TRANSLATED"));
- ecb->lpszContentType = ap_pstrdup(r->pool, ap_table_get(e, "CONTENT_TYPE"));
-
- /* Set up client input */
- if ((retval = ap_setup_client_block(r, REQUEST_CHUNKED_ERROR))) {
- if (isapi_term) (*isapi_term)( 2 /* HSE_TERM_MUST_UNLOAD */);
- ap_os_dso_unload(isapi_handle);
- return retval;
- }
-
- if (ap_should_client_block(r)) {
- /* Time to start reading the appropriate amount of data,
- * and allow the administrator to tweak the number
- * TODO: add the httpd.conf option for ReadAheadBuffer.
- */
- if (r->remaining) {
- ecb->cbTotalBytes = r->remaining;
- if (ecb->cbTotalBytes > ReadAheadBuffer)
- ecb->cbAvailable = ReadAheadBuffer;
- else
- ecb->cbAvailable = ecb->cbTotalBytes;
- }
- else
- {
- ecb->cbTotalBytes = 0xffffffff;
- ecb->cbAvailable = ReadAheadBuffer;
- }
-
- ecb->lpbData = ap_pcalloc(r->pool, ecb->cbAvailable + 1);
-
- p = ecb->lpbData;
- read = 0;
- while (read < ecb->cbAvailable &&
- ((res = ap_get_client_block(r, ecb->lpbData + read,
- ecb->cbAvailable - read)) > 0)) {
- read += res;
- }
-
- if (res < 0) {
- if (isapi_term) (*isapi_term)(HSE_TERM_MUST_UNLOAD);
- ap_os_dso_unload(isapi_handle);
- return SERVER_ERROR;
- }
-
- /* Although its not to spec, IIS seems to null-terminate
- * its lpdData string. So we will too.
- *
- * XXX: This must be an issue... backing out the null
- * from the count of bytes.
- */
- if (res == 0)
- ecb->cbAvailable = ecb->cbTotalBytes = read;
- else
- ecb->cbAvailable = read;
- ecb->lpbData[read] = '\0';
- }
- else {
- ecb->cbTotalBytes = 0;
- ecb->cbAvailable = 0;
- ecb->lpbData = NULL;
- }
-
- /* Set up the callbacks */
-
- ecb->GetServerVariable = &GetServerVariable;
- ecb->WriteClient = &WriteClient;
- ecb->ReadClient = &ReadClient;
- ecb->ServerSupportFunction = &ServerSupportFunction;
-
- /* All right... try and load the sucker */
- retval = (*isapi_entry)(ecb);
-
- /* Set the status (for logging) */
- if (ecb->dwHttpStatusCode)
- r->status = ecb->dwHttpStatusCode;
-
- /* Check for a log message - and log it */
- if (ecb->lpszLogData && strcmp(ecb->lpszLogData, ""))
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r,
- "ISAPI: %s: %s", ecb->lpszLogData, r->filename);
-
- /* Soak up any remaining input */
- if (r->remaining > 0) {
- char argsbuffer[HUGE_STRING_LEN];
- while (ap_get_client_block(r, argsbuffer, HUGE_STRING_LEN) > 0);
- }
-
- /* All done with the DLL... get rid of it */
- if (isapi_term) (*isapi_term)(HSE_TERM_MUST_UNLOAD);
- ap_os_dso_unload(isapi_handle);
-
- switch(retval) {
- case 0: /* Strange, but MS isapi accepts this as success */
- case HSE_STATUS_SUCCESS:
- case HSE_STATUS_SUCCESS_AND_KEEP_CONN:
- /* Ignore the keepalive stuff; Apache handles it just fine without
- * the ISA's "advice".
- */
-
- if (cid->status) /* We have a special status to return */
- return cid->status;
-
- return OK;
- case HSE_STATUS_PENDING: /* We don't support this */
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI asynchronous I/O not supported: %s",
- r->filename);
- case HSE_STATUS_ERROR:
- default:
- return SERVER_ERROR;
- }
-
-}
-#pragma optimize("",on)
-
-BOOL WINAPI GetServerVariable (HCONN hConn, LPSTR lpszVariableName,
- LPVOID lpvBuffer, LPDWORD lpdwSizeofBuffer) {
- request_rec *r = ((isapi_cid *)hConn)->r;
- const char *result;
- DWORD len;
-
- if (!strcmp(lpszVariableName, "ALL_HTTP")) {
- /* lf delimited, colon split, comma seperated and
- * null terminated list of HTTP_ vars
- */
- char **env = (char**) ap_table_elts(r->subprocess_env)->elts;
- int nelts = 2 * ap_table_elts(r->subprocess_env)->nelts;
- int i;
-
- for (len = 0, i = 0; i < nelts; i += 2)
- if (!strncmp(env[i], "HTTP_", 5))
- len += strlen(env[i]) + strlen(env[i + 1]) + 2;
-
- if (*lpdwSizeofBuffer < len + 1) {
- *lpdwSizeofBuffer = len + 1;
- SetLastError(ERROR_INSUFFICIENT_BUFFER);
- return FALSE;
- }
-
- for (i = 0; i < nelts; i += 2)
- if (!strncmp(env[i], "HTTP_", 5)) {
- strcpy(lpvBuffer, env[i]);
- ((char*)lpvBuffer) += strlen(env[i]);
- *(((char*)lpvBuffer)++) = ':';
- strcpy(lpvBuffer, env[i + 1]);
- ((char*)lpvBuffer) += strlen(env[i + 1]);
- *(((char*)lpvBuffer)++) = '\n';
- }
- *(((char*)lpvBuffer)++) = '\0';
- *lpdwSizeofBuffer = len;
- return TRUE;
- }
-
- if (!strcmp(lpszVariableName, "ALL_RAW")) {
- /* lf delimited, colon split, comma seperated and
- * null terminated list of the raw request header
- */
- char **raw = (char**) ap_table_elts(r->headers_in)->elts;
- int nelts = 2 * ap_table_elts(r->headers_in)->nelts;
- int i;
-
- for (len = 0, i = 0; i < nelts; i += 2)
- len += strlen(raw[i]) + strlen(raw[i + 1]) + 2;
-
- if (*lpdwSizeofBuffer < len + 1) {
- *lpdwSizeofBuffer = len + 1;
- SetLastError(ERROR_INSUFFICIENT_BUFFER);
- return FALSE;
- }
-
- for (i = 0; i < nelts; i += 2) {
- strcpy(lpvBuffer, raw[i]);
- ((char*)lpvBuffer) += strlen(raw[i]);
- *(((char*)lpvBuffer)++) = ':';
- *(((char*)lpvBuffer)++) = ' ';
- strcpy(lpvBuffer, raw[i + 1]);
- ((char*)lpvBuffer) += strlen(raw[i + 1]);
- *(((char*)lpvBuffer)++) = '\n';
- i += 2;
- }
- *(((char*)lpvBuffer)++) = '\0';
- *lpdwSizeofBuffer = len;
- return TRUE;
- }
-
- /* Not a special case */
- result = ap_table_get(r->subprocess_env, lpszVariableName);
- if (result) {
- len = strlen(result);
- if (*lpdwSizeofBuffer < len + 1) {
- *lpdwSizeofBuffer = len + 1;
- SetLastError(ERROR_INSUFFICIENT_BUFFER);
- return FALSE;
- }
- strcpy(lpvBuffer, result);
- *lpdwSizeofBuffer = len;
- return TRUE;
- }
-
- /* Not Found */
- SetLastError(ERROR_INVALID_INDEX);
- return FALSE;
-}
-
-BOOL WINAPI WriteClient (HCONN ConnID, LPVOID Buffer, LPDWORD lpwdwBytes,
- DWORD dwReserved) {
- request_rec *r = ((isapi_cid *)ConnID)->r;
-
- /* We only support synchronous writing */
- if (dwReserved && dwReserved != HSE_IO_SYNC) {
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI asynchronous I/O not supported: %s",
- r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
-
- if ((*lpwdwBytes = ap_rwrite(Buffer, *lpwdwBytes, r)) <= 0) {
- if (!GetLastError())
- SetLastError(ERROR); /* XXX: Find the right error code */
- return FALSE;
- }
-
- return TRUE;
-}
-
-BOOL WINAPI ReadClient (HCONN ConnID, LPVOID lpvBuffer, LPDWORD lpdwSize) {
- request_rec *r = ((isapi_cid *)ConnID)->r;
- DWORD read = 0;
- int res;
-
- if (r->remaining < (long) *lpdwSize)
- *lpdwSize = r->remaining;
-
- while (read < *lpdwSize &&
- ((res = ap_get_client_block(r, (char*)lpvBuffer + read,
- *lpdwSize - read)) > 0)) {
- if (res < 0) {
- *lpdwSize = 0;
- if (!GetLastError())
- SetLastError(ERROR); /* XXX: Find the right error code */
- return FALSE;
- }
-
- read += res;
- }
-
- *lpdwSize = read;
- return TRUE;
-}
-
-static BOOL SendResponseHeaderEx(isapi_cid *cid, const char *stat,
- const char *head, DWORD statlen,
- DWORD headlen)
-{
- int termarg;
- char *termch;
-
- if (!stat || statlen == 0 || !*stat) {
- stat = "Status: 200 OK";
- }
- else {
- char *newstat;
- newstat = ap_palloc(cid->r->pool, statlen + 9);
- strcpy(newstat, "Status: ");
- ap_cpystrn(newstat + 8, stat, statlen + 1);
- stat = newstat;
- }
-
- if (!head || headlen == 0 || !*head) {
- head = "\r\n";
- }
- else
- {
- if (head[headlen]) {
- /* Whoops... not NULL terminated */
- head = ap_pstrndup(cid->r->pool, head, headlen);
- }
- }
-
- /* Parse them out, or die trying */
- cid->status = ap_scan_script_header_err_strs(cid->r, NULL, &termch,
- &termarg, stat, head, NULL);
- cid->ecb->dwHttpStatusCode = cid->r->status;
-
- /* All the headers should be set now */
- ap_send_http_header(cid->r);
-
- /* Any data left should now be sent directly,
- * it may be raw if headlen was provided.
- */
- if (termch && (termarg == 1)) {
- if (headlen == -1 && *termch)
- ap_rputs(termch, cid->r);
- else if (headlen > (size_t) (termch - head))
- ap_rwrite(termch, headlen - (termch - head), cid->r);
- }
-
- if (cid->status == HTTP_INTERNAL_SERVER_ERROR)
- return FALSE;
- return TRUE;
-}
-
-/* XXX: Is there is still an O(n^2) attack possible here? Please detail. */
-BOOL WINAPI ServerSupportFunction (HCONN hConn, DWORD dwHSERequest,
- LPVOID lpvBuffer, LPDWORD lpdwSize,
- LPDWORD lpdwDataType) {
- isapi_cid *cid = (isapi_cid *)hConn;
- request_rec *r = cid->r;
- request_rec *subreq;
-
- switch (dwHSERequest) {
- case 1: /* HSE_REQ_SEND_URL_REDIRECT_RESP */
- /* Set the status to be returned when the HttpExtensionProc()
- * is done.
- * WARNING: Microsoft now advertises HSE_REQ_SEND_URL_REDIRECT_RESP
- * and HSE_REQ_SEND_URL as equivalant per the Jan 2000 SDK.
- * They most definately are not, even in their own samples.
- */
- ap_table_set(r->headers_out, "Location", lpvBuffer);
- cid->status = cid->r->status
- = cid->ecb->dwHttpStatusCode = HTTP_MOVED_TEMPORARILY;
- return TRUE;
-
- case 2: /* HSE_REQ_SEND_URL */
- /* Soak up remaining input (there should be none) */
- if (r->remaining > 0) {
- char argsbuffer[HUGE_STRING_LEN];
- while (ap_get_client_block(r, argsbuffer, HUGE_STRING_LEN) > 0);
- }
-
- /* Reset the method to GET */
- r->method = ap_pstrdup(r->pool, "GET");
- r->method_number = M_GET;
-
- /* Don't let anyone think there's still data */
- ap_table_unset(r->headers_in, "Content-Length");
-
- /* AV fault per PR3598 - redirected path is lost! */
- (char*)lpvBuffer = ap_pstrdup(r->pool, (char*)lpvBuffer);
- ap_internal_redirect((char*)lpvBuffer, r);
- return TRUE;
-
- case 3: /* HSE_REQ_SEND_RESPONSE_HEADER */
- {
- /* Parse them out, or die trying */
- DWORD statlen = 0, headlen = 0;
- if (lpvBuffer)
- statlen = strlen((char*) lpvBuffer);
- if (lpdwDataType)
- headlen = strlen((char*) lpdwDataType);
- return SendResponseHeaderEx(cid, (char*) lpvBuffer, (char*) lpdwDataType,
- statlen, headlen);
- }
-
- case 4: /* HSE_REQ_DONE_WITH_SESSION */
- /* Do nothing... since we don't support async I/O, they'll
- * return from HttpExtensionProc soon
- */
- return TRUE;
-
- case 1001: /* HSE_REQ_MAP_URL_TO_PATH */
- {
- /* Map a URL to a filename */
- char *file = (char *)lpvBuffer;
- DWORD len;
- subreq = ap_sub_req_lookup_uri(ap_pstrndup(r->pool, file, *lpdwSize), r);
-
- len = ap_cpystrn(file, subreq->filename, *lpdwSize) - file;
-
- /* IIS puts a trailing slash on directories, Apache doesn't */
- if (S_ISDIR (subreq->finfo.st_mode)) {
- if (len < *lpdwSize - 1) {
- file[len++] = '\\';
- file[len] = '\0';
- }
- }
- *lpdwSize = len;
- return TRUE;
- }
-
- case 1002: /* HSE_REQ_GET_SSPI_INFO */
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI ServerSupportFunction HSE_REQ_GET_SSPI_INFO "
- "is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
-
- case 1003: /* HSE_APPEND_LOG_PARAMETER */
- /* Log lpvBuffer, of lpdwSize bytes, in the URI Query (cs-uri-query) field
- * This code will do for now...
- */
- ap_table_set(r->notes, "isapi-parameter", (char*) lpvBuffer);
- if (AppendLogToQuery) {
- if (r->args)
- r->args = ap_pstrcat(r->pool, r->args, (char*) lpvBuffer, NULL);
- else
- r->args = ap_pstrdup(r->pool, (char*) lpvBuffer);
- }
- if (AppendLogToErrors)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, r,
- "ISAPI %s: %s", cid->r->filename,
- (char*) lpvBuffer);
- return TRUE;
-
- /* We don't support all this async I/O, Microsoft-specific stuff */
- case 1005: /* HSE_REQ_IO_COMPLETION */
- case 1006: /* HSE_REQ_TRANSMIT_FILE */
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI asynchronous I/O not supported: %s",
- r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
-
- case 1007: /* HSE_REQ_REFRESH_ISAPI_ACL */
- /* Since we don't override the user ID and access, we can't reset.
- */
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI ServerSupportFunction "
- "HSE_REQ_REFRESH_ISAPI_ACL "
- "is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
-
- case 1008: /* HSE_REQ_IS_KEEP_CONN */
- *((LPBOOL) lpvBuffer) = (r->connection->keepalive == 1);
- return TRUE;
-
- case 1010: /* HSE_REQ_ASYNC_READ_CLIENT */
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI asynchronous I/O not supported: %s",
- r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
-
- case 1011: /* HSE_REQ_GET_IMPERSONATION_TOKEN Added in ISAPI 4.0 */
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI ServerSupportFunction "
- "HSE_REQ_GET_IMPERSONATION_TOKEN "
- "is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
-
-#ifdef HSE_REQ_MAP_URL_TO_PATH_EX
- case 1012: /* HSE_REQ_MAP_URL_TO_PATH_EX */
- {
- /* Map a URL to a filename */
- LPHSE_URL_MAPEX_INFO info = (LPHSE_URL_MAPEX_INFO) lpdwDataType;
- char* test_uri = ap_pstrndup(r->pool, (char *)lpvBuffer, *lpdwSize);
-
- subreq = ap_sub_req_lookup_uri(test_uri, r);
- info->cchMatchingURL = strlen(test_uri);
- info->cchMatchingPath = ap_cpystrn(info->lpszPath, subreq->filename,
- MAX_PATH) - info->lpszPath;
-
- /* Mapping started with assuming both strings matched.
- * Now roll on the path_info as a mismatch and handle
- * terminating slashes for directory matches.
- */
- if (subreq->path_info && *subreq->path_info) {
- ap_cpystrn(info->lpszPath + info->cchMatchingPath,
- subreq->path_info, MAX_PATH - info->cchMatchingPath);
- info->cchMatchingURL -= strlen(subreq->path_info);
- if (S_ISDIR(subreq->finfo.st_mode)
- && info->cchMatchingPath < MAX_PATH - 1) {
- /* roll forward over path_info's first slash */
- ++info->cchMatchingPath;
- ++info->cchMatchingURL;
- }
- }
- else if (S_ISDIR(subreq->finfo.st_mode)
- && info->cchMatchingPath < MAX_PATH - 1) {
- /* Add a trailing slash for directory */
- info->lpszPath[info->cchMatchingPath++] = '/';
- info->lpszPath[info->cchMatchingPath] = '\0';
- }
-
- /* If the matched isn't a file, roll match back to the prior slash */
- if (!subreq->finfo.st_mode) {
- while (info->cchMatchingPath && info->cchMatchingURL) {
- if (info->lpszPath[info->cchMatchingPath - 1] == '/')
- break;
- --info->cchMatchingPath;
- --info->cchMatchingURL;
- }
- }
-
- /* Paths returned with back slashes */
- for (test_uri = info->lpszPath; *test_uri; ++test_uri)
- if (*test_uri == '/')
- *test_uri = '\\';
-
- /* is a combination of:
- * HSE_URL_FLAGS_READ 0x001 Allow read
- * HSE_URL_FLAGS_WRITE 0x002 Allow write
- * HSE_URL_FLAGS_EXECUTE 0x004 Allow execute
- * HSE_URL_FLAGS_SSL 0x008 Require SSL
- * HSE_URL_FLAGS_DONT_CACHE 0x010 Don't cache (VRoot only)
- * HSE_URL_FLAGS_NEGO_CERT 0x020 Allow client SSL cert
- * HSE_URL_FLAGS_REQUIRE_CERT 0x040 Require client SSL cert
- * HSE_URL_FLAGS_MAP_CERT 0x080 Map client SSL cert to account
- * HSE_URL_FLAGS_SSL128 0x100 Require 128-bit SSL cert
- * HSE_URL_FLAGS_SCRIPT 0x200 Allow script execution
- *
- * XxX: As everywhere, EXEC flags could use some work...
- * and this could go further with more flags, as desired.
- */
- info->dwFlags = (subreq->finfo.st_mode & _S_IREAD ? 0x001 : 0)
- | (subreq->finfo.st_mode & _S_IWRITE ? 0x002 : 0)
- | (subreq->finfo.st_mode & _S_IEXEC ? 0x204 : 0);
- return TRUE;
- }
-#endif
-
- case 1014: /* HSE_REQ_ABORTIVE_CLOSE */
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI ServerSupportFunction HSE_REQ_ABORTIVE_CLOSE"
- " is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
-
- case 1015: /* HSE_REQ_GET_CERT_INFO_EX Added in ISAPI 4.0 */
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI ServerSupportFunction "
- "HSE_REQ_GET_CERT_INFO_EX "
- "is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
-
-#ifdef HSE_REQ_SEND_RESPONSE_HEADER_EX
- case 1016: /* HSE_REQ_SEND_RESPONSE_HEADER_EX Added in ISAPI 4.0 */
- {
- LPHSE_SEND_HEADER_EX_INFO shi
- = (LPHSE_SEND_HEADER_EX_INFO) lpvBuffer;
- /* XXX: ignore shi->fKeepConn? We shouldn't need the advise */
- /* r->connection->keepalive = shi->fKeepConn; */
- return SendResponseHeaderEx(cid, shi->pszStatus, shi->pszHeader,
- shi->cchStatus, shi->cchHeader);
- }
-#endif
-
- case 1017: /* HSE_REQ_CLOSE_CONNECTION Added after ISAPI 4.0 */
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI ServerSupportFunction "
- "HSE_REQ_CLOSE_CONNECTION "
- "is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
-
- case 1018: /* HSE_REQ_IS_CONNECTED Added after ISAPI 4.0 */
- /* Returns True if client is connected c.f. MSKB Q188346
- * XXX: That statement is very ambigious... assuming the
- * identical return mechanism as HSE_REQ_IS_KEEP_CONN.
- */
- *((LPBOOL) lpvBuffer) = (r->connection->aborted == 0);
- return TRUE;
-
- case 1020: /* HSE_REQ_EXTENSION_TRIGGER Added after ISAPI 4.0 */
- /* Undocumented - defined by the Microsoft Jan '00 Platform SDK
- */
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI ServerSupportFunction "
- "HSE_REQ_EXTENSION_TRIGGER "
- "is not supported: %s", r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
-
-
- default:
- if (LogNotSupported)
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_WARNING, r,
- "ISAPI ServerSupportFunction (%d) not supported: "
- "%s", dwHSERequest, r->filename);
- SetLastError(ERROR_INVALID_PARAMETER);
- return FALSE;
- }
-}
-
-/*
- * Command handler for the ISAPIReadAheadBuffer directive, which is TAKE1
- */
-static const char *isapi_cmd_readaheadbuffer(cmd_parms *cmd, void *config,
- char *arg)
-{
- long val;
- const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
- if (err != NULL) {
- return err;
- }
-
- if (((val = ap_strtol(arg, (char **) &err, 10)) <= 0) || *err)
- return "ISAPIReadAheadBuffer must be a legitimate value.";
-
- ReadAheadBuffer = val;
- return NULL;
-}
-
-/*
- * Command handler for the ISAPIReadAheadBuffer directive, which is TAKE1
- */
-static const char *isapi_cmd_lognotsupported(cmd_parms *cmd, void *config,
- char *arg)
-{
- const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
- if (err != NULL) {
- return err;
- }
-
- if (strcasecmp(arg, "on") == 0) {
- LogNotSupported = -1;
- }
- else if (strcasecmp(arg, "off") == 0) {
- LogNotSupported = 0;
- }
- else {
- return "ISAPILogNotSupported must be on or off";
- }
- return NULL;
-}
-
-static const char *isapi_cmd_appendlogtoerrors(cmd_parms *cmd, void *config,
- char *arg)
-{
- const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
- if (err != NULL) {
- return err;
- }
-
- if (strcasecmp(arg, "on") == 0) {
- AppendLogToErrors = -1;
- }
- else if (strcasecmp(arg, "off") == 0) {
- AppendLogToErrors = 0;
- }
- else {
- return "ISAPIAppendLogToErrors must be on or off";
- }
- return NULL;
-}
-
-static const char *isapi_cmd_appendlogtoquery(cmd_parms *cmd, void *config,
- char *arg)
-{
- const char *err = ap_check_cmd_context(cmd, GLOBAL_ONLY);
- if (err != NULL) {
- return err;
- }
-
- if (strcasecmp(arg, "on") == 0) {
- AppendLogToQuery = -1;
- }
- else if (strcasecmp(arg, "off") == 0) {
- AppendLogToQuery = 0;
- }
- else {
- return "ISAPIAppendLogToQuery must be on or off";
- }
- return NULL;
-}
-
-static const command_rec isapi_cmds[] = {
-{ "ISAPIReadAheadBuffer", isapi_cmd_readaheadbuffer, NULL, RSRC_CONF, TAKE1,
- "Maximum bytes to initially pass to the ISAPI handler" },
-{ "ISAPILogNotSupported", isapi_cmd_lognotsupported, NULL, RSRC_CONF, TAKE1,
- "Log requests not supported by the ISAPI server" },
-{ "ISAPIAppendLogToErrors", isapi_cmd_appendlogtoerrors, NULL, RSRC_CONF, TAKE1,
- "Send all Append Log requests to the error log" },
-{ "ISAPIAppendLogToQuery", isapi_cmd_appendlogtoquery, NULL, RSRC_CONF, TAKE1,
- "Append Log requests are concatinated to the query args" },
-{ NULL }
-};
-
-handler_rec isapi_handlers[] = {
-{ "isapi-isa", isapi_handler },
-{ NULL}
-};
-
-module isapi_module = {
- STANDARD_MODULE_STUFF,
- NULL, /* initializer */
- NULL, /* create per-dir config */
- NULL, /* merge per-dir config */
- NULL, /* server config */
- NULL, /* merge server config */
- isapi_cmds, /* command table */
- isapi_handlers, /* handlers */
- NULL, /* filename translation */
- NULL, /* check_user_id */
- NULL, /* check auth */
- NULL, /* check access */
- NULL, /* type_checker */
- NULL, /* logger */
- NULL /* header parser */
-};
-
-#endif /* WIN32 */
diff --git a/usr.sbin/httpd/src/os/win32/mod_mime_magic.dsp b/usr.sbin/httpd/src/os/win32/mod_mime_magic.dsp
deleted file mode 100644
index 3df8cc851b5..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_mime_magic.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_mime_magic" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_mime_magic - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_mime_magic.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_mime_magic.mak" CFG="mod_mime_magic - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_mime_magic - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_mime_magic - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_mime_magic - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_mime_magic_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_mime_magic.so" /base:@"BaseAddr.ref",mod_mime_magic /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_mime_magic.so" /base:@"BaseAddr.ref",mod_mime_magic /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_mime_magic - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_mime_magic_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_mime_magic.so" /base:@"BaseAddr.ref",mod_mime_magic
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_mime_magic.so" /base:@"BaseAddr.ref",mod_mime_magic
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_mime_magic - Win32 Release"
-# Name "mod_mime_magic - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_mime_magic.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_mime_magic.mak b/usr.sbin/httpd/src/os/win32/mod_mime_magic.mak
deleted file mode 100644
index 99438a9916f..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_mime_magic.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_mime_magic.dsp
-!IF "$(CFG)" == ""
-CFG=mod_mime_magic - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_mime_magic - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_mime_magic - Win32 Release" && "$(CFG)" != "mod_mime_magic - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_mime_magic.mak" CFG="mod_mime_magic - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_mime_magic - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_mime_magic - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_mime_magic - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_mime_magic.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_mime_magic.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_mime_magic.obj"
- -@erase "$(INTDIR)\mod_mime_magic_src.idb"
- -@erase "$(INTDIR)\mod_mime_magic_src.pdb"
- -@erase "$(OUTDIR)\mod_mime_magic.exp"
- -@erase "$(OUTDIR)\mod_mime_magic.lib"
- -@erase "$(OUTDIR)\mod_mime_magic.pdb"
- -@erase "$(OUTDIR)\mod_mime_magic.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_mime_magic_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_mime_magic.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_mime_magic.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_mime_magic.so" /implib:"$(OUTDIR)\mod_mime_magic.lib" /base:@"BaseAddr.ref",mod_mime_magic /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_mime_magic.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_mime_magic.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_mime_magic - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_mime_magic.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_mime_magic.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_mime_magic.obj"
- -@erase "$(INTDIR)\mod_mime_magic_src.idb"
- -@erase "$(INTDIR)\mod_mime_magic_src.pdb"
- -@erase "$(OUTDIR)\mod_mime_magic.exp"
- -@erase "$(OUTDIR)\mod_mime_magic.lib"
- -@erase "$(OUTDIR)\mod_mime_magic.pdb"
- -@erase "$(OUTDIR)\mod_mime_magic.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_mime_magic_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_mime_magic.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_mime_magic.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_mime_magic.so" /implib:"$(OUTDIR)\mod_mime_magic.lib" /base:@"BaseAddr.ref",mod_mime_magic
-LINK32_OBJS= \
- "$(INTDIR)\mod_mime_magic.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_mime_magic.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_mime_magic.dep")
-!INCLUDE "mod_mime_magic.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_mime_magic.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_mime_magic - Win32 Release" || "$(CFG)" == "mod_mime_magic - Win32 Debug"
-
-!IF "$(CFG)" == "mod_mime_magic - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_mime_magic - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_mime_magic.c
-
-"$(INTDIR)\mod_mime_magic.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_proxy.dsp b/usr.sbin/httpd/src/os/win32/mod_proxy.dsp
deleted file mode 100644
index e0bc0926592..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_proxy.dsp
+++ /dev/null
@@ -1,127 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_proxy" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_proxy - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_proxy.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_proxy.mak" CFG="mod_proxy - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_proxy - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_proxy - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_proxy - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /I "..\..\modules\proxy" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN" /Fd"Release\mod_proxy_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_proxy.so" /base:@"BaseAddr.ref",mod_proxy /opt:ref
-# ADD LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_proxy.so" /base:@"BaseAddr.ref",mod_proxy /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_proxy - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir ".\ApacheM0"
-# PROP BASE Intermediate_Dir ".\ApacheM0"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /I "..\..\modules\proxy" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN" /Fd"Debug\mod_proxy_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_proxy.so" /base:@"BaseAddr.ref",mod_proxy
-# ADD LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_proxy.so" /base:@"BaseAddr.ref",mod_proxy
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_proxy - Win32 Release"
-# Name "mod_proxy - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
-# Begin Source File
-
-SOURCE=..\..\modules\proxy\mod_proxy.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\modules\proxy\proxy_cache.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\modules\proxy\proxy_connect.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\modules\proxy\proxy_ftp.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\modules\proxy\proxy_http.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\modules\proxy\proxy_util.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
-# Begin Source File
-
-SOURCE=..\..\modules\proxy\mod_proxy.h
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_proxy.mak b/usr.sbin/httpd/src/os/win32/mod_proxy.mak
deleted file mode 100644
index 6c120dd6183..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_proxy.mak
+++ /dev/null
@@ -1,295 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_proxy.dsp
-!IF "$(CFG)" == ""
-CFG=mod_proxy - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_proxy - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_proxy - Win32 Release" && "$(CFG)" != "mod_proxy - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_proxy.mak" CFG="mod_proxy - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_proxy - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_proxy - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_proxy - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_proxy.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_proxy.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_proxy.obj"
- -@erase "$(INTDIR)\mod_proxy_src.idb"
- -@erase "$(INTDIR)\mod_proxy_src.pdb"
- -@erase "$(INTDIR)\proxy_cache.obj"
- -@erase "$(INTDIR)\proxy_connect.obj"
- -@erase "$(INTDIR)\proxy_ftp.obj"
- -@erase "$(INTDIR)\proxy_http.obj"
- -@erase "$(INTDIR)\proxy_util.obj"
- -@erase "$(OUTDIR)\mod_proxy.exp"
- -@erase "$(OUTDIR)\mod_proxy.lib"
- -@erase "$(OUTDIR)\mod_proxy.pdb"
- -@erase "$(OUTDIR)\mod_proxy.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /I "..\..\modules\proxy" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_proxy_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_proxy.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_proxy.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_proxy.so" /implib:"$(OUTDIR)\mod_proxy.lib" /base:@"BaseAddr.ref",mod_proxy /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_proxy.obj" \
- "$(INTDIR)\proxy_cache.obj" \
- "$(INTDIR)\proxy_connect.obj" \
- "$(INTDIR)\proxy_ftp.obj" \
- "$(INTDIR)\proxy_http.obj" \
- "$(INTDIR)\proxy_util.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_proxy.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_proxy - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_proxy.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_proxy.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_proxy.obj"
- -@erase "$(INTDIR)\mod_proxy_src.idb"
- -@erase "$(INTDIR)\mod_proxy_src.pdb"
- -@erase "$(INTDIR)\proxy_cache.obj"
- -@erase "$(INTDIR)\proxy_connect.obj"
- -@erase "$(INTDIR)\proxy_ftp.obj"
- -@erase "$(INTDIR)\proxy_http.obj"
- -@erase "$(INTDIR)\proxy_util.obj"
- -@erase "$(OUTDIR)\mod_proxy.exp"
- -@erase "$(OUTDIR)\mod_proxy.lib"
- -@erase "$(OUTDIR)\mod_proxy.pdb"
- -@erase "$(OUTDIR)\mod_proxy.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /I "..\..\modules\proxy" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_proxy_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_proxy.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_proxy.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_proxy.so" /implib:"$(OUTDIR)\mod_proxy.lib" /base:@"BaseAddr.ref",mod_proxy
-LINK32_OBJS= \
- "$(INTDIR)\mod_proxy.obj" \
- "$(INTDIR)\proxy_cache.obj" \
- "$(INTDIR)\proxy_connect.obj" \
- "$(INTDIR)\proxy_ftp.obj" \
- "$(INTDIR)\proxy_http.obj" \
- "$(INTDIR)\proxy_util.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_proxy.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_proxy.dep")
-!INCLUDE "mod_proxy.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_proxy.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_proxy - Win32 Release" || "$(CFG)" == "mod_proxy - Win32 Debug"
-SOURCE=..\..\modules\proxy\mod_proxy.c
-
-"$(INTDIR)\mod_proxy.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\modules\proxy\proxy_cache.c
-
-"$(INTDIR)\proxy_cache.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\modules\proxy\proxy_connect.c
-
-"$(INTDIR)\proxy_connect.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\modules\proxy\proxy_ftp.c
-
-"$(INTDIR)\proxy_ftp.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\modules\proxy\proxy_http.c
-
-"$(INTDIR)\proxy_http.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\..\modules\proxy\proxy_util.c
-
-"$(INTDIR)\proxy_util.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!IF "$(CFG)" == "mod_proxy - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_proxy - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_rewrite.dsp b/usr.sbin/httpd/src/os/win32/mod_rewrite.dsp
deleted file mode 100644
index 73ac1d7aa79..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_rewrite.dsp
+++ /dev/null
@@ -1,99 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_rewrite" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_rewrite - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_rewrite.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_rewrite.mak" CFG="mod_rewrite - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_rewrite - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_rewrite - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_rewrite - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN" /Fd"Release\mod_rewrite_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_rewrite.so" /base:@"BaseAddr.ref",mod_rewrite /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_rewrite.so" /base:@"BaseAddr.ref",mod_rewrite /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_rewrite - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN" /Fd"Debug\mod_rewrite_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_rewrite.so" /base:@"BaseAddr.ref",mod_rewrite
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_rewrite.so" /base:@"BaseAddr.ref",mod_rewrite
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_rewrite - Win32 Release"
-# Name "mod_rewrite - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_rewrite.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\passwd.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_rewrite.mak b/usr.sbin/httpd/src/os/win32/mod_rewrite.mak
deleted file mode 100644
index a3728fef547..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_rewrite.mak
+++ /dev/null
@@ -1,255 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_rewrite.dsp
-!IF "$(CFG)" == ""
-CFG=mod_rewrite - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_rewrite - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_rewrite - Win32 Release" && "$(CFG)" != "mod_rewrite - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_rewrite.mak" CFG="mod_rewrite - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_rewrite - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_rewrite - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_rewrite - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_rewrite.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_rewrite.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_rewrite.obj"
- -@erase "$(INTDIR)\mod_rewrite_src.idb"
- -@erase "$(INTDIR)\mod_rewrite_src.pdb"
- -@erase "$(INTDIR)\passwd.obj"
- -@erase "$(OUTDIR)\mod_rewrite.exp"
- -@erase "$(OUTDIR)\mod_rewrite.lib"
- -@erase "$(OUTDIR)\mod_rewrite.pdb"
- -@erase "$(OUTDIR)\mod_rewrite.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_rewrite_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_rewrite.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_rewrite.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_rewrite.so" /implib:"$(OUTDIR)\mod_rewrite.lib" /base:@"BaseAddr.ref",mod_rewrite /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_rewrite.obj" \
- "$(INTDIR)\passwd.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_rewrite.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_rewrite - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_rewrite.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_rewrite.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_rewrite.obj"
- -@erase "$(INTDIR)\mod_rewrite_src.idb"
- -@erase "$(INTDIR)\mod_rewrite_src.pdb"
- -@erase "$(INTDIR)\passwd.obj"
- -@erase "$(OUTDIR)\mod_rewrite.exp"
- -@erase "$(OUTDIR)\mod_rewrite.lib"
- -@erase "$(OUTDIR)\mod_rewrite.pdb"
- -@erase "$(OUTDIR)\mod_rewrite.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_rewrite_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_rewrite.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_rewrite.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_rewrite.so" /implib:"$(OUTDIR)\mod_rewrite.lib" /base:@"BaseAddr.ref",mod_rewrite
-LINK32_OBJS= \
- "$(INTDIR)\mod_rewrite.obj" \
- "$(INTDIR)\passwd.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_rewrite.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_rewrite.dep")
-!INCLUDE "mod_rewrite.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_rewrite.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_rewrite - Win32 Release" || "$(CFG)" == "mod_rewrite - Win32 Debug"
-
-!IF "$(CFG)" == "mod_rewrite - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_rewrite - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_rewrite.c
-
-"$(INTDIR)\mod_rewrite.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\passwd.c
-
-"$(INTDIR)\passwd.obj" : $(SOURCE) "$(INTDIR)"
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_speling.dsp b/usr.sbin/httpd/src/os/win32/mod_speling.dsp
deleted file mode 100644
index 6ff56ea1d32..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_speling.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_speling" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_speling - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_speling.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_speling.mak" CFG="mod_speling - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_speling - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_speling - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_speling - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_speling_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_speling.so" /base:@"BaseAddr.ref",mod_speling /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_speling.so" /base:@"BaseAddr.ref",mod_speling /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_speling - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_speling_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_speling.so" /base:@"BaseAddr.ref",mod_speling
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_speling.so" /base:@"BaseAddr.ref",mod_speling
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_speling - Win32 Release"
-# Name "mod_speling - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_speling.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_speling.mak b/usr.sbin/httpd/src/os/win32/mod_speling.mak
deleted file mode 100644
index a1b468eb76a..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_speling.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_speling.dsp
-!IF "$(CFG)" == ""
-CFG=mod_speling - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_speling - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_speling - Win32 Release" && "$(CFG)" != "mod_speling - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_speling.mak" CFG="mod_speling - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_speling - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_speling - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_speling - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_speling.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_speling.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_speling.obj"
- -@erase "$(INTDIR)\mod_speling_src.idb"
- -@erase "$(INTDIR)\mod_speling_src.pdb"
- -@erase "$(OUTDIR)\mod_speling.exp"
- -@erase "$(OUTDIR)\mod_speling.lib"
- -@erase "$(OUTDIR)\mod_speling.pdb"
- -@erase "$(OUTDIR)\mod_speling.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_speling_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_speling.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_speling.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_speling.so" /implib:"$(OUTDIR)\mod_speling.lib" /base:@"BaseAddr.ref",mod_speling /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_speling.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_speling.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_speling - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_speling.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_speling.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_speling.obj"
- -@erase "$(INTDIR)\mod_speling_src.idb"
- -@erase "$(INTDIR)\mod_speling_src.pdb"
- -@erase "$(OUTDIR)\mod_speling.exp"
- -@erase "$(OUTDIR)\mod_speling.lib"
- -@erase "$(OUTDIR)\mod_speling.pdb"
- -@erase "$(OUTDIR)\mod_speling.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_speling_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_speling.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_speling.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_speling.so" /implib:"$(OUTDIR)\mod_speling.lib" /base:@"BaseAddr.ref",mod_speling
-LINK32_OBJS= \
- "$(INTDIR)\mod_speling.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_speling.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_speling.dep")
-!INCLUDE "mod_speling.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_speling.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_speling - Win32 Release" || "$(CFG)" == "mod_speling - Win32 Debug"
-
-!IF "$(CFG)" == "mod_speling - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_speling - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_speling.c
-
-"$(INTDIR)\mod_speling.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_status.dsp b/usr.sbin/httpd/src/os/win32/mod_status.dsp
deleted file mode 100644
index ab708c3e216..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_status.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_status" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_status - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_status.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_status.mak" CFG="mod_status - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_status - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_status - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_status - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_status_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_status.so" /base:@"BaseAddr.ref",mod_status /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_status.so" /base:@"BaseAddr.ref",mod_status /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_status - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_status_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_status.so" /base:@"BaseAddr.ref",mod_status
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_status.so" /base:@"BaseAddr.ref",mod_status
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_status - Win32 Release"
-# Name "mod_status - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_status.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_status.mak b/usr.sbin/httpd/src/os/win32/mod_status.mak
deleted file mode 100644
index d08f2ba62fa..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_status.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_status.dsp
-!IF "$(CFG)" == ""
-CFG=mod_status - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_status - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_status - Win32 Release" && "$(CFG)" != "mod_status - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_status.mak" CFG="mod_status - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_status - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_status - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_status - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_status.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_status.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_status.obj"
- -@erase "$(INTDIR)\mod_status_src.idb"
- -@erase "$(INTDIR)\mod_status_src.pdb"
- -@erase "$(OUTDIR)\mod_status.exp"
- -@erase "$(OUTDIR)\mod_status.lib"
- -@erase "$(OUTDIR)\mod_status.pdb"
- -@erase "$(OUTDIR)\mod_status.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_status_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_status.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_status.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_status.so" /implib:"$(OUTDIR)\mod_status.lib" /base:@"BaseAddr.ref",mod_status /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_status.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_status.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_status - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_status.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_status.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_status.obj"
- -@erase "$(INTDIR)\mod_status_src.idb"
- -@erase "$(INTDIR)\mod_status_src.pdb"
- -@erase "$(OUTDIR)\mod_status.exp"
- -@erase "$(OUTDIR)\mod_status.lib"
- -@erase "$(OUTDIR)\mod_status.pdb"
- -@erase "$(OUTDIR)\mod_status.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_status_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_status.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_status.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_status.so" /implib:"$(OUTDIR)\mod_status.lib" /base:@"BaseAddr.ref",mod_status
-LINK32_OBJS= \
- "$(INTDIR)\mod_status.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_status.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_status.dep")
-!INCLUDE "mod_status.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_status.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_status - Win32 Release" || "$(CFG)" == "mod_status - Win32 Debug"
-
-!IF "$(CFG)" == "mod_status - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_status - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_status.c
-
-"$(INTDIR)\mod_status.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_unique_id.dsp b/usr.sbin/httpd/src/os/win32/mod_unique_id.dsp
deleted file mode 100644
index 5b405765687..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_unique_id.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_unique_id" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_unique_id - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_unique_id.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_unique_id.mak" CFG="mod_unique_id - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_unique_id - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_unique_id - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_unique_id - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_unique_id_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_unique_id.so" /base:@"BaseAddr.ref",mod_unique_id /opt:ref
-# ADD LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_unique_id.so" /base:@"BaseAddr.ref",mod_unique_id /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_unique_id - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_unique_id_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_unique_id.so" /base:@"BaseAddr.ref",mod_unique_id
-# ADD LINK32 kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_unique_id.so" /base:@"BaseAddr.ref",mod_unique_id
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_unique_id - Win32 Release"
-# Name "mod_unique_id - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_unique_id.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_unique_id.mak b/usr.sbin/httpd/src/os/win32/mod_unique_id.mak
deleted file mode 100644
index aebfa36f09d..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_unique_id.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_unique_id.dsp
-!IF "$(CFG)" == ""
-CFG=mod_unique_id - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_unique_id - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_unique_id - Win32 Release" && "$(CFG)" != "mod_unique_id - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_unique_id.mak" CFG="mod_unique_id - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_unique_id - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_unique_id - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_unique_id - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_unique_id.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_unique_id.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_unique_id.obj"
- -@erase "$(INTDIR)\mod_unique_id_src.idb"
- -@erase "$(INTDIR)\mod_unique_id_src.pdb"
- -@erase "$(OUTDIR)\mod_unique_id.exp"
- -@erase "$(OUTDIR)\mod_unique_id.lib"
- -@erase "$(OUTDIR)\mod_unique_id.pdb"
- -@erase "$(OUTDIR)\mod_unique_id.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_unique_id_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_unique_id.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_unique_id.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_unique_id.so" /implib:"$(OUTDIR)\mod_unique_id.lib" /base:@"BaseAddr.ref",mod_unique_id /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_unique_id.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_unique_id.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_unique_id - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_unique_id.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_unique_id.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_unique_id.obj"
- -@erase "$(INTDIR)\mod_unique_id_src.idb"
- -@erase "$(INTDIR)\mod_unique_id_src.pdb"
- -@erase "$(OUTDIR)\mod_unique_id.exp"
- -@erase "$(OUTDIR)\mod_unique_id.lib"
- -@erase "$(OUTDIR)\mod_unique_id.pdb"
- -@erase "$(OUTDIR)\mod_unique_id.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_unique_id_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_unique_id.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib ws2_32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_unique_id.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_unique_id.so" /implib:"$(OUTDIR)\mod_unique_id.lib" /base:@"BaseAddr.ref",mod_unique_id
-LINK32_OBJS= \
- "$(INTDIR)\mod_unique_id.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_unique_id.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_unique_id.dep")
-!INCLUDE "mod_unique_id.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_unique_id.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_unique_id - Win32 Release" || "$(CFG)" == "mod_unique_id - Win32 Debug"
-
-!IF "$(CFG)" == "mod_unique_id - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_unique_id - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_unique_id.c
-
-"$(INTDIR)\mod_unique_id.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_usertrack.dsp b/usr.sbin/httpd/src/os/win32/mod_usertrack.dsp
deleted file mode 100644
index ee236c980ca..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_usertrack.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_usertrack" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_usertrack - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_usertrack.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_usertrack.mak" CFG="mod_usertrack - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_usertrack - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_usertrack - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_usertrack - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_usertrack_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib wsock32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_usertrack.so" /base:@"BaseAddr.ref",mod_usertrack /opt:ref
-# ADD LINK32 kernel32.lib wsock32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_usertrack.so" /base:@"BaseAddr.ref",mod_usertrack /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_usertrack - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_usertrack_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib wsock32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_usertrack.so" /base:@"BaseAddr.ref",mod_usertrack
-# ADD LINK32 kernel32.lib wsock32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_usertrack.so" /base:@"BaseAddr.ref",mod_usertrack
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_usertrack - Win32 Release"
-# Name "mod_usertrack - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_usertrack.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_usertrack.mak b/usr.sbin/httpd/src/os/win32/mod_usertrack.mak
deleted file mode 100644
index 9479f6aca05..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_usertrack.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_usertrack.dsp
-!IF "$(CFG)" == ""
-CFG=mod_usertrack - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_usertrack - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_usertrack - Win32 Release" && "$(CFG)" != "mod_usertrack - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_usertrack.mak" CFG="mod_usertrack - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_usertrack - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_usertrack - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_usertrack - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_usertrack.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_usertrack.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_usertrack.obj"
- -@erase "$(INTDIR)\mod_usertrack_src.idb"
- -@erase "$(INTDIR)\mod_usertrack_src.pdb"
- -@erase "$(OUTDIR)\mod_usertrack.exp"
- -@erase "$(OUTDIR)\mod_usertrack.lib"
- -@erase "$(OUTDIR)\mod_usertrack.pdb"
- -@erase "$(OUTDIR)\mod_usertrack.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_usertrack_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_usertrack.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib wsock32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_usertrack.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_usertrack.so" /implib:"$(OUTDIR)\mod_usertrack.lib" /base:@"BaseAddr.ref",mod_usertrack /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_usertrack.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_usertrack.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_usertrack - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_usertrack.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_usertrack.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_usertrack.obj"
- -@erase "$(INTDIR)\mod_usertrack_src.idb"
- -@erase "$(INTDIR)\mod_usertrack_src.pdb"
- -@erase "$(OUTDIR)\mod_usertrack.exp"
- -@erase "$(OUTDIR)\mod_usertrack.lib"
- -@erase "$(OUTDIR)\mod_usertrack.pdb"
- -@erase "$(OUTDIR)\mod_usertrack.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_usertrack_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_usertrack.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib wsock32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_usertrack.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_usertrack.so" /implib:"$(OUTDIR)\mod_usertrack.lib" /base:@"BaseAddr.ref",mod_usertrack
-LINK32_OBJS= \
- "$(INTDIR)\mod_usertrack.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_usertrack.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_usertrack.dep")
-!INCLUDE "mod_usertrack.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_usertrack.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_usertrack - Win32 Release" || "$(CFG)" == "mod_usertrack - Win32 Debug"
-
-!IF "$(CFG)" == "mod_usertrack - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_usertrack - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_usertrack.c
-
-"$(INTDIR)\mod_usertrack.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/mod_vhost_alias.dsp b/usr.sbin/httpd/src/os/win32/mod_vhost_alias.dsp
deleted file mode 100644
index 671928a1304..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_vhost_alias.dsp
+++ /dev/null
@@ -1,95 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_vhost_alias" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_vhost_alias - Win32 Release
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "mod_vhost_alias.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_vhost_alias.mak" CFG="mod_vhost_alias - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_vhost_alias - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_vhost_alias - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "mod_vhost_alias - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Zi /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Release\mod_vhost_alias_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "NDEBUG"
-# ADD RSC /l 0x809 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_vhost_alias.so" /base:@"BaseAddr.ref",mod_vhost_alias /opt:ref
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Release/mod_vhost_alias.so" /base:@"BaseAddr.ref",mod_vhost_alias /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_vhost_alias - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fd"Debug\mod_vhost_alias_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x809 /d "_DEBUG"
-# ADD RSC /l 0x809 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_vhost_alias.so" /base:@"BaseAddr.ref",mod_vhost_alias
-# ADD LINK32 kernel32.lib /nologo /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_vhost_alias.so" /base:@"BaseAddr.ref",mod_vhost_alias
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_vhost_alias - Win32 Release"
-# Name "mod_vhost_alias - Win32 Debug"
-# Begin Source File
-
-SOURCE=..\..\modules\standard\mod_vhost_alias.c
-# End Source File
-# End Target
-# End Project
diff --git a/usr.sbin/httpd/src/os/win32/mod_vhost_alias.mak b/usr.sbin/httpd/src/os/win32/mod_vhost_alias.mak
deleted file mode 100644
index c6b47f55d7e..00000000000
--- a/usr.sbin/httpd/src/os/win32/mod_vhost_alias.mak
+++ /dev/null
@@ -1,246 +0,0 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_vhost_alias.dsp
-!IF "$(CFG)" == ""
-CFG=mod_vhost_alias - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_vhost_alias - Win32 Release.
-!ENDIF
-
-!IF "$(CFG)" != "mod_vhost_alias - Win32 Release" && "$(CFG)" != "mod_vhost_alias - Win32 Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "mod_vhost_alias.mak" CFG="mod_vhost_alias - Win32 Release"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_vhost_alias - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_vhost_alias - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IF "$(CFG)" == "mod_vhost_alias - Win32 Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_vhost_alias.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Release" "$(OUTDIR)\mod_vhost_alias.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_vhost_alias.obj"
- -@erase "$(INTDIR)\mod_vhost_alias_src.idb"
- -@erase "$(INTDIR)\mod_vhost_alias_src.pdb"
- -@erase "$(OUTDIR)\mod_vhost_alias.exp"
- -@erase "$(OUTDIR)\mod_vhost_alias.lib"
- -@erase "$(OUTDIR)\mod_vhost_alias.pdb"
- -@erase "$(OUTDIR)\mod_vhost_alias.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\..\include" /I "..\..\os\win32" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_vhost_alias_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_vhost_alias.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_vhost_alias.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_vhost_alias.so" /implib:"$(OUTDIR)\mod_vhost_alias.lib" /base:@"BaseAddr.ref",mod_vhost_alias /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\mod_vhost_alias.obj" \
- "..\..\Release\ApacheCore.lib"
-
-"$(OUTDIR)\mod_vhost_alias.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ELSEIF "$(CFG)" == "mod_vhost_alias - Win32 Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "$(OUTDIR)\mod_vhost_alias.so"
-
-!ELSE
-
-ALL : "ApacheCore - Win32 Debug" "$(OUTDIR)\mod_vhost_alias.so"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"ApacheCore - Win32 DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\mod_vhost_alias.obj"
- -@erase "$(INTDIR)\mod_vhost_alias_src.idb"
- -@erase "$(INTDIR)\mod_vhost_alias_src.pdb"
- -@erase "$(OUTDIR)\mod_vhost_alias.exp"
- -@erase "$(OUTDIR)\mod_vhost_alias.lib"
- -@erase "$(OUTDIR)\mod_vhost_alias.pdb"
- -@erase "$(OUTDIR)\mod_vhost_alias.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP=cl.exe
-CPP_PROJ=/nologo /MDd /W3 /GX /Zi /Od /I "..\..\include" /I "..\..\os\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_vhost_alias_src" /FD /c
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_vhost_alias.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=kernel32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_vhost_alias.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_vhost_alias.so" /implib:"$(OUTDIR)\mod_vhost_alias.lib" /base:@"BaseAddr.ref",mod_vhost_alias
-LINK32_OBJS= \
- "$(INTDIR)\mod_vhost_alias.obj" \
- "..\..\Debug\ApacheCore.lib"
-
-"$(OUTDIR)\mod_vhost_alias.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-!ENDIF
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_vhost_alias.dep")
-!INCLUDE "mod_vhost_alias.dep"
-!ELSE
-!MESSAGE Warning: cannot find "mod_vhost_alias.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "mod_vhost_alias - Win32 Release" || "$(CFG)" == "mod_vhost_alias - Win32 Debug"
-
-!IF "$(CFG)" == "mod_vhost_alias - Win32 Release"
-
-"ApacheCore - Win32 Release" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release"
- cd ".\os\win32"
-
-"ApacheCore - Win32 ReleaseCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Release" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ELSEIF "$(CFG)" == "mod_vhost_alias - Win32 Debug"
-
-"ApacheCore - Win32 Debug" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug"
- cd ".\os\win32"
-
-"ApacheCore - Win32 DebugCLEAN" :
- cd "..\../..\src"
- $(MAKE) /$(MAKEFLAGS) /F ".\ApacheCore.mak" CFG="ApacheCore - Win32 Debug" RECURSE=1 CLEAN
- cd ".\os\win32"
-
-!ENDIF
-
-SOURCE=..\..\modules\standard\mod_vhost_alias.c
-
-"$(INTDIR)\mod_vhost_alias.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-
-!ENDIF
-
diff --git a/usr.sbin/httpd/src/os/win32/modules.c b/usr.sbin/httpd/src/os/win32/modules.c
deleted file mode 100644
index b30c4b481f2..00000000000
--- a/usr.sbin/httpd/src/os/win32/modules.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-/* modules.c --- major modules compiled into Apache for Win32.
- * Only insert an entry for a module if it must be compiled into
- * the core server
- */
-
-#ifdef WIN32
-
-#include "httpd.h"
-#include "http_config.h"
-
-extern module core_module;
-extern module so_module;
-extern module mime_module;
-extern module access_module;
-extern module auth_module;
-extern module negotiation_module;
-extern module includes_module;
-extern module autoindex_module;
-extern module dir_module;
-extern module cgi_module;
-extern module userdir_module;
-extern module alias_module;
-extern module env_module;
-extern module config_log_module;
-extern module asis_module;
-extern module imap_module;
-extern module action_module;
-extern module setenvif_module;
-extern module isapi_module;
-
-module *ap_prelinked_modules[] = {
- &core_module,
- &so_module,
- &mime_module,
- &access_module,
- &auth_module,
- &negotiation_module,
- &includes_module,
- &autoindex_module,
- &dir_module,
- &cgi_module,
- &userdir_module,
- &alias_module,
- &env_module,
- &config_log_module,
- &asis_module,
- &imap_module,
- &action_module,
- &setenvif_module,
- &isapi_module,
- NULL
-};
-module *ap_preloaded_modules[] = {
- &core_module,
- &so_module,
- &mime_module,
- &access_module,
- &auth_module,
- &negotiation_module,
- &includes_module,
- &autoindex_module,
- &dir_module,
- &cgi_module,
- &userdir_module,
- &alias_module,
- &env_module,
- &config_log_module,
- &asis_module,
- &imap_module,
- &action_module,
- &setenvif_module,
- &isapi_module,
- NULL
-};
-
-#endif /* WIN32 */
diff --git a/usr.sbin/httpd/src/os/win32/monitoring-services.txt b/usr.sbin/httpd/src/os/win32/monitoring-services.txt
deleted file mode 100644
index 24665890257..00000000000
--- a/usr.sbin/httpd/src/os/win32/monitoring-services.txt
+++ /dev/null
@@ -1,94 +0,0 @@
-From: William A. Rowe, Jr.
-Date: June 7th '00
-Subject: service monitoring in Apache 1.3.13
-
-The concept for a taskbar monitor has been thrown around
-for a very long while. 1.3.13 introduced Win9x services,
-and that added fuel to the mix. Here are some sideband
-observations I've made for other developers...
-
-About Apache as a console, don't start Apache hidden without
-any command line arguments if you want to launch it yourself
-in a hidden window (it will do the classic test for
-AllocConsole/FreeConsole)... drop in some arguments such as
-the -f or -r option and it will fly without thinking it is a
-service under 9x and NT.
-
-Rule two, don't use --ntservice as an argument, ever. Only
-the Windows NT Service Control Manager is allowed to pass that
-flag, and only that flag, when it runs Apache.exe. Do use
---ntservice as the sole argument to the executable name if
-you are installing an Apache NT service yourself.
-
-Rule three, use -k start and -n name when maintaining the
-HKLM/Software/Microsoft/Windows/CurrentVersion/RunServices
-list, since there is no other way for Apache to know what
-the service is named :) And look at any 9x installed service's
-RunServices entry in the registry for the start service semantic.
-
-Rule four, use the WinNT Service Control Manager exclusively
-for starting, stopping and restarting Apache as an NT service.
-The restart signal is the value 128, as documented in service.h
-and service.c - this will continue to work in Apache 2.0. If
-it fails, you are handling an older version (pre 1.3.13) of
-Apache, and need to stop and then start the service instead.
-
-Rule five, use the legacy pid-named events to signal Win9x
-service Apache to restart and stop the service. But don't
-bother looking for httpd.pid files... you can get the pid
-right from the hidden service control window. Apache 1.3.13
-and 2.x create a hidden window named for the name of the
-service (without the spaces), with a window class of
-"ApacheWin95ServiceMonitor", so can use FindWindow to track
-down running Win9x services. See the service.c code for how
-I accomplished this pretty simply in the -k stop/-k restart
-handler.
-
-Taskbar Monitor App
--------------------
-
-Basic requirements: a C code application using strictly the
-Win32 API, and not MFC or other Win32 frameworks. Could use
-the service.c module to share some basic functions. That
-module could be extended in Apache 2.0 to make this all easier.
-
-I think we are looking for an external app that simply acts
-as a monitor or allows a stopped service to be started. If
-the user logs off, we loose the monitor app, but installed as
-a shortcut in the Start group or in the registry key
-HKLM/Software/Microsoft/Windows/CurrentVersion/Run
-we will be just fine. I'd like to see the monitor run only
-one instance to monitor all running services, for memory
-and resource conservation.
-
-I was thinking that the hover/iconbar title would tell them
-"Test service is running", or "Test service is stopped".
-If they left click, they could stop or restart, or simply
-start if it is stopped. There could be a preference that
-each service doesn't get it's own individual task icon unless
-it is running, if it is a manual start service (or missing
-from the RunServices list, which is the equivilant under 9x).
-
-If a specific service is set to Auto start or is in the
-RunServices Win9x registry key, we must show them the stopped
-icon, of course. We might also keep the icon for any running
-service that stops abruptly. But there could be a 'single
-icon' option for the taskbar icon monitor that says show only
-a single status icon, for simplicity if the administrator runs
-many Apache services.
-
-But I was hoping that any right click would provide a menu
-of all Apache services with their status. e.g.
- Test service is stopped
- Apache_2 service is running
- MyWeb service is running
-and each would do the logical submenu, same as if that
-specific taskbar icon were left clicked, offering to start or
-offering to stop or restart the server, as appropriate.
-
-Finally, to identify all installed Apache services, just query
-the registry key HKLM\SYSTEM\CurrentControlSet\Services for any
-key that has the ImagePath value of "...\Apache.exe"... (quotes
-are significant here, if the leading quote is ommitted the
-entire string ends with the text \Apache.exe - based on Apache's
-own service installer in every released version.)
diff --git a/usr.sbin/httpd/src/os/win32/multithread.c b/usr.sbin/httpd/src/os/win32/multithread.c
deleted file mode 100644
index 4b9c58df77e..00000000000
--- a/usr.sbin/httpd/src/os/win32/multithread.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifdef WIN32
-
-#include "ap_config.h"
-#include "multithread.h"
-
-#include <process.h>
-#include <assert.h>
-
-static int
-map_rv(int rv)
-{
- switch(rv)
- {
- case WAIT_OBJECT_0:
- case WAIT_ABANDONED:
- return(MULTI_OK);
- case WAIT_TIMEOUT:
- return(MULTI_TIMEOUT);
- case WAIT_FAILED:
- return(MULTI_ERR);
- default:
- assert(0);
- }
-
- assert(0);
- return(0);
-}
-
-
-thread *
-create_thread(void (thread_fn)(void *), void *thread_arg)
-{
- int id;
- int rv;
-
- rv = _beginthreadex(NULL, 0, (LPTHREAD_START_ROUTINE)thread_fn,
- thread_arg, 0, &id);
-
- return((thread *)rv);
-}
-
-
-int
-kill_thread(thread *thread_id)
-{
- return(TerminateThread(thread_id, 1));
-}
-
-
-int
-await_thread(thread *thread_id, int sec_to_wait)
-{
- int rv;
-
- rv = WaitForSingleObject(thread_id, sec_to_wait*1000);
-
- return(map_rv(rv));
-}
-
-void
-exit_thread(int status)
-{
- _endthreadex(status);
-}
-
-void
-free_thread(thread *thread_id)
-{
- CloseHandle(thread_id);
-}
-
-
-
-API_EXPORT(mutex *) ap_create_mutex(char *name)
-{
- return(CreateMutex(NULL, FALSE, name));
-}
-
-API_EXPORT(mutex *) ap_open_mutex(char *name)
-{
- return(OpenMutex(MUTEX_ALL_ACCESS, FALSE, name));
-}
-
-
-API_EXPORT(int) ap_acquire_mutex(mutex *mutex_id)
-{
- int rv;
-
- rv = WaitForSingleObject(mutex_id, INFINITE);
-
- return(map_rv(rv));
-}
-
-API_EXPORT(int) ap_release_mutex(mutex *mutex_id)
-{
- return(ReleaseMutex(mutex_id));
-}
-
-API_EXPORT(void) ap_destroy_mutex(mutex *mutex_id)
-{
- CloseHandle(mutex_id);
-}
-
-
-semaphore *
-create_semaphore(int initial)
-{
- return(CreateSemaphore(NULL, initial, 1000000, NULL));
-}
-
-int acquire_semaphore(semaphore *semaphore_id)
-{
- int rv;
-
- rv = WaitForSingleObject(semaphore_id, INFINITE);
-
- return(map_rv(rv));
-}
-
-int release_semaphore(semaphore *semaphore_id)
-{
- return(ReleaseSemaphore(semaphore_id, 1, NULL));
-}
-
-void destroy_semaphore(semaphore *semaphore_id)
-{
- CloseHandle(semaphore_id);
-}
-
-
-event *
-create_event(int manual, int initial, char *name)
-{
- return(CreateEvent(NULL, manual, initial, name));
-}
-
-event *
-open_event(char *name)
-{
- return(OpenEvent(EVENT_ALL_ACCESS, FALSE, name));
-}
-
-
-int acquire_event(event *event_id)
-{
- int rv;
-
- rv = WaitForSingleObject(event_id, INFINITE);
-
- return(map_rv(rv));
-}
-
-int set_event(event *event_id)
-{
- return(SetEvent(event_id));
-}
-
-int reset_event(event *event_id)
-{
- return(ResetEvent(event_id));
-}
-
-
-void destroy_event(event *event_id)
-{
- CloseHandle(event_id);
-}
-
-#else
-
-
-thread *create_thread(void (thread_fn)(void *thread_arg),
- void *thread_arg)
-{
- return(NULL);
-}
-
-int kill_thread(thread *thread_id)
-{
- return(0);
-}
-
-int await_thread(thread *thread_id, int sec_to_wait)
-{
- return(0);
-}
-
-void exit_thread(int status)
-{}
-
-void free_thread(thread *thread_id)
-{}
-
-
-mutex *ap_create_mutex(char *name)
-{
- return(NULL);
-}
-
-mutex *ap_open_mutex(char *name)
-{
- return(NULL);
-}
-
-int ap_acquire_mutex(mutex *mutex_id)
-{
- return(0);
-}
-int ap_release_mutex(mutex *mutex_id)
-{
- return(0);
-}
-void ap_destroy_mutex(mutex *mutex_id)
-{}
-
-
-semaphore *create_semaphore(int initial)
-{
- return(NULL);
-}
-int acquire_semaphore(semaphore *semaphore_id)
-{
- return(0);
-}
-int release_semaphore(semaphore *semaphore_id)
-{
- return(0);
-}
-void destroy_semaphore(semaphore *semaphore_id)
-{}
-
-event *create_event(int manual, int initial, char *name)
-{
- return(NULL);
-}
-event *open_event(char *name)
-{
- return(NULL);
-}
-int acquire_event(event *event_id)
-{
- return(0);
-}
-int set_event(event *event_id)
-{
- return(0);
-}
-int reset_event(event *event_id)
-{
- return(0);
-}
-void destroy_event(event *event_id)
-{}
-
-
-#endif /* WIN32 */
-
diff --git a/usr.sbin/httpd/src/os/win32/os.c b/usr.sbin/httpd/src/os/win32/os.c
deleted file mode 100644
index 01a591f3e35..00000000000
--- a/usr.sbin/httpd/src/os/win32/os.c
+++ /dev/null
@@ -1,336 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-/*
- * OS abstraction functions. Small functions should be defined
- * as "__inline" in os.h.
- */
-
-#include <sys/stat.h>
-#include <stdio.h>
-#include <time.h>
-#include "os.h"
-#include "errno.h"
-
-/* Win95 doesn't like trailing /s. NT and Unix don't mind. This works
- * around the problem.
- * Errr... except if it is UNC and we are referring to the root of
- * the UNC, we MUST have a trailing \ and we can't use /s. Jeez.
- * Not sure if this refers to all UNCs or just roots,
- * but I'm going to fix it for all cases for now. (Ben)
- */
-
-#undef stat
-API_EXPORT(int) os_stat(const char *szPath, struct stat *pStat)
-{
- int n;
- int len = strlen(szPath);
-
- if (len == 0) {
- errno = ENOENT;
- return -1;
- }
-
- if (len >= MAX_PATH) {
- errno = ENAMETOOLONG;
- return -1;
- }
-
- if (szPath[0] == '/' && szPath[1] == '/') {
- char buf[MAX_PATH];
- char *s;
- int nSlashes = 0;
-
- strcpy(buf, szPath);
- for (s = buf; *s; ++s) {
- if (*s == '/') {
- *s = '\\';
- ++nSlashes;
- }
- }
- /* then we need to add one more to get \\machine\share\ */
- if (nSlashes == 3) {
- if (++len >= MAX_PATH) {
- errno = ENAMETOOLONG;
- return -1;
- }
- *s++ = '\\';
- }
- *s = '\0';
- return stat(buf, pStat);
- }
-
- /*
- * Below removes the trailing /, however, do not remove
- * it in the case of 'x:/' or stat will fail
- */
- n = strlen(szPath);
- if ((szPath[n - 1] == '\\' || szPath[n - 1] == '/') &&
- !(n == 3 && szPath[1] == ':')) {
- char buf[MAX_PATH];
-
- strcpy(buf, szPath);
- buf[n - 1] = '\0';
-
- return stat(buf, pStat);
- }
- return stat(szPath, pStat);
-}
-
-/* Fix two really crap problems with Win32 spawn[lv]e*:
- *
- * 1. Win32 doesn't deal with spaces in argv.
- * 2. Win95 doesn't like / in cmdname.
- */
-
-#undef _spawnv
-API_EXPORT(int) os_spawnv(int mode, const char *cmdname,
- const char *const *argv)
-{
- int n;
- char **aszArgs;
- const char *szArg;
- char *szCmd;
- char *s;
-
- szCmd = _alloca(strlen(cmdname)+1);
- strcpy(szCmd, cmdname);
- for (s = szCmd; *s; ++s) {
- if (*s == '/') {
- *s = '\\';
- }
- }
-
- for (n = 0; argv[n]; ++n)
- ;
-
- aszArgs = _alloca((n + 1) * sizeof(const char *));
-
- for (n = 0; szArg = argv[n]; ++n) {
- if (strchr(szArg, ' ')) {
- int l = strlen(szArg);
-
- aszArgs[n] = _alloca(l + 2 + 1);
- aszArgs[n][0] = '"';
- strcpy(&aszArgs[n][1], szArg);
- aszArgs[n][l + 1] = '"';
- aszArgs[n][l + 2] = '\0';
- }
- else {
- aszArgs[n] = (char *)szArg;
- }
- }
-
- aszArgs[n] = NULL;
-
- return _spawnv(mode, szCmd, aszArgs);
-}
-
-#undef _spawnve
-API_EXPORT(int) os_spawnve(int mode, const char *cmdname,
- const char *const *argv, const char *const *envp)
-{
- int n;
- char **aszArgs;
- const char *szArg;
- char *szCmd;
- char *s;
-
- szCmd = _alloca(strlen(cmdname)+1);
- strcpy(szCmd, cmdname);
- for (s = szCmd; *s; ++s) {
- if (*s == '/') {
- *s = '\\';
- }
- }
-
- for (n = 0; argv[n]; ++n)
- ;
-
- aszArgs = _alloca((n + 1)*sizeof(const char *));
-
- for (n = 0; szArg = argv[n]; ++n){
- if (strchr(szArg, ' ')) {
- int l = strlen(szArg);
-
- aszArgs[n] = _alloca(l + 2 + 1);
- aszArgs[n][0] = '"';
- strcpy(&aszArgs[n][1], szArg);
- aszArgs[n][l + 1] = '"';
- aszArgs[n][l + 2] = '\0';
- }
- else {
- aszArgs[n] = (char *)szArg;
- }
- }
-
- aszArgs[n] = NULL;
-
- return _spawnve(mode, szCmd, aszArgs, envp);
-}
-
-API_EXPORT_NONSTD(int) os_spawnle(int mode, const char *cmdname, ...)
-{
- int n;
- va_list vlist;
- char **aszArgs;
- const char *szArg;
- const char *const *aszEnv;
- char *szCmd;
- char *s;
-
- szCmd = _alloca(strlen(cmdname)+1);
- strcpy(szCmd, cmdname);
- for (s = szCmd; *s; ++s) {
- if (*s == '/') {
- *s = '\\';
- }
- }
-
- va_start(vlist, cmdname);
- for (n = 0; va_arg(vlist, const char *); ++n)
- ;
- va_end(vlist);
-
- aszArgs = _alloca((n + 1) * sizeof(const char *));
-
- va_start(vlist, cmdname);
- for (n = 0; szArg = va_arg(vlist, const char *); ++n) {
- if (strchr(szArg, ' ')) {
- int l = strlen(szArg);
-
- aszArgs[n] = _alloca(l + 2 + 1);
- aszArgs[n][0] = '"';
- strcpy(&aszArgs[n][1], szArg);
- aszArgs[n][l + 1] = '"';
- aszArgs[n][l + 2] = '\0';
- }
- else {
- aszArgs[n] = (char *)szArg;
- }
- }
-
- aszArgs[n] = NULL;
-
- aszEnv = va_arg(vlist, const char *const *);
- va_end(vlist);
-
- return _spawnve(mode, szCmd, aszArgs, aszEnv);
-}
-
-#undef strftime
-
-/* Partial replacement for strftime. This adds certain expandos to the
- * Windows version
- */
-
-API_EXPORT(int) os_strftime(char *s, size_t max, const char *format,
- const struct tm *tm) {
- /* If the new format string is bigger than max, the result string probably
- * won't fit anyway. When %-expandos are added, made sure the padding below
- * is enough.
- */
- char *new_format = (char *) _alloca(max + 11);
- size_t i, j, format_length = strlen(format);
- int return_value;
- int length_written;
-
- for (i = 0, j = 0; (i < format_length && j < max);) {
- if (format[i] != '%') {
- new_format[j++] = format[i++];
- continue;
- }
- switch (format[i+1]) {
- case 'D':
- /* Is this locale dependent? Shouldn't be...
- Also note the year 2000 exposure here */
- memcpy(new_format + j, "%m/%d/%y", 8);
- i += 2;
- j += 8;
- break;
- case 'r':
- memcpy(new_format + j, "%I:%M:%S %p", 11);
- i += 2;
- j += 11;
- break;
- case 'T':
- memcpy(new_format + j, "%H:%M:%S", 8);
- i += 2;
- j += 8;
- break;
- case 'e':
- length_written = _snprintf(new_format + j, max - j, "%2d",
- tm->tm_mday);
- j = (length_written == -1) ? max : (j + length_written);
- i += 2;
- break;
- default:
- /* We know we can advance two characters forward here. */
- new_format[j++] = format[i++];
- new_format[j++] = format[i++];
- }
- }
- if (j >= max) {
- *s = '\0'; /* Defensive programming, okay since output is undefined */
- return_value = 0;
- } else {
- new_format[j] = '\0';
- return_value = strftime(s, max, new_format, tm);
- }
- return return_value;
-}
diff --git a/usr.sbin/httpd/src/os/win32/os.h b/usr.sbin/httpd/src/os/win32/os.h
deleted file mode 100644
index f0882994f39..00000000000
--- a/usr.sbin/httpd/src/os/win32/os.h
+++ /dev/null
@@ -1,235 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifndef APACHE_OS_H
-#define APACHE_OS_H
-
-#ifdef WIN32
-
-/*
- * Compile the server including all the Windows NT 4.0 header files by
- * default. We still want the server to run on Win95/98 so use
- * runtime checks before calling NT specific functions to verify we are
- * really running on an NT system.
- */
-#define _WIN32_WINNT 0x0400
-
-/* If it isn't too late, prevent windows.h from including the original
- * winsock.h header, so that we can still include winsock2.h
- */
-#if !defined(_WINSOCKAPI_) || !defined(_WINDOWS_)
-#define _WINSOCKAPI_
-#include <windows.h>
-#include <winsock2.h>
-#include <mswsock.h>
-#else
-#include <windows.h>
-#endif
-#include <process.h>
-#include <malloc.h>
-#include <io.h>
-#include <fcntl.h>
-
-#define PLATFORM "Win32"
-
-/*
- * 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
- */
-
-/* temporarily replace crypt */
-/* char *crypt(const char *pw, const char *salt); */
-#define crypt(buf,salt) (buf)
-
-/* Although DIR_TYPE is dirent (see nt/readdir.h) we need direct.h for
- chdir() */
-#include <direct.h>
-
-#define STATUS
-#ifndef STRICT
-#define STRICT
-#endif
-#define CASE_BLIND_FILESYSTEM
-#define NO_WRITEV
-#define NO_SETSID
-#define NO_USE_SIGACTION
-#define NO_TIMES
-#define NO_GETTIMEOFDAY
-#define USE_LONGJMP
-#define HAVE_MMAP
-#define USE_MMAP_SCOREBOARD
-#define MULTITHREAD
-#define HAVE_CANONICAL_FILENAME
-#define HAVE_DRIVE_LETTERS
-#define HAVE_UNC_PATHS
-typedef int uid_t;
-typedef int gid_t;
-typedef int pid_t;
-typedef int tid_t;
-#ifdef _MSC_VER
-/* modified to match declaration in sys/stat.h */
-typedef unsigned short mode_t;
-#endif
-typedef char * caddr_t;
-
-/*
-Define export types. API_EXPORT_NONSTD is a nasty hack to avoid having to declare
-every configuration function as __stdcall.
-*/
-
-#ifdef SHARED_MODULE
-#define API_VAR_EXPORT __declspec(dllimport)
-#define API_EXPORT(type) __declspec(dllimport) type __stdcall
-#define API_EXPORT_NONSTD(type) __declspec(dllimport) type __cdecl
-#else
-#define API_VAR_EXPORT __declspec(dllexport)
-#define API_EXPORT(type) __declspec(dllexport) type __stdcall
-#define API_EXPORT_NONSTD(type) __declspec(dllexport) type __cdecl
-#endif
-#define MODULE_VAR_EXPORT __declspec(dllexport)
-
-#define strcasecmp(s1, s2) stricmp(s1, s2)
-#define strncasecmp(s1, s2, n) strnicmp(s1, s2, n)
-#define lstat(x, y) stat(x, y)
-#ifndef S_ISLNK
-#define S_ISLNK(m) (0)
-#endif
-#ifndef S_ISREG
-#define S_ISREG(m) ((m & _S_IFREG) == _S_IFREG)
-#endif
-#ifndef S_ISDIR
-#define S_ISDIR(m) (((m) & _S_IFDIR) == _S_IFDIR)
-#endif
-#define STDIN_FILENO 0
-#define STDOUT_FILENO 1
-#define STDERR_FILENO 2
-#define JMP_BUF jmp_buf
-#define sleep(t) Sleep(t*1000)
-#ifndef O_CREAT
-#define O_CREAT _O_CREAT
-#endif
-#ifndef O_RDWR
-#define O_RDWR _O_RDWR
-#endif
-#define SIGPIPE 17
-/* Seems Windows is not a subgenius */
-#define NO_SLACK
-#include <stddef.h>
-
-/* MSVC asserts that strtol "errno is set to ERANGE
- * if overflow or underflow occurs"
- * Ergo we can use the library strtol safely.
- */
-#define ap_strtol strtol
-
-#define NO_OTHER_CHILD
-#define NO_RELIABLE_PIPED_LOGS
-
-__inline int ap_os_is_path_absolute(const char *file)
-{
- /* For now, just do the same check that http_request.c and mod_alias.c
- * do.
- */
- return file && (file[0] == '/' || (file[1] == ':' && file[2] == '/'));
-}
-
-#define stat(f,ps) os_stat(f,ps)
-API_EXPORT(int) os_stat(const char *szPath,struct stat *pStat);
-
-API_EXPORT(int) os_strftime(char *s, size_t max, const char *format, const struct tm *tm);
-
-#define _spawnv(mode,cmdname,argv) os_spawnv(mode,cmdname,argv)
-#define spawnv(mode,cmdname,argv) os_spawnv(mode,cmdname,argv)
-API_EXPORT(int) os_spawnv(int mode,const char *cmdname,const char *const *argv);
-#define _spawnve(mode,cmdname,argv,envp) os_spawnve(mode,cmdname,argv,envp)
-#define spawnve(mode,cmdname,argv,envp) os_spawnve(mode,cmdname,argv,envp)
-API_EXPORT(int) os_spawnve(int mode,const char *cmdname,const char *const *argv,const char *const *envp);
-#define _spawnle os_spawnle
-#define spawnle os_spawnle
-API_EXPORT_NONSTD(int) os_spawnle(int mode,const char *cmdname,...);
-
-/* OS-dependent filename routines in util_win32.c */
-
-API_EXPORT(int) ap_os_is_filename_valid(const char *file);
-
-/* Abstractions for dealing with shared object files (DLLs on Win32).
- * These are used by mod_so.c
- */
-#define ap_os_dso_handle_t HINSTANCE
-#define ap_os_dso_init()
-#define ap_os_dso_unload(l) FreeLibrary(l)
-#define ap_os_dso_sym(h,s) GetProcAddress(h,s)
-
-API_EXPORT(ap_os_dso_handle_t) ap_os_dso_load(const char *);
-API_EXPORT(const char *) ap_os_dso_error(void);
-
-/* Other ap_os_ routines not used by this platform */
-#define ap_os_kill(pid, sig) kill(pid, sig)
-
-/* Some Win32isms */
-#define HAVE_ISNAN
-#define isnan(n) _isnan(n)
-#define HAVE_ISINF
-#define isinf(n) (!_finite(n))
-
-#define gettid() ((tid_t)GetCurrentThreadId())
-
-#endif /* WIN32 */
-
-#endif /* ! APACHE_OS_H */
diff --git a/usr.sbin/httpd/src/os/win32/passwd.c b/usr.sbin/httpd/src/os/win32/passwd.c
deleted file mode 100644
index d1cbae6abee..00000000000
--- a/usr.sbin/httpd/src/os/win32/passwd.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifdef WIN32
-
-#include <stdio.h>
-#include <string.h>
-#include "passwd.h"
-
-/* Very tacky implementation */
-
-struct passwd *getpwnam(const char *szUser)
-{
- static struct passwd pw;
-
- if(strlen(szUser) > _MAX_PATH-10)
- return NULL;
-
- sprintf(pw.pw_dir,"c:/users/%s",szUser);
-
- return &pw;
-}
-
-#endif /* WIN32 */ \ No newline at end of file
diff --git a/usr.sbin/httpd/src/os/win32/passwd.h b/usr.sbin/httpd/src/os/win32/passwd.h
deleted file mode 100644
index 45a6af99a5d..00000000000
--- a/usr.sbin/httpd/src/os/win32/passwd.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifndef APACHE_PASSWD_H
-#define APACHE_PASSWD_H
-
-#ifdef WIN32
-
-#include <stdlib.h>
-
-struct passwd
-{
- char pw_dir[_MAX_PATH];
-};
-
-struct passwd *getpwnam(const char *szUser);
-
-#endif /* WIN32 */
-
-#endif /* ndef APACHE_PASSWD_H */
diff --git a/usr.sbin/httpd/src/os/win32/readdir.c b/usr.sbin/httpd/src/os/win32/readdir.c
deleted file mode 100644
index 6394461f221..00000000000
--- a/usr.sbin/httpd/src/os/win32/readdir.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifdef WIN32
-
-#include <malloc.h>
-#include <string.h>
-#include <errno.h>
-
-#include "readdir.h"
-
-/**********************************************************************
- * Implement dirent-style opendir/readdir/closedir on Window 95/NT
- *
- * Functions defined are opendir(), readdir() and closedir() with the
- * same prototypes as the normal dirent.h implementation.
- *
- * Does not implement telldir(), seekdir(), rewinddir() or scandir().
- * The dirent struct is compatible with Unix, except that d_ino is
- * always 1 and d_off is made up as we go along.
- *
- * The DIR typedef is not compatible with Unix.
- **********************************************************************/
-
-API_EXPORT(DIR *) opendir(const char *dir)
-{
- DIR *dp;
- char *filespec;
- long handle;
- int index;
-
- filespec = malloc(strlen(dir) + 2 + 1);
- strcpy(filespec, dir);
- index = strlen(filespec) - 1;
- if (index >= 0 && (filespec[index] == '/' || filespec[index] == '\\'))
- filespec[index] = '\0';
- strcat(filespec, "/*");
-
- dp = (DIR *)malloc(sizeof(DIR));
- dp->offset = 0;
- dp->finished = 0;
- dp->dir = strdup(dir);
-
- if ((handle = _findfirst(filespec, &(dp->fileinfo))) < 0) {
- if (errno == ENOENT)
- dp->finished = 1;
- else
- return NULL;
- }
-
- dp->handle = handle;
- free(filespec);
-
- return dp;
-}
-
-API_EXPORT(struct dirent *) readdir(DIR *dp)
-{
- if (!dp || dp->finished) return NULL;
-
- if (dp->offset != 0) {
- if (_findnext(dp->handle, &(dp->fileinfo)) < 0) {
- dp->finished = 1;
- return NULL;
- }
- }
- dp->offset++;
-
- strncpy(dp->dent.d_name, dp->fileinfo.name, _MAX_FNAME);
- dp->dent.d_ino = 1;
- dp->dent.d_reclen = strlen(dp->dent.d_name);
- dp->dent.d_off = dp->offset;
-
- return &(dp->dent);
-}
-
-API_EXPORT(int) closedir(DIR *dp)
-{
- if (!dp) return 0;
- _findclose(dp->handle);
- if (dp->dir) free(dp->dir);
- if (dp) free(dp);
-
- return 0;
-}
-
-#endif /* WIN32 */
diff --git a/usr.sbin/httpd/src/os/win32/readdir.h b/usr.sbin/httpd/src/os/win32/readdir.h
deleted file mode 100644
index 281abfae702..00000000000
--- a/usr.sbin/httpd/src/os/win32/readdir.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-/*
- * Structures and types used to implement opendir/readdir/closedir
- * on Windows 95/NT.
- */
-
-#ifndef APACHE_READDIR_H
-#define APACHE_READDIR_H
-
-#ifdef WIN32
-
-#include <io.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-
-#ifndef API_EXPORT
-# define API_EXPORT(type) __declspec(dllexport) type __stdcall
-#endif
-
-/* struct dirent - same as Unix */
-struct dirent {
- long d_ino; /* inode (always 1 in WIN32) */
- off_t d_off; /* offset to this dirent */
- unsigned short d_reclen; /* length of d_name */
- char d_name[_MAX_FNAME+1]; /* filename (null terminated) */
-};
-
-/* typedef DIR - not the same as Unix */
-typedef struct {
- long handle; /* _findfirst/_findnext handle */
- short offset; /* offset into directory */
- short finished; /* 1 if there are not more files */
- struct _finddata_t fileinfo; /* from _findfirst/_findnext */
- char *dir; /* the dir we are reading */
- struct dirent dent; /* the dirent to return */
-} DIR;
-
-/* Function prototypes */
-API_EXPORT(DIR *) opendir(const char *);
-API_EXPORT(struct dirent *) readdir(DIR *);
-API_EXPORT(int) closedir(DIR *);
-
-#endif /* WIN32 */
-
-#endif /* ndef APACHE_READDIR_H */
diff --git a/usr.sbin/httpd/src/os/win32/registry.c b/usr.sbin/httpd/src/os/win32/registry.c
deleted file mode 100644
index e020cda65ce..00000000000
--- a/usr.sbin/httpd/src/os/win32/registry.c
+++ /dev/null
@@ -1,610 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifdef WIN32
-/*
- * Functions to handle interacting with the Win32 registry
- */
-
-/*
- * Apache registry key structure
- *
- * Apache's registry information is stored in the HKEY_LOCAL_MACHINE
- * key, under
- *
- * HKLM\SOFTWARE\Apache Group\Apache\version
- *
- * These keys are defined in this file. The definition of the "version" part
- * will need updating each time Apache moves from beta to non-beta or from a
- * release to a development or beta version.
- */
-
-/* To allow for multiple services, store the configuration file's full path
- * under each service entry:
- *
- * HKLM\System\CurrentControlSet\Services\[service name]\Parameters\ConfPath
- *
- * The default configuration path (for console apache) is still stored:
- *
- * HKLM\Software\[Vendor]\[Software]\[Version]\ServerRoot
- */
-
-#include <windows.h>
-#include <stdio.h>
-
-#include "httpd.h"
-#include "http_log.h"
-#include "service.h"
-
-/* Define where the Apache values are stored in the registry. In general
- * VERSION will be the same across all beta releases for a particular
- * major release, but will change when the final release is made.
- */
-
-/* Define where the Apache values are stored in the registry.
- *
- * If you are looking here to roll the tarball, you didn't need to visit.
- * registry.c now picks up the version from include/httpd.h
- */
-
-#define REGKEY "SOFTWARE\\" SERVER_BASEVENDOR "\\" SERVER_BASEPRODUCT "\\" SERVER_BASEREVISION
-
-#define SERVICEKEYPRE "System\\CurrentControlSet\\Services\\"
-#define SERVICEKEYPOST "\\Parameters"
-
-/*
- * The Windows API registry key functions don't set the last error
- * value (the windows equivalent of errno). So we need to set it
- * with SetLastError() before calling the aplog_error() function.
- * Because this is common, let's have a macro.
- */
-#define do_error(rv,fmt,arg) do { \
- SetLastError(rv); \
- ap_log_error(APLOG_MARK, APLOG_WIN32ERROR|APLOG_ERR, NULL, fmt,arg); \
- } while (0);
-
-/*
- * Get the data for registry key value. This is a generic function that
- * can either get a value into a caller-supplied buffer, or it can
- * allocate space for the value from the pass-in pool. It will normally
- * be used by other functions within this file to get specific key values
- * (e.g. registry_get_server_root()). This function returns a number of
- * different error statuses, allowing the caller to differentiate
- * between a key or value not existing and other kinds of errors. Depending
- * on the type of data being obtained the caller can then either ignore
- * the key-not-existing error, or treat it as a real error.
- *
- * If ppValue is NULL, allocate space for the value and return it in
- * *pValue. The return value is the number of bytes in the value.
- * The first argument is the pool to use to allocate space for the value.
- *
- * If pValue is not NULL, assume it is a buffer of nSizeValue bytes,
- * and write the value into the buffer. The return value is the number
- * of bytes in the value (so if the return value is greater than
- * the supplied nSizeValue, the caller knows that *pValue is truncated).
- * The pool argument is ignored.
- *
- * The return value is the number of bytes in the successfully retreived
- * key if everything worked, or:
- *
- * -1 the key does not exists
- * -2 if out of memory during the function
- * -3 if the buffer specified by *pValue/nSizeValue was not large enough
- * for the value.
- * -4 if an error occurred
- *
- * If the return value is negative a message will be logged to the error
- * log (aplog_error) function. If the return value is -2, -3 or -4 the message
- * will be logged at priority "error", while if the return value is -1 the
- * message will be logged at priority "warning".
- */
-
-static int ap_registry_get_key_int(pool *p, char *key, char *name, char *pBuffer, int nSizeBuffer, char **ppValue)
-{
- long rv;
- HKEY hKey;
- char *pValue;
- int nSize;
- int retval;
-
- rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- key,
- 0,
- KEY_READ,
- &hKey);
-
- if (rv == ERROR_FILE_NOT_FOUND) {
- ap_log_error(APLOG_MARK,APLOG_WARNING|APLOG_NOERRNO,NULL,
- "Registry does not contain key %s",key);
- return -1;
- }
- if (rv != ERROR_SUCCESS) {
- do_error(rv, "RegOpenKeyEx HKLM\\%s",key);
- return -4;
- }
-
- if (pBuffer == NULL) {
- /* Find the size required for the data by passing NULL as the buffer
- * pointer. On return nSize will contain the size required for the
- * buffer if the return value is ERROR_SUCCESS.
- */
- rv = RegQueryValueEx(hKey,
- name, /* key name */
- NULL, /* reserved */
- NULL, /* type */
- NULL, /* for value */
- &nSize); /* for size of "value" */
-
- if (rv != ERROR_SUCCESS) {
- do_error(rv, "RegQueryValueEx(key %s)", key);
- return -1;
- }
-
- pValue = ap_palloc(p, nSize);
- *ppValue = pValue;
- if (!pValue) {
- /* Eek, out of memory, probably not worth trying to carry on,
- * but let's give it a go
- */
- ap_log_error(APLOG_MARK,APLOG_ERR|APLOG_NOERRNO,NULL,
- "Error getting registry key: out of memory");
- return -2;
- }
- }
- else {
- /* Get the value into the existing buffer of length nSizeBuffer */
- pValue = pBuffer;
- nSize = nSizeBuffer;
- }
-
- rv = RegQueryValueEx(hKey,
- name, /* key name */
- NULL, /* reserved */
- NULL, /* type */
- pValue, /* for value */
- &nSize); /* for size of "value" */
-
- retval = 0; /* Return value */
-
- if (rv == ERROR_FILE_NOT_FOUND) {
- ap_log_error(APLOG_MARK,APLOG_WARNING|APLOG_NOERRNO,NULL,
- "Registry does not contain value %s\\%s", key, name);
- retval = -1;
- }
- else if (rv == ERROR_MORE_DATA) {
- /* This should only happen if we got passed a pre-existing buffer
- * (pBuffer, nSizeBuffer). But I suppose it could also happen if we
- * allocate a buffer if another process changed the length of the
- * value since we found out its length above. Umm.
- */
- ap_log_error(APLOG_MARK,APLOG_ERR|APLOG_NOERRNO,NULL,
- "Error getting registry value %s: buffer not big enough", key);
- retval = -3;
- }
- else if (rv != ERROR_SUCCESS) {
- do_error(rv, "RegQueryValueEx(key %s)", key);
- retval = -4;
- }
-
- rv = RegCloseKey(hKey);
- if (rv != ERROR_SUCCESS) {
- do_error(rv, "RegCloseKey HKLM\\%s", key);
- if (retval == 0) {
- /* Keep error status from RegQueryValueEx, if any */
- retval = -4;
- }
- }
-
- return retval < 0 ? retval : nSize;
-}
-
-/*
- * Get the server root from the registry into 'dir' which is
- * size bytes long. Returns 0 if the server root was found
- * or if the serverroot key does not exist (in which case
- * dir will contain an empty string), or -1 if there was
- * an error getting the key.
- */
-
-API_EXPORT(int) ap_registry_get_server_root(pool *p, char *dir, int size)
-{
- int rv;
-
- rv = ap_registry_get_key_int(p, REGKEY, "ServerRoot", dir, size, NULL);
- if (rv < 0) {
- dir[0] = '\0';
- }
-
- return (rv < 0) ? -1 : 0;
-}
-
-API_EXPORT(char *) ap_get_service_key(char *display_name)
-{
- char *key, *service_name;
-
- if (display_name == NULL)
- return strdup("");
-
- service_name = get_service_name(display_name);
-
- key = malloc(strlen(SERVICEKEYPRE) +
- strlen(service_name) +
- strlen(SERVICEKEYPOST) + 1);
-
- sprintf(key,"%s%s%s", SERVICEKEYPRE, service_name, SERVICEKEYPOST);
-
- return(key);
-}
-
-/**********************************************************************
- * The rest of this file deals with storing keys or values in the registry
- */
-
-char *ap_registry_parse_key(int index, char *key)
-{
- char *head = key, *skey;
- int i;
-
- if(!key)
- return(NULL);
-
- for(i = 0; i <= index; i++)
- {
- if(key && key[0] == '\\')
- key++;
- if (!key)
- return(NULL);
- head = key;
- key = strchr(head, '\\');
- }
-
- if(!key)
- return(strdup(head));
- *key = '\0';
- skey = strdup(head);
- *key = '\\';
- return(skey);
-}
-
-/*
- * ap_registry_create_apache_key() creates the Apache registry key
- * (HLKM\SOFTWARE\Apache Group\Apache\version, as defined at the start
- * of this file), if it does not already exist. It will be called by
- * ap_registry_store_key_int() if it cannot open this key. This
- * function is intended to be called by ap_registry_store_key_int() if
- * the Apache key does not exist when it comes to store a data item.
- *
- * Returns 0 on success or -1 on error. If -1 is returned, the error will
- * already have been logged.
- */
-
-static int ap_registry_create_key(char *longkey)
-{
- int index;
- HKEY hKey;
- HKEY hKeyNext;
- int retval;
- int rv;
- char *key;
-
- hKey = HKEY_LOCAL_MACHINE;
- index = 0;
- retval = 0;
-
- /* Walk the tree, creating at each stage if necessary */
- while (key=ap_registry_parse_key(index,longkey)) {
- int result;
-
- rv = RegCreateKeyEx(hKey,
- key, /* subkey */
- 0, /* reserved */
- NULL, /* class */
- REG_OPTION_NON_VOLATILE,
- KEY_WRITE,
- NULL,
- &hKeyNext,
- &result);
- if (rv != ERROR_SUCCESS) {
- do_error(rv, "RegCreateKeyEx(%s)", longkey);
- retval = -4;
- }
-
- /* Close the old key */
- rv = RegCloseKey(hKey);
- if (rv != ERROR_SUCCESS) {
- do_error(rv, "RegCloseKey", NULL);
- if (retval == 0) {
- /* Keep error status from RegCreateKeyEx, if any */
- retval = -4;
- }
- }
-
- if (retval) {
- break;
- }
-
- free(key);
- hKey = hKeyNext;
- index++;
- }
-
- if (!key) {
- /* Close the final key we opened, if we walked the entire
- * tree
- */
- rv = RegCloseKey(hKey);
- if (rv != ERROR_SUCCESS) {
- do_error(rv, "RegCloseKey", NULL);
- if (retval == 0) {
- /* Keep error status from RegCreateKeyEx, if any */
- retval = -4;
- }
- }
- }
- else
- free(key);
-
- return retval;
-}
-
-/*
- * ap_registry_store_key_int() stores a value name and value under the
- * Apache registry key. If the Apache key does not exist it is created
- * first. This function is intended to be called from a wrapper function
- * in this file to set particular data values, such as
- * ap_registry_set_server_root() below.
- *
- * Returns 0 if the value name and data was stored successfully, or
- * returns -1 if the Apache key does not exist (since we try to create
- * this key, this should never happen), or -4 if any other error occurred
- * (these values are consistent with ap_registry_get_key_int()).
- * If the return value is negative then the error will already have been
- * logged via aplog_error().
- */
-
-static int ap_registry_store_key_int(char *key, char *name, DWORD type, void *value, int value_size)
-{
- long rv;
- HKEY hKey;
- int retval;
-
- rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- key,
- 0,
- KEY_WRITE,
- &hKey);
-
- if (rv == ERROR_FILE_NOT_FOUND) {
- /* Key could not be opened -- try to create it
- */
- if (ap_registry_create_key(key) < 0) {
- /* Creation failed (error already reported) */
- return -4;
- }
-
- /* Now it has been created we should be able to open it
- */
- rv = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- key,
- 0,
- KEY_WRITE,
- &hKey);
-
- if (rv == ERROR_FILE_NOT_FOUND) {
- ap_log_error(APLOG_MARK,APLOG_WARNING|APLOG_NOERRNO,NULL,
- "Registry does not contain key %s after creation",key);
- return -1;
- }
- }
-
- if (rv != ERROR_SUCCESS) {
- do_error(rv, "RegOpenKeyEx HKLM\\%s", key);
- return -4;
- }
-
- /* Now set the value and data */
- rv = RegSetValueEx(hKey,
- name, /* value key name */
- 0, /* reserved */
- type, /* type */
- value, /* value data */
- (DWORD)value_size); /* for size of "value" */
-
- retval = 0; /* Return value */
-
- if (rv != ERROR_SUCCESS) {
- do_error(rv, "RegQueryValueEx(key %s)", key);
- retval = -4;
- }
- else {
- ap_log_error(APLOG_MARK,APLOG_INFO|APLOG_NOERRNO,NULL,
- "Registry stored HKLM\\" REGKEY "\\%s value %s", key,
- type == REG_SZ ? value : "(not displayable)");
- }
-
- /* Make sure we close the key even if there was an error storing
- * the data
- */
- rv = RegCloseKey(hKey);
- if (rv != ERROR_SUCCESS) {
- do_error(rv, "RegCloseKey HKLM\\%s", key);
- if (retval == 0) {
- /* Keep error status from RegQueryValueEx, if any */
- retval = -4;
- }
- }
-
- return retval;
-}
-
-/*
- * Sets the serverroot value within the registry. Returns 0 on success
- * or -1 on error. If -1 is return the error will already have been
- * logged via aplog_error().
- */
-
-int ap_registry_set_server_root(char *dir)
-{
- int rv;
-
- rv = ap_registry_store_key_int(REGKEY, "ServerRoot", REG_SZ, dir, strlen(dir)+1);
-
- return rv < 0 ? -1 : 0;
-}
-
-/* Creates and fills array pointed to by parray with the requested registry string
- *
- * Returns 0 on success, machine specific error code on error
- */
-int ap_registry_get_array(pool *p, char *key, char *name,
- array_header **pparray)
-{
- char *pValue;
- char *tmp;
- char **newelem;
- int ret;
- int nSize = 0;
-
- ret = ap_registry_get_key_int(p, key, name, NULL, 0, &pValue);
- if (ret < 0)
- return ret;
-
- tmp = pValue;
- if ((ret > 2) && (tmp[0] || tmp[1]))
- nSize = 1; /* Element Count */
- while ((tmp < pValue + ret) && (tmp[0] || tmp[1]))
- {
- if (!tmp[0])
- ++nSize;
- ++tmp;
- }
-
- *pparray = ap_make_array(p, nSize, sizeof(char *));
- tmp = pValue;
- if (tmp[0] || tmp[1]) {
- newelem = (char **) ap_push_array(*pparray);
- *newelem = tmp;
- }
- while ((tmp < pValue + ret) && (tmp[0] || tmp[1]))
- {
- if (!tmp[0]) {
- newelem = (char **) ap_push_array(*pparray);
- *newelem = tmp + 1;
- }
- ++tmp;
- }
-
- return nSize;
-}
-
-int ap_registry_get_service_args(pool *p, int *argc, char ***argv, char *display_name)
-{
- int ret;
- array_header *parray;
- char *key = ap_get_service_key(display_name);
- ret = ap_registry_get_array(p, key, "ConfigArgs", &parray);
- if (ret > 0) {
- *argc = parray->nelts;
- *argv = (char**) parray->elts;
- }
- else {
- *argc = 0;
- *argv = NULL;
- }
- free(key);
- return ret;
-}
-
-int ap_registry_store_array(pool *p, char *key, char *name,
- int nelts, char **elts)
-{
- int bufsize, i;
- char *buf, *tmp;
-
- bufsize = 1; /* For trailing second null */
- for (i = 0; i < nelts; ++i)
- {
- bufsize += strlen(elts[i]) + 1;
- }
- if (!nelts)
- ++bufsize;
-
- buf = ap_palloc(p, bufsize);
- tmp = buf;
- for (i = 0; i < nelts; ++i)
- {
- strcpy(tmp, elts[i]);
- tmp += strlen(elts[i]) + 1;
- }
- if (!nelts)
- *(tmp++) = '\0';
- *(tmp++) = '\0'; /* Trailing second null */
-
- return ap_registry_store_key_int(key, name, REG_MULTI_SZ, buf, tmp - buf);
-}
-
-int ap_registry_set_service_args(pool *p, int argc, char **argv, char *display_name)
-{
- int ret;
- char *key = ap_get_service_key(display_name);
- ret = ap_registry_store_array(p, key, "ConfigArgs", argc, argv);
- free(key);
- return ret;
-}
-
-#endif /* WIN32 */ \ No newline at end of file
diff --git a/usr.sbin/httpd/src/os/win32/registry.h b/usr.sbin/httpd/src/os/win32/registry.h
deleted file mode 100644
index 3e3bcddb5e5..00000000000
--- a/usr.sbin/httpd/src/os/win32/registry.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifndef APACHE_REGISTRY_H
-#define APACHE_REGISTRY_H
-
-#ifdef WIN32
-
-/*
- * Declarations for users of the functions defined in registry.c
- */
-
-API_EXPORT(int) ap_registry_get_server_root(pool *p, char *dir, int size);
-extern int ap_registry_set_server_root(char *dir);
-extern int ap_registry_get_service_args(pool *p, int *argc, char ***argv, char *display_name);
-extern int ap_registry_set_service_args(pool *p, int argc, char **argv, char *display_name);
-
-#endif WIN32
-
-#endif APACHE_REGISTRY_H \ No newline at end of file
diff --git a/usr.sbin/httpd/src/os/win32/resource.h b/usr.sbin/httpd/src/os/win32/resource.h
deleted file mode 100644
index 820bb6aaaff..00000000000
--- a/usr.sbin/httpd/src/os/win32/resource.h
+++ /dev/null
@@ -1,17 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Developer Studio generated include file.
-// Used by Apache.rc
-//
-#define IDI_APACHE 101
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NO_MFC 1
-#define _APS_NEXT_RESOURCE_VALUE 102
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1000
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
diff --git a/usr.sbin/httpd/src/os/win32/service.c b/usr.sbin/httpd/src/os/win32/service.c
deleted file mode 100644
index 2b14a92243b..00000000000
--- a/usr.sbin/httpd/src/os/win32/service.c
+++ /dev/null
@@ -1,1525 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifdef WIN32
-
-#include <windows.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <process.h>
-#include <direct.h>
-
-#include "httpd.h"
-#include "http_conf_globals.h"
-#include "http_log.h"
-#include "http_main.h"
-#include "multithread.h"
-#include "service.h"
-#include "registry.h"
-#include "Win9xConHook.h"
-
-#define SERVICE_APACHE_RESTART 128
-
-static struct
-{
- int (*main_fn)(int, char **);
- int connected;
- SERVICE_STATUS_HANDLE hServiceStatus;
- char *name;
- int exit_status;
- SERVICE_STATUS ssStatus;
- FILE *logFile;
-} globdat;
-
-/* statics for atexit processing or shared between threads */
-static BOOL die_on_logoff = FALSE;
-static HWND console_wnd = NULL;
-static int is_service = -1;
-
-static void WINAPI service_main_fn(DWORD, LPTSTR *);
-static void WINAPI service_ctrl(DWORD ctrlCode);
-static int ReportStatusToSCMgr(int currentState, int exitCode, int waitHint);
-static int ap_start_service(SC_HANDLE, DWORD argc, char **argv);
-static int ap_stop_service(SC_HANDLE);
-static int ap_restart_service(SC_HANDLE);
-
-/* exit() for Win32 is macro mapped (horrible, we agree) that allows us
- * to catch the non-zero conditions and inform the console process that
- * the application died, and hang on to the console a bit longer.
- *
- * The macro only maps for http_main.c and other sources that include
- * the service.h header, so we best assume it's an error to exit from
- * _any_ other module.
- *
- * If real_exit_code is not set to 2, it will not be set or trigger this
- * behavior on exit. All service and child processes are expected to
- * reset this flag to zero to avoid undesireable side effects. The value
- * 1 simply tells the system it is safe to enable the feature (set to 2),
- * while 0 prohibits the feature from being enabled.
- */
-int real_exit_code = 1;
-
-void hold_console_open_on_error(void)
-{
- HANDLE hConIn;
- HANDLE hConErr;
- DWORD result;
- DWORD mode;
- time_t start;
- time_t remains;
- char *msg = "Note the errors or messages above, "
- "and press the <ESC> key to exit. ";
- CONSOLE_SCREEN_BUFFER_INFO coninfo;
- INPUT_RECORD in;
- char count[16];
-
-#ifdef WIN32
- /* The service parent cannot just 'pop' out of the main thread,
- * as it is about to try to do...
- * We must end this thread properly so the service control
- * thread exits gracefully. atexit()s registered in the running
- * apache_main thread _should_ have already been handled, so now
- * we can exit this thread and allow the service thread to exit.
- */
- if (isWindowsNT() && isProcessService() && globdat.connected) {
- service_set_status(SERVICE_STOPPED);
- ExitThread(0);
- }
-#endif
-
- if (!real_exit_code)
- return;
- hConIn = GetStdHandle(STD_INPUT_HANDLE);
- hConErr = GetStdHandle(STD_ERROR_HANDLE);
- if ((hConIn == INVALID_HANDLE_VALUE) || (hConErr == INVALID_HANDLE_VALUE))
- return;
- if (!WriteConsole(hConErr, msg, strlen(msg), &result, NULL) || !result)
- return;
- if (!GetConsoleScreenBufferInfo(hConErr, &coninfo))
- return;
- if (isWindowsNT())
- mode = ENABLE_MOUSE_INPUT | 0x80;
- else
- mode = ENABLE_MOUSE_INPUT;
- if (!SetConsoleMode(hConIn, mode))
- return;
-
- start = time(NULL);
- do
- {
- while (PeekConsoleInput(hConIn, &in, 1, &result) && result)
- {
- if (!ReadConsoleInput(hConIn, &in, 1, &result) || !result)
- return;
- if ((in.EventType == KEY_EVENT) && in.Event.KeyEvent.bKeyDown
- && (in.Event.KeyEvent.uChar.AsciiChar == 27))
- return;
- if (in.EventType == MOUSE_EVENT
- && (in.Event.MouseEvent.dwEventFlags == DOUBLE_CLICK))
- return;
- }
- remains = ((start + 30) - time(NULL));
- sprintf (count, "%d...", remains);
- if (!SetConsoleCursorPosition(hConErr, coninfo.dwCursorPosition))
- return;
- if (!WriteConsole(hConErr, count, strlen(count), &result, NULL)
- || !result)
- return;
- }
- while ((remains > 0) && WaitForSingleObject(hConIn, 1000) != WAIT_FAILED);
-}
-
-/* Console Control handler for processing Ctrl-C/Ctrl-Break and
- * on Windows NT also user logoff and system shutdown,
- * this also used for the Win9x hidden service and child process
- */
-static BOOL CALLBACK ap_control_handler(DWORD ctrl_type)
-{
- switch (ctrl_type)
- {
- case CTRL_C_EVENT:
- case CTRL_BREAK_EVENT:
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Ctrl+C/Break initiated, shutting down server.");
-
- real_exit_code = 0;
- /* for Interrupt signals, shut down the server.
- * Tell the system we have dealt with the signal
- * without waiting for Apache to terminate.
- */
- ap_start_shutdown();
- return TRUE;
-
- case CTRL_LOGOFF_EVENT:
- if (!die_on_logoff)
- return TRUE;
- /* or fall through... */
-
- case CTRL_CLOSE_EVENT:
- case CTRL_SHUTDOWN_EVENT:
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Close/Logoff/Shutdown initiated, shutting down server.");
-
- /* for Terminate signals, shut down the server.
- * Wait for Apache to terminate, but respond
- * after a reasonable time to tell the system
- * that we have already tried to shut down.
- */
- real_exit_code = 0;
- fprintf(stderr, "Apache server shutdown initiated...\n");
- ap_start_shutdown();
- Sleep(30000);
- return TRUE;
- }
-
- /* We should never get here, but this is (mostly) harmless */
- return FALSE;
-}
-
-/* Once we are running a child process in our tty, it can no longer
- * determine which console window is our own, since the window
- * reports that it is owned by the child process.
- */
-static BOOL CALLBACK EnumttyWindow(HWND wnd, LPARAM retwnd)
-{
- char tmp[20], *tty;
- if (isWindowsNT())
- tty = "ConsoleWindowClass";
- else
- tty = "tty";
- if (GetClassName(wnd, tmp, sizeof(tmp)) && !strcmp(tmp, tty))
- {
- DWORD wndproc, thisproc = GetCurrentProcessId();
- GetWindowThreadProcessId(wnd, &wndproc);
- if (wndproc == thisproc) {
- *((HWND*)retwnd) = wnd;
- return FALSE;
- }
- }
- return TRUE;
-}
-
-void stop_child_monitor(void)
-{
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Unhooking the child process monitor for shutdown.");
-
- FixConsoleCtrlHandler(ap_control_handler, 0);
-}
-
-/*
- * The Win32 Apache child cannot loose its console since 16bit cgi
- * processes will hang (9x) or fail (NT) if they are not launched
- * from a 32bit console app into that app's console window.
- * Mark the 9x child as a service process and let the parent process
- * clean it up as necessary.
- */
-void ap_start_child_console(int is_child_of_service)
-{
- int maxwait = 100;
-
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Hooking up the child process monitor to watch for shutdown.");
-
- /* The child is never exactly a service */
- is_service = 0;
-
- /* Prevent holding open the (hidden) console */
- real_exit_code = 0;
-
- /* We only die on logoff if we not a service's child */
- die_on_logoff = !is_child_of_service;
-
- if (isWindowsNT()) {
- if (!is_child_of_service) {
- /*
- * Console mode Apache/WinNT needs to detach from the parent
- * console and create and hide it's own console window.
- * Not only is logout and shutdown more stable under W2K,
- * but this eliminates the mystery 'flicker' that users see
- * when invoking CGI apps (e.g. the titlebar or icon of the
- * console window changing to the cgi process's identifiers.)
- */
- FreeConsole();
- AllocConsole();
- EnumWindows(EnumttyWindow, (long)(&console_wnd));
- if (console_wnd)
- ShowWindow(console_wnd, SW_HIDE);
- }
- /*
- * Apache/WinNT installs no child console handler, otherwise
- * logoffs interfere with the service's child process!
- * The child process must have a later shutdown priority
- * than the parent, or the parent cannot shut down the
- * child process properly. (The parent's default is 0x280.)
- */
- SetProcessShutdownParameters(0x200, 0);
- return;
- }
-
- if (!is_child_of_service) {
- FreeConsole();
- AllocConsole();
- }
- while (!console_wnd && maxwait-- > 0) {
- EnumWindows(EnumttyWindow, (long)(&console_wnd));
- Sleep(100);
- }
- if (console_wnd) {
- FixConsoleCtrlHandler(ap_control_handler, die_on_logoff ? 1 : 2);
- ShowWindow(console_wnd, SW_HIDE);
- atexit(stop_child_monitor);
- }
-}
-
-
-void stop_console_monitor(void)
-{
- /* Remove the control handler at the end of the day. */
- SetConsoleCtrlHandler(ap_control_handler, FALSE);
-
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Unhooking the console monitor for shutdown.");
-
- if (!isWindowsNT())
- FixConsoleCtrlHandler(ap_control_handler, 0);
-}
-
-void ap_start_console_monitor(void)
-{
- HANDLE console_input;
-
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Hooking up the console monitor to watch for shutdown.");
-
- die_on_logoff = TRUE;
-
- is_service = 0;
-
- console_input = GetStdHandle(STD_INPUT_HANDLE);
- /* Assure we properly accept Ctrl+C as an interrupt...
- * Win/2000 definately makes some odd assumptions about
- * ctrl+c and the reserved console mode bits!
- */
- if (console_input != INVALID_HANDLE_VALUE)
- {
- /* The SetConsoleCtrlHandler(NULL... would fault under Win9x
- * WinNT also includes an undocumented 0x80 bit for console mode
- * that preserves the console window behavior, and prevents the
- * bogus 'selection' mode from being accedently triggered.
- */
- if (isWindowsNT()) {
- SetConsoleCtrlHandler(NULL, FALSE);
- SetConsoleMode(console_input, ENABLE_LINE_INPUT
- | ENABLE_ECHO_INPUT
- | ENABLE_PROCESSED_INPUT
- | 0x80);
- }
- else {
- SetConsoleMode(console_input, ENABLE_LINE_INPUT
- | ENABLE_ECHO_INPUT
- | ENABLE_PROCESSED_INPUT);
- }
- }
-
- if (!isWindowsNT())
- FixConsoleCtrlHandler(ap_control_handler, die_on_logoff ? 1 : 2);
-
- SetConsoleCtrlHandler(ap_control_handler, TRUE);
-
- atexit(stop_console_monitor);
-}
-
-void stop_service_monitor(void)
-{
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Unhooking up the service monitor for shutdown.");
-
- Windows9xServiceCtrlHandler(ap_control_handler, FALSE);
-}
-
-int service95_main(int (*main_fn)(int, char **), int argc, char **argv,
- char *display_name)
-{
- /* Windows 95/98 */
- char *service_name;
-
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Hooking up the service monitor to watch for shutdown.");
-
- is_service = 1;
- die_on_logoff = FALSE;
-
- /* Set up the Win9x server name, as WinNT would */
- ap_server_argv0 = globdat.name = display_name;
-
- /* Remove spaces from display name to create service name */
- service_name = strdup(display_name);
- ap_remove_spaces(service_name, display_name);
-
- /* Prevent holding open the (hidden) console */
- real_exit_code = 0;
-
- Windows9xServiceCtrlHandler(ap_control_handler, service_name);
-
- atexit(stop_service_monitor);
-
- /* Run the service */
- globdat.exit_status = main_fn(argc, argv);
-
- return (globdat.exit_status);
-}
-
-static HANDLE eventlog_pipewrite = NULL;
-static HANDLE eventlog_thread = NULL;
-
-int service_main(int (*main_fn)(int, char **), int argc, char **argv )
-{
- SERVICE_TABLE_ENTRY dispatchTable[] =
- {
- { "", service_main_fn },
- { NULL, NULL }
- };
-
- /* Prevent holding open the (nonexistant) console and allow us past
- * the first NT service to parse the service's args in apache_main()
- */
- ap_server_argv0 = argv[0];
- real_exit_code = 0;
-
- /* keep the server from going to any real effort, since we know */
- is_service = 1;
-
- globdat.main_fn = main_fn;
- globdat.connected = 1;
-
- if(!StartServiceCtrlDispatcher(dispatchTable))
- {
- /* This is a genuine failure of the SCM. */
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Error starting service control dispatcher");
- }
-
- globdat.connected = 0;
-
- if (eventlog_pipewrite)
- {
- CloseHandle(eventlog_pipewrite);
- WaitForSingleObject(eventlog_thread, 10000);
- eventlog_pipewrite = NULL;
- }
-
- return(globdat.exit_status);
-}
-
-long __stdcall service_stderr_thread(LPVOID hPipe)
-{
- HANDLE hPipeRead = (HANDLE) hPipe;
- HANDLE hEventSource;
- char errbuf[256];
- char *errmsg = errbuf;
- char *errarg[9];
- DWORD errlen = 0;
- DWORD errres;
- HKEY hk;
-
- errarg[0] = "The Apache service named";
- errarg[1] = ap_server_argv0;
- errarg[2] = "reported the following error:\r\n>>>";
- errarg[3] = errmsg;
- errarg[4] = "<<<\r\n before the error.log file could be opened.\r\n";
- errarg[5] = "More information may be available in the error.log file.";
- errarg[6] = NULL;
- errarg[7] = NULL;
- errarg[8] = NULL;
-
- /* What are we going to do in here, bail on the user? not. */
- if (!RegCreateKey(HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Services"
- "\\EventLog\\Application\\Apache Service", &hk))
- {
- /* The stock message file */
- char *netmsgkey = "%SystemRoot%\\System32\\netmsg.dll";
- DWORD dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE |
- EVENTLOG_INFORMATION_TYPE;
-
- RegSetValueEx(hk, "EventMessageFile", 0, REG_EXPAND_SZ,
- (LPBYTE) netmsgkey, strlen(netmsgkey) + 1);
-
- RegSetValueEx(hk, "TypesSupported", 0, REG_DWORD,
- (LPBYTE) &dwData, sizeof(dwData));
- RegCloseKey(hk);
- }
-
- hEventSource = RegisterEventSource(NULL, "Apache Service");
-
- while (ReadFile(hPipeRead, errmsg, 1, &errres, NULL) && (errres == 1))
- {
- if ((errmsg > errbuf) || !isspace(*errmsg))
- {
- ++errlen;
- ++errmsg;
- if ((*(errmsg - 1) == '\n') || (errlen == sizeof(errbuf) - 1))
- {
- while (errlen && isspace(errbuf[errlen - 1]))
- --errlen;
- errbuf[errlen] = '\0';
-
- /* Generic message: '%1 %2 %3 %4 %5 %6 %7 %8 %9'
- * The event code in netmsg.dll is 3299
- */
- ReportEvent(hEventSource, EVENTLOG_ERROR_TYPE, 0,
- 3299, NULL, 9, 0, errarg, NULL);
- errmsg = errbuf;
- errlen = 0;
- }
- }
- }
-
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Shut down the Service Error Event Logger.");
-
- CloseHandle(eventlog_pipewrite);
- eventlog_pipewrite = NULL;
-
- CloseHandle(hPipeRead);
-
- CloseHandle(eventlog_thread);
- eventlog_thread = NULL;
- return 0;
-}
-
-void __stdcall service_main_fn(DWORD argc, LPTSTR *argv)
-{
- HANDLE hCurrentProcess;
- HANDLE hPipeRead = NULL;
- HANDLE hPipeReadDup;
- HANDLE hNullFile;
- DWORD threadid;
- SECURITY_ATTRIBUTES sa = {0};
- char **newargv;
-
- if(!(globdat.hServiceStatus = RegisterServiceCtrlHandler(argv[0],
- service_ctrl)))
- {
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Failure registering service handler");
- return;
- }
-
- ReportStatusToSCMgr(
- SERVICE_START_PENDING, // service state
- NO_ERROR, // exit code
- 3000); // wait hint
-
- /* Create a pipe to send stderr messages to the system error log */
- hCurrentProcess = GetCurrentProcess();
- if (CreatePipe(&hPipeRead, &eventlog_pipewrite, &sa, 0))
- {
- if (DuplicateHandle(hCurrentProcess, hPipeRead, hCurrentProcess,
- &hPipeReadDup, 0, FALSE, DUPLICATE_SAME_ACCESS))
- {
- CloseHandle(hPipeRead);
- hPipeRead = hPipeReadDup;
- eventlog_thread = CreateThread(NULL, 0, service_stderr_thread,
- (LPVOID) hPipeRead, 0, &threadid);
- if (eventlog_thread)
- {
- int fh;
- FILE *fl;
- fflush(stderr);
- SetStdHandle(STD_ERROR_HANDLE, eventlog_pipewrite);
-
- fh = _open_osfhandle((long) STD_ERROR_HANDLE,
- _O_WRONLY | _O_BINARY);
- dup2(fh, STDERR_FILENO);
- fl = _fdopen(STDERR_FILENO, "wcb");
- memcpy(stderr, fl, sizeof(FILE));
- }
- else
- {
- CloseHandle(hPipeRead);
- CloseHandle(eventlog_pipewrite);
- eventlog_pipewrite = NULL;
- }
- }
- else
- {
- CloseHandle(hPipeRead);
- CloseHandle(eventlog_pipewrite);
- eventlog_pipewrite = NULL;
- }
- }
-
- /* Open a null handle to nak our stdin */
- hNullFile = CreateFile("nul", GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE,
- &sa, OPEN_EXISTING, 0, NULL);
- if (hNullFile == INVALID_HANDLE_VALUE) {
- ap_log_error(APLOG_MARK, APLOG_WIN32ERROR | APLOG_CRIT, NULL,
- "Parent: Unable to create null stdin pipe for this service process.\n");
- }
- else {
- int fh;
- FILE *fl;
- fflush(stdin);
- SetStdHandle(STD_INPUT_HANDLE, hNullFile);
- fh = _open_osfhandle((long) STD_INPUT_HANDLE,
- _O_RDONLY | _O_BINARY);
- dup2(fh, STDIN_FILENO);
- fl = _fdopen(STDIN_FILENO, "rcb");
- memcpy(stdin, fl, sizeof(FILE));
- }
-
- /* Open a null handle to soak our stdout */
- hNullFile = CreateFile("nul", GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE,
- &sa, OPEN_EXISTING, 0, NULL);
- if (hNullFile == INVALID_HANDLE_VALUE) {
- ap_log_error(APLOG_MARK, APLOG_WIN32ERROR | APLOG_CRIT, NULL,
- "Parent: Unable to create null stdout pipe for this service process.\n");
- }
- else {
- int fh;
- FILE *fl;
- fflush(stdout);
- SetStdHandle(STD_OUTPUT_HANDLE, hNullFile);
- fh = _open_osfhandle((long) STD_OUTPUT_HANDLE,
- _O_WRONLY | _O_BINARY);
- dup2(fh, STDOUT_FILENO);
- fl = _fdopen(STDOUT_FILENO, "wcb");
- memcpy(stdout, fl, sizeof(FILE));
- }
-
- /* Grab it or lose it */
- globdat.name = argv[0];
-
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Hooked up the Service Error Event Logger.");
-
- /* Fold the "Start Parameters" in with the true executable argv[0],
- * and insert a -n tag to pass the service name from the SCM's argv[0]
- */
- newargv = (char**) malloc((argc + 3) * sizeof(char*));
- newargv[0] = ap_server_argv0; /* The true executable name */
- newargv[1] = "-n"; /* True service name follows (argv[0]) */
- memcpy (newargv + 2, argv, argc * sizeof(char*));
- newargv[argc + 2] = NULL; /* SCM doesn't null terminate the array */
- argv = newargv;
- argc += 2;
-
- /* Use the name of the service as the error log marker */
- ap_server_argv0 = globdat.name;
-
- globdat.exit_status = globdat.main_fn( argc, argv );
-}
-
-/* Set the service description regardless of platform.
- * We revert to set_service_description_string on NT/9x, the
- * very long way so any Apache management program can grab the
- * description. This would be bad on Win2000, since it wouldn't
- * notify the service control manager of the name change.
- */
-static void set_service_description_string(const char *description)
-{
- char szPath[MAX_PATH];
- HKEY hkey;
-
- /* Create/Find the Service key that Monitor Applications iterate */
- ap_snprintf(szPath, sizeof(szPath),
- "SYSTEM\\CurrentControlSet\\Services\\%s", globdat.name);
- ap_remove_spaces(szPath, szPath);
- if (RegCreateKey(HKEY_LOCAL_MACHINE, szPath, &hkey) != ERROR_SUCCESS) {
- return;
- }
-
- /* Attempt to set the Description value for our service */
- RegSetValueEx(hkey, "Description", 0, REG_SZ,
- (unsigned char *) description,
- strlen(description) + 1);
- RegCloseKey(hkey);
-}
-
-
-char *get_service_name(char *display_name)
-{
- /* Get the service's true name from the SCM on NT/2000, since it
- * can be changed by the user on 2000, especially, from the
- * service control panel. We can't trust the service name to
- * match a space-collapsed display name.
- */
- char service_name[MAX_PATH];
- if (isWindowsNT())
- {
- SC_HANDLE scm = OpenSCManager(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE);
- DWORD namelen = sizeof(service_name);
- if (scm) {
- BOOL ok = GetServiceKeyName(scm, display_name, service_name,
- &namelen);
- CloseServiceHandle(scm);
- if (ok)
- return strdup(service_name);
- }
- }
- ap_remove_spaces(service_name, display_name);
- return strdup(service_name);
-}
-
-
-char *get_display_name(char *service_name)
-{
- /* Get the service's display name from the SCM on NT/2000, since it
- * can be changed by the user on 2000, especially, from the
- * service control panel. We can't trust the service name as
- * provided by the user.
- */
- if (isWindowsNT())
- {
- char display_name[MAX_PATH];
- SC_HANDLE scm = OpenSCManager(NULL, NULL, SC_MANAGER_ENUMERATE_SERVICE);
- DWORD namelen = sizeof(display_name);
- if (scm) {
- BOOL ok = GetServiceDisplayName(scm, service_name, display_name,
- &namelen);
- CloseServiceHandle(scm);
- if (ok)
- return strdup(display_name);
- }
- }
- return service_name;
-}
-
-
-/* ChangeServiceConfig2() prototype:
- */
-typedef WINADVAPI BOOL (WINAPI *CSD_T)(SC_HANDLE, DWORD, LPCVOID);
-
-
-/* Windows 2000 alone supports ChangeServiceConfig2 in order to
- * register our server_version string... so we need some fixups
- * to avoid binding to that function if we are on WinNT/9x.
- * Fall back on set_service_description_string if we fail.
- */
-void service_set_status(int status)
-{
- const char *full_description;
- SC_HANDLE schSCManager;
- CSD_T ChangeServiceDescription;
- HANDLE hwin2000scm;
- BOOL ret = 0;
-
- /* Nothing to do if we are a console
- */
- if (!is_service)
- return;
-
- ReportStatusToSCMgr(status, NO_ERROR, 3000);
-
- if (status != SERVICE_RUNNING)
- return;
-
- /* Time to fix up the description, upon each successful restart
- */
- full_description = ap_get_server_version();
- hwin2000scm = GetModuleHandle("ADVAPI32.DLL");
- if (!hwin2000scm) {
- set_service_description_string(full_description);
- return;
- }
- ChangeServiceDescription = (CSD_T) GetProcAddress(hwin2000scm,
- "ChangeServiceConfig2A");
- if (!ChangeServiceDescription) {
- set_service_description_string(full_description);
- return;
- }
- schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
- if (schSCManager) {
- SC_HANDLE schService = OpenService(schSCManager, globdat.name,
- SERVICE_ALL_ACCESS);
- if (schService) {
- ret = ChangeServiceDescription(schService,
- 1 /* SERVICE_CONFIG_DESCRIPTION */,
- &full_description);
- CloseServiceHandle(schService);
- }
- CloseServiceHandle(schSCManager);
- }
- if (!ret)
- set_service_description_string(full_description);
-}
-
-
-//
-// FUNCTION: service_ctrl
-//
-// PURPOSE: This function is called by the SCM whenever
-// ControlService() is called on this service.
-//
-// PARAMETERS:
-// dwCtrlCode - type of control requested
-//
-// RETURN VALUE:
-// none
-//
-// COMMENTS: See the user-defined Handler() entry in the PSDK
-//
-VOID WINAPI service_ctrl(DWORD dwCtrlCode)
-{
- switch(dwCtrlCode)
- {
- // Stop the service.
- //
- case SERVICE_CONTROL_SHUTDOWN:
- case SERVICE_CONTROL_STOP:
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Service Stop/Shutdown signaled, shutting down server.");
- ReportStatusToSCMgr(SERVICE_STOP_PENDING, NO_ERROR, 15000);
- ap_start_shutdown();
- break;
-
- case SERVICE_APACHE_RESTART:
- ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, NULL,
- "Service Restart signaled, shutting down server.");
- ReportStatusToSCMgr(SERVICE_START_PENDING, NO_ERROR, 15000);
- ap_start_restart(1);
- break;
-
- // Update the service status.
- //
- case SERVICE_CONTROL_INTERROGATE:
- ReportStatusToSCMgr(globdat.ssStatus.dwCurrentState, NO_ERROR, 0);
- break;
-
- // invalid control code, ignored
- //
- default:
- break;
- }
-}
-
-
-int ReportStatusToSCMgr(int currentState, int exitCode, int waitHint)
-{
- static int firstTime = 1;
- static int checkPoint = 1;
- int rv;
-
- if (firstTime)
- {
- firstTime = 0;
- globdat.ssStatus.dwServiceType = SERVICE_WIN32_OWN_PROCESS;
- globdat.ssStatus.dwServiceSpecificExitCode = 0;
- globdat.ssStatus.dwCheckPoint = 1;
- }
-
- if (globdat.connected)
- {
- if ((currentState == SERVICE_START_PENDING)
- || (currentState == SERVICE_STOP_PENDING))
- globdat.ssStatus.dwControlsAccepted = 0;
- else
- globdat.ssStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP
- | SERVICE_ACCEPT_SHUTDOWN;
-
- globdat.ssStatus.dwCurrentState = currentState;
- globdat.ssStatus.dwWin32ExitCode = exitCode;
-
- if ( ( currentState == SERVICE_RUNNING ) ||
- ( currentState == SERVICE_STOPPED ) )
- {
- globdat.ssStatus.dwWaitHint = 0;
- globdat.ssStatus.dwCheckPoint = 0;
- }
- else
- {
- if(waitHint)
- globdat.ssStatus.dwWaitHint = waitHint;
- globdat.ssStatus.dwCheckPoint = ++checkPoint;
- }
-
- rv = SetServiceStatus(globdat.hServiceStatus, &globdat.ssStatus);
- }
- return(1);
-}
-
-void InstallService(pool *p, char *display_name, int argc, char **argv, int reconfig)
-{
- TCHAR szPath[MAX_PATH];
- TCHAR szQuotedPath[512];
- char *service_name;
- int regargc = 0;
- char default_depends[] = "Tcpip\0Afd\0";
- char *depends = default_depends;
- size_t depends_len = sizeof(default_depends);
- char **regargv = malloc((argc + 4) * sizeof(char*));
- char **newelem = regargv;
-
- regargc += 4;
- *(newelem++) = "-d";
- *(newelem++) = ap_server_root;
- *(newelem++) = "-f";
- *(newelem++) = ap_server_confname;
-
- while (++argv, --argc) {
- if ((**argv == '-') && strchr("kndf", argv[0][1]))
- --argc, ++argv; /* Skip already handled -k -n -d -f options */
- else if ((**argv == '-') && (argv[0][1] == 'W'))
- {
- /* Catch this service -W dependency
- * the depends list is null seperated, double-null terminated
- */
- char *service = get_service_name(*(argv + 1));
- size_t add_len = strlen(service) + 1;
- char *more_depends = malloc(depends_len + add_len);
- memcpy (more_depends, depends, depends_len - 1);
- memcpy (more_depends + depends_len - 1, service, add_len);
- depends_len += add_len;
- depends = more_depends;
- depends[depends_len - 1] = '\0';
- ++argv, --argc;
- }
- else if ((**argv != '-') || !strchr("iuw", argv[0][1]))
- *(newelem++) = *argv, ++regargc; /* Ignoring -i -u -w options */
- }
-
- /* Remove spaces from display name to create service name */
- service_name = get_service_name(display_name);
-
- printf(reconfig ? "Reconfiguring the %s service\n"
- : "Installing the %s service\n",
- display_name);
-
- if (GetModuleFileName( NULL, szPath, 512 ) == 0)
- {
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "GetModuleFileName failed");
- return;
- }
-
- if (isWindowsNT())
- {
- SC_HANDLE schService;
- SC_HANDLE schSCManager;
-
- ap_snprintf(szQuotedPath, sizeof(szQuotedPath), "\"%s\" --ntservice", szPath);
-
- schSCManager = OpenSCManager(
- NULL, // machine (local)
- NULL, // database (default)
- SC_MANAGER_ALL_ACCESS // access required
- );
- if (!schSCManager) {
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "OpenSCManager failed");
- return;
- }
-
- /* Added dependencies for the following: TCPIP, AFD
- * AFD is the winsock handler, TCPIP is self evident
- *
- * RPCSS is the Remote Procedure Call (RPC) Locator
- * required for DCOM communication. I am far from
- * convinced we should toggle this, but be warned that
- * future apache modules or ISAPI dll's may depend on it.
- * Also UNC share users may need the networking service
- * started (usually "LanmanWorkstation"). "ProtectedStorage"
- * may be needed depending on how files and registry keys are
- * stored. And W3SVC may be needed to wait until IIS has
- * glommed and released 0.0.0.0:80 if the admin allocates
- * two different IP's to Apache and IIS on the same port.
- */
- if (reconfig)
- {
- schService = OpenService(schSCManager, service_name,
- SERVICE_ALL_ACCESS);
- if (!schService)
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "OpenService failed");
- else if (!ChangeServiceConfig(
- schService, // Service handle
- SERVICE_WIN32_OWN_PROCESS, // service type
- SERVICE_AUTO_START, // start type
- SERVICE_ERROR_NORMAL, // error control type
- szQuotedPath, // service's binary
- NULL, // no load ordering group
- NULL, // no tag identifier
- depends, // dependencies
- NULL, // user account
- NULL, // account password
- display_name)) { // service display name
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "ChangeServiceConfig failed");
- /* !schService aborts configuration below */
- CloseServiceHandle(schService);
- schService = NULL;
- }
- }
- else /* !reconfig */
- {
- schService = CreateService(
- schSCManager, // SCManager database
- service_name, // name of service
- display_name, // name to display
- SERVICE_ALL_ACCESS, // desired access
- SERVICE_WIN32_OWN_PROCESS, // service type
- SERVICE_AUTO_START, // start type
- SERVICE_ERROR_NORMAL, // error control type
- szQuotedPath, // service's binary
- NULL, // no load ordering group
- NULL, // no tag identifier
- depends, // dependencies
- NULL, // user account
- NULL); // account password
- if (!schService)
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "CreateService failed");
- }
- if (schService)
- CloseServiceHandle(schService);
-
- CloseServiceHandle(schSCManager);
-
- if (!schService)
- return;
- }
- else /* !isWindowsNT() */
- {
- HKEY hkey;
- DWORD rv;
-
- ap_snprintf(szQuotedPath, sizeof(szQuotedPath),
- "\"%s\" -k start -n %s",
- szPath, service_name);
- /* Create/Find the RunServices key */
- rv = RegCreateKey(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows"
- "\\CurrentVersion\\RunServices", &hkey);
- if (rv != ERROR_SUCCESS) {
- SetLastError(rv);
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Could not create/open the RunServices registry key");
- return;
- }
-
- /* Attempt to add the value for our service */
- rv = RegSetValueEx(hkey, service_name, 0, REG_SZ,
- (unsigned char *)szQuotedPath,
- strlen(szQuotedPath) + 1);
- if (rv != ERROR_SUCCESS) {
- SetLastError(rv);
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Unable to install service: "
- "Could not add to RunServices Registry Key");
- RegCloseKey(hkey);
- return;
- }
-
- RegCloseKey(hkey);
-
- /* Create/Find the Service key for Monitor Applications to iterate */
- ap_snprintf(szPath, sizeof(szPath),
- "SYSTEM\\CurrentControlSet\\Services\\%s", service_name);
- rv = RegCreateKey(HKEY_LOCAL_MACHINE, szPath, &hkey);
- if (rv != ERROR_SUCCESS) {
- SetLastError(rv);
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Could not create/open the %s registry key", szPath);
- return;
- }
-
- /* Attempt to add the ImagePath value to identify it as Apache */
- rv = RegSetValueEx(hkey, "ImagePath", 0, REG_SZ,
- (unsigned char *)szQuotedPath,
- strlen(szQuotedPath) + 1);
- if (rv != ERROR_SUCCESS) {
- SetLastError(rv);
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Unable to install service: "
- "Could not add ImagePath to %s Registry Key",
- service_name);
- RegCloseKey(hkey);
- return;
- }
-
- /* Attempt to add the DisplayName value for our service */
- rv = RegSetValueEx(hkey, "DisplayName", 0, REG_SZ,
- (unsigned char *)display_name,
- strlen(display_name) + 1);
- if (rv != ERROR_SUCCESS) {
- SetLastError(rv);
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Unable to install service: "
- "Could not add DisplayName to %s Registry Key",
- service_name);
- RegCloseKey(hkey);
- return;
- }
-
- RegCloseKey(hkey);
- }
-
- /* Both Platforms: Now store the args in the registry */
- if (ap_registry_set_service_args(p, regargc, regargv, service_name)) {
- return;
- }
-
- printf("The %s service has been %s successfully.\n",
- display_name, reconfig ? "reconfigured" : "installed");
-}
-
-void RemoveService(char *display_name)
-{
- char *service_name;
- BOOL success = FALSE;
-
- printf("Removing the %s service\n", display_name);
-
- /* Remove spaces from display name to create service name */
- service_name = get_service_name(display_name);
-
- if (isWindowsNT())
- {
- SC_HANDLE schService;
- SC_HANDLE schSCManager;
-
- schSCManager = OpenSCManager(
- NULL, // machine (NULL == local)
- NULL, // database (NULL == default)
- SC_MANAGER_ALL_ACCESS // access required
- );
- if (!schSCManager) {
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "OpenSCManager failed");
- return;
- }
-
- schService = OpenService(schSCManager, service_name, SERVICE_ALL_ACCESS);
-
- if (schService == NULL) {
- /* Could not open the service */
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "OpenService failed");
- }
- else {
- /* try to stop the service */
- ap_stop_service(schService);
-
- // now remove the service
- if (DeleteService(schService) == 0)
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "DeleteService failed");
- else
- success = TRUE;
- CloseServiceHandle(schService);
- }
- /* SCM removes registry parameters */
- CloseServiceHandle(schSCManager);
- }
- else /* !isWindowsNT() */
- {
- HKEY hkey;
- DWORD service_pid;
- DWORD rv;
- HWND hwnd;
-
- /* Locate the named window of class ApacheWin95ServiceMonitor
- * from the active top level windows
- */
- hwnd = FindWindow("ApacheWin95ServiceMonitor", service_name);
- if (hwnd && GetWindowThreadProcessId(hwnd, &service_pid))
- {
- int ticks = 120;
- char prefix[20];
- ap_snprintf(prefix, sizeof(prefix), "ap%ld", (long)service_pid);
- setup_signal_names(prefix);
- ap_start_shutdown();
- while (--ticks) {
- if (!IsWindow(hwnd))
- break;
- Sleep(1000);
- }
- }
-
- /* Open the RunServices key */
- rv = RegOpenKey(HKEY_LOCAL_MACHINE,
- "Software\\Microsoft\\Windows\\CurrentVersion\\RunServices",
- &hkey);
- if (rv != ERROR_SUCCESS) {
- SetLastError(rv);
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Could not open the RunServices registry key.");
- }
- else {
- /* Delete the registry value for this service */
- rv = RegDeleteValue(hkey, service_name);
- if (rv != ERROR_SUCCESS) {
- SetLastError(rv);
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Unable to remove service: "
- "Could not delete the RunServices entry.");
- }
- else
- success = TRUE;
- }
- RegCloseKey(hkey);
-
- /* Open the Services key */
- rv = RegOpenKey(HKEY_LOCAL_MACHINE,
- "SYSTEM\\CurrentControlSet\\Services", &hkey);
- if (rv != ERROR_SUCCESS) {
- rv = RegDeleteValue(hkey, service_name);
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Could not open the Services registry key.");
- success = FALSE;
- }
- else {
- /* Delete the registry key for this service */
- rv = RegDeleteKey(hkey, service_name);
- if (rv != ERROR_SUCCESS) {
- SetLastError(rv);
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "Unable to remove service: "
- "Could not delete the Services registry key.");
- success = FALSE;
- }
- }
- RegCloseKey(hkey);
- }
- if (success)
- printf("The %s service has been removed successfully.\n",
- display_name);
-}
-
-
-BOOL isWindowsNT(void)
-{
- static BOOL once = FALSE;
- static BOOL isNT = FALSE;
-
- if (!once)
- {
- OSVERSIONINFO osver;
- osver.dwOSVersionInfoSize = sizeof(osver);
- if (GetVersionEx(&osver))
- if (osver.dwPlatformId == VER_PLATFORM_WIN32_NT)
- isNT = TRUE;
- once = TRUE;
- }
- return isNT;
-}
-
-
-/*
- * A hack to determine if we're running as a service without waiting for
- * the SCM to fail.
- */
-
-BOOL isProcessService()
-{
- if (is_service != -1)
- return is_service;
- if (!isWindowsNT() || !AllocConsole()) {
- /* Don't assume anything, just yet */
- return FALSE;
- }
- FreeConsole();
- is_service = 1;
- return TRUE;
-}
-
-/* Determine is service_name is a valid service
- *
- * TODO: be nice if we tested that it is an 'apache' service, no?
- */
-
-BOOL isValidService(char *display_name) {
- char service_key[MAX_PATH];
- char *service_name;
- HKEY hkey;
-
- /* Remove spaces from display name to create service name */
- strcpy(service_key, "System\\CurrentControlSet\\Services\\");
- service_name = get_service_name(display_name);
- strcat(service_key, service_name);
-
- if (RegOpenKey(HKEY_LOCAL_MACHINE, service_key, &hkey) != ERROR_SUCCESS) {
- return FALSE;
- }
- RegCloseKey(hkey);
- return TRUE;
-}
-
-
-int send_signal_to_service(char *display_name, char *sig,
- int argc, char **argv)
-{
- DWORD service_pid;
- HANDLE hwnd;
- SC_HANDLE schService;
- SC_HANDLE schSCManager;
- char *service_name;
- int success = FALSE;
-
- enum { start, restart, stop, unknown } action;
- static char *param[] = { "start", "restart", "shutdown" };
- static char *participle[] = { "starting", "restarting", "stopping" };
- static char *past[] = { "started", "restarted", "stopped" };
-
- for (action = start; action < unknown; action++)
- if (!strcasecmp(sig, param[action]))
- break;
-
- if (action == unknown) {
- printf("signal must be start, restart, or shutdown\n");
- return FALSE;
- }
-
- service_name = get_service_name(display_name);
-
- if (isWindowsNT())
- {
- schSCManager = OpenSCManager(
- NULL, // machine (NULL == local)
- NULL, // database (NULL == default)
- SC_MANAGER_ALL_ACCESS // access required
- );
- if (!schSCManager) {
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "OpenSCManager failed");
- return FALSE;
- }
-
- schService = OpenService(schSCManager, service_name, SERVICE_ALL_ACCESS);
-
- if (schService == NULL) {
- /* Could not open the service */
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "OpenService failed");
- CloseServiceHandle(schSCManager);
- return FALSE;
- }
-
- if (!QueryServiceStatus(schService, &globdat.ssStatus)) {
- ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_WIN32ERROR, NULL,
- "QueryService failed");
- CloseServiceHandle(schService);
- CloseServiceHandle(schSCManager);
- }
- }
- else /* !isWindowsNT() */
- {
- /* Locate the window named service_name of class ApacheWin95ServiceMonitor
- * from the active top level windows
- */
- hwnd = FindWindow("ApacheWin95ServiceMonitor", service_name);
- if (hwnd && GetWindowThreadProcessId(hwnd, &service_pid))
- globdat.ssStatus.dwCurrentState = SERVICE_RUNNING;
- else
- globdat.ssStatus.dwCurrentState = SERVICE_STOPPED;
- }
-
- if (globdat.ssStatus.dwCurrentState == SERVICE_STOPPED
- && action == stop) {
- printf("The %s service is not started.\n", display_name);
- return FALSE;
- }
- else if (globdat.ssStatus.dwCurrentState == SERVICE_RUNNING
- && action == start) {
- printf("The %s service has already been started.\n", display_name);
- strcpy(sig, "");
- return FALSE;
- }
- else
- {
- printf("The %s service is %s.\n", display_name, participle[action]);
-
- if (isWindowsNT())
- {
- if (action == stop)
- success = ap_stop_service(schService);
- else if ((action == start)
- || ((action == restart)
- && (globdat.ssStatus.dwCurrentState
- == SERVICE_STOPPED)))
- {
- /* start NT service needs service args */
- char **args = malloc(argc * sizeof(char*));
- int i, j;
- for (i = 1, j = 0; i < argc; i++) {
- if ((argv[i][0] == '-') && ((argv[i][1] == 'k')
- || (argv[i][1] == 'n')))
- ++i;
- else
- args[j++] = argv[i];
- }
- success = ap_start_service(schService, j, args);
- }
- else if (action == restart)
- success = ap_restart_service(schService);
- }
- else /* !isWindowsNT()) */
- {
- char prefix[20];
- ap_snprintf(prefix, sizeof(prefix), "ap%ld", (long)service_pid);
- setup_signal_names(prefix);
-
- if (action == stop) {
- int ticks = 60;
- ap_start_shutdown();
- while (--ticks)
- {
- if (!IsWindow(hwnd)) {
- success = TRUE;
- break;
- }
- Sleep(1000);
- }
- }
- else if (action == restart)
- {
- /* This gets a bit tricky... start and restart (of stopped service)
- * will simply fall through and *THIS* process will fade into an
- * invisible 'service' process, detaching from the user's console.
- * We need to change the restart signal to "start", however,
- * if the service was not -yet- running, and we do return FALSE
- * to assure main() that we haven't done anything yet.
- */
- if (globdat.ssStatus.dwCurrentState == SERVICE_STOPPED)
- {
- printf("The %s service has %s.\n", display_name,
- past[action]);
- strcpy(sig, "start");
- return FALSE;
- }
-
- ap_start_restart(1);
- success = TRUE;
- }
- else /* action == start */
- {
- printf("The %s service is %s.\n", display_name,
- past[action]);
- return FALSE;
- }
- }
-
- if( success )
- printf("The %s service has %s.\n", display_name, past[action]);
- else
- printf("Failed to %s the %s service.\n", sig, display_name);
- }
-
- if (isWindowsNT()) {
- CloseServiceHandle(schService);
- CloseServiceHandle(schSCManager);
- }
- return success;
-}
-
-int ap_stop_service(SC_HANDLE schService)
-{
- if (ControlService(schService, SERVICE_CONTROL_STOP, &globdat.ssStatus)) {
- Sleep(1000);
- while (QueryServiceStatus(schService, &globdat.ssStatus)) {
- if (globdat.ssStatus.dwCurrentState == SERVICE_STOP_PENDING)
- Sleep(1000);
- else
- break;
- }
- }
- if (QueryServiceStatus(schService, &globdat.ssStatus))
- if (globdat.ssStatus.dwCurrentState == SERVICE_STOPPED)
- return TRUE;
- return FALSE;
-}
-
-int ap_start_service(SC_HANDLE schService, DWORD argc, char **argv) {
- if (StartService(schService, argc, argv)) {
- Sleep(1000);
- while(QueryServiceStatus(schService, &globdat.ssStatus)) {
- if(globdat.ssStatus.dwCurrentState == SERVICE_START_PENDING)
- Sleep(1000);
- else
- break;
- }
- }
- if (QueryServiceStatus(schService, &globdat.ssStatus))
- if (globdat.ssStatus.dwCurrentState == SERVICE_RUNNING)
- return TRUE;
- return FALSE;
-}
-
-int ap_restart_service(SC_HANDLE schService)
-{
- int ticks;
- if (ControlService(schService, SERVICE_APACHE_RESTART, &globdat.ssStatus))
- {
- ticks = 60;
- while (globdat.ssStatus.dwCurrentState == SERVICE_START_PENDING)
- {
- Sleep(1000);
- if (!QueryServiceStatus(schService, &globdat.ssStatus))
- return FALSE;
- if (!--ticks)
- break;
- }
- }
- if (globdat.ssStatus.dwCurrentState == SERVICE_RUNNING)
- return TRUE;
- return FALSE;
-}
-
-#endif /* WIN32 */
diff --git a/usr.sbin/httpd/src/os/win32/service.h b/usr.sbin/httpd/src/os/win32/service.h
deleted file mode 100644
index 75dcdf5ea4d..00000000000
--- a/usr.sbin/httpd/src/os/win32/service.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifndef SERVICE_H
-#define SERVICE_H
-
-#ifdef WIN32
-
-/* BIG RED WARNING: exit() is mapped to allow us to capture the exit
- * status. This header must only be included from modules linked into
- * the ApacheCore.dll - since it's a horrible behavior to exit() from
- * any module outside the main() block, and we -will- assume it's a
- * fatal error. No dynamically linked module will ever be able to find
- * the real_exit_code, and _will_ GP fault if it tries this macro.
- */
-
-#define exit(status) ((exit)((real_exit_code==2) ? (real_exit_code = (status)) \
- : ((real_exit_code = 0), (status))))
-extern int real_exit_code;
-void hold_console_open_on_error(void);
-
-int service_main(int (*main_fn)(int, char **), int argc, char **argv);
-int service95_main(int (*main_fn)(int, char **), int argc, char **argv,
- char *display_name);
-void service_set_status(int status);
-void service_cd();
-char *get_service_name(char *display_name);
-char *get_display_name(char *service_name);
-BOOL isProcessService();
-BOOL isValidService(char *display_name);
-void InstallService(pool *p, char *display_name, int argc, char **argv, int reconfig);
-void RemoveService(char *display_name);
-int send_signal_to_service(char *display_name, char *sig,
- int argc, char **argv);
-BOOL isWindowsNT(void);
-void ap_start_console_monitor(void);
-void ap_start_child_console(int is_child_of_service);
-
-#endif /* WIN32 */
-
-#endif /* SERVICE_H */
diff --git a/usr.sbin/httpd/src/os/win32/util_win32.c b/usr.sbin/httpd/src/os/win32/util_win32.c
deleted file mode 100644
index 6d89f4cc98e..00000000000
--- a/usr.sbin/httpd/src/os/win32/util_win32.c
+++ /dev/null
@@ -1,572 +0,0 @@
-/* ====================================================================
- * The Apache Software License, Version 1.1
- *
- * Copyright (c) 2000-2003 The Apache Software Foundation. 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. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more
- * information on the Apache Software Foundation, please see
- * <http://www.apache.org/>.
- *
- * Portions of this software are based upon public domain software
- * originally written at the National Center for Supercomputing Applications,
- * University of Illinois, Urbana-Champaign.
- */
-
-#ifdef WIN32
-
-#include <sys/stat.h>
-#include <stdarg.h>
-#include <time.h>
-#include <stdlib.h>
-
-#include "httpd.h"
-#include "http_log.h"
-
-/* Returns TRUE if the input string is a string
- * of one or more '.' characters.
- */
-static BOOL OnlyDots(char *pString)
-{
- char *c;
-
- if (*pString == '\0')
- return FALSE;
-
- for (c = pString;*c;c++)
- if (*c != '.')
- return FALSE;
-
- return TRUE;
-}
-
-
-/* Accepts as input a pathname, and tries to match it to an
- * existing path and return the pathname in the case that
- * is present on the existing path. This routine also
- * converts alias names to long names.
- *
- * WARNING: Folding to systemcase fails when /path/to/foo/../bar
- * is given and foo does not exist, is not a directory.
- */
-API_EXPORT(char *) ap_os_systemcase_filename(pool *pPool,
- const char *szFile)
-{
- char *buf, *t, *r;
- const char *q, *p;
- BOOL bDone = FALSE;
- BOOL bFileExists = TRUE;
- HANDLE hFind;
- WIN32_FIND_DATA wfd;
- size_t buflen;
- int slack = 0;
-
- if (!szFile || strlen(szFile) == 0)
- return ap_pstrdup(pPool, "");
-
- buflen = strlen(szFile);
- t = buf = ap_palloc(pPool, buflen + 1);
- q = szFile;
-
- /* If there is drive information, copy it over. */
- if (szFile[1] == ':') {
- /* Lowercase, so that when systemcase is used for
- * comparison, d: designations will match
- */
- *(t++) = tolower(*(q++));
- *(t++) = *(q++);
- }
- else if ((*q == '/') || (*q == '\\')) {
- /* Get past the root path (/ or //foo/bar/) so we can go
- * on to normalize individual path elements.
- */
- *(t++) = '\\', ++q;
- if ((*q == '/') || (*q == '\\')) /* UNC name */
- {
- /* Lower-case the machine name, so compares match.
- * FindFirstFile won't parse \\machine alone
- */
- *(t++) = '\\', ++q;
- for (p = q; *p && (*p != '/') && (*p != '\\'); ++p)
- /* continue */ ;
- if (*p || p > q)
- {
- /* Lower-case the machine name, so compares match.
- * FindFirstFile won't parse \\machine\share alone
- */
- memcpy(t, q, p - q);
- t[p - q] = '\0';
- strlwr(t);
- t += p - q;
- q = p;
- if (*p) {
- *(t++) = '\\', ++q;
- for (p = q; *p && (*p != '/') && (*p != '\\'); ++p)
- /* continue */ ;
- if (*p || p > q)
- {
- /* Copy the lower-cased share name. FindFirstFile
- * cannot not find a \\machine\share name only
- */
- memcpy(t, q, p - q);
- t[p - q] = '\0';
- strlwr(t);
- t += p - q;
- q = p;
- if (*p)
- *(t++) = '\\', ++q;
- else
- bFileExists = FALSE;
- }
- else
- bFileExists = FALSE;
- }
- else
- bFileExists = FALSE;
- }
- else
- bFileExists = FALSE;
- }
- }
-
- while (bFileExists) {
-
- /* parse past any leading slashes */
- for (; (*q == '/') || (*q == '\\'); ++q)
- *(t++) = '\\';
-
- /* break on end of string */
- if (!*q)
- break;
-
- /* get to the end of this path segment */
- for (p = q; *p && (*p != '/') && (*p != '\\'); ++p)
- /* continue */ ;
-
- /* copy the segment */
- memcpy(t, q, p - q);
- t[p - q] = '\0';
-
- /* Test for nasties that can exhibit undesired effects */
- if (strpbrk(t, "?\"<>*|:")) {
- t += p - q;
- q = p;
- break;
- }
-
- /* If the path exists so far, call FindFirstFile
- * again. However, if this portion of the path contains
- * only '.' charaters, skip the call to FindFirstFile
- * since it will convert '.' and '..' to actual names.
- * On win32, '...' is an alias for '..', so we gain
- * a bit of slack.
- */
- if (*t == '.' && OnlyDots(t)) {
- if (p - q == 3) {
- t += 2;
- q = p;
- ++slack;
- }
- else {
- t += p - q;
- q = p;
- }
- /* Paths of 4 dots or more are invalid */
- if (p - q > 3)
- break;
- }
- else {
- if ((hFind = FindFirstFile(buf, &wfd)) == INVALID_HANDLE_VALUE) {
- t += p - q;
- q = p;
- break;
- }
- else {
- size_t fnlen = strlen(wfd.cFileName);
- FindClose(hFind);
- /* the string length just changed, could have shrunk
- * (trailing spaces or dots) or could have grown
- * (longer filename aliases). Realloc as necessary
- */
- slack -= fnlen - (p - q);
- if (slack < 0) {
- char *n;
- slack += buflen + fnlen - (p - q);
- buflen += buflen + fnlen - (p - q);
- n = ap_palloc(pPool, buflen + 1);
- memcpy (n, buf, t - buf);
- t = n + (t - buf);
- buf = n;
- }
- memcpy(t, wfd.cFileName, fnlen);
- t += fnlen;
- q = p;
- if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
- break;
- }
- }
- }
-
- /* Convert all parsed '\'s to '/' for canonical form (doesn't touch
- * the non-existant portion of the path whatsoever.)
- */
- for (r = buf; r < t; ++r) {
- if (*r == '\\')
- *r = '/';
- }
-
- /* Copy the non-existant portion (minimally nul-terminates the string) */
- strcpy(t, q);
-
- return buf;
-}
-
-
-/* Perform canonicalization with the exception that the
- * input case is preserved.
- */
-API_EXPORT(char *) ap_os_case_canonical_filename(pool *pPool,
- const char *szFile)
-{
- char *pNewStr;
- char *s;
- char *p;
- char *q;
-
- if (szFile == NULL || strlen(szFile) == 0)
- return ap_pstrdup(pPool, "");
-
- pNewStr = ap_pstrdup(pPool, szFile);
-
- /* Change all '\' characters to '/' characters.
- * While doing this, remove any trailing '.'.
- * Also, blow away any directories with 3 or
- * more '.'
- */
- for (p = pNewStr,s = pNewStr; *s; s++,p++) {
- if (*s == '\\' || *s == '/') {
-
- q = p;
- while (p > pNewStr && *(p-1) == '.')
- p--;
-
- if (p == pNewStr && q-p <= 2 && *p == '.')
- p = q;
- else if (p > pNewStr && p < q && *(p-1) == '/') {
- if (q-p > 2)
- p--;
- else
- p = q;
- }
-
- *p = '/';
- }
- else {
- *p = *s;
- }
- }
- *p = '\0';
-
- /* Blow away any final trailing '.' since on Win32
- * foo.bat == foo.bat. == foo.bat... etc.
- * Also blow away any trailing spaces since
- * "filename" == "filename "
- */
- q = p;
- while (p > pNewStr && (*(p-1) == '.' || *(p-1) == ' '))
- p--;
- if ((p > pNewStr) ||
- (p == pNewStr && q-p > 2))
- *p = '\0';
-
-
- /* One more security issue to deal with. Win32 allows
- * you to create long filenames. However, alias filenames
- * are always created so that the filename will
- * conform to 8.3 rules. According to the Microsoft
- * Developer's network CD (1/98)
- * "Automatically generated aliases are composed of the
- * first six characters of the filename plus ~n
- * (where n is a number) and the first three characters
- * after the last period."
- * Here, we attempt to detect and decode these names.
- *
- * XXX: Netware network clients may have alternate short names,
- * simply truncated, with no embedded '~'. Further, this behavior
- * can be modified on WinNT volumes. This was not a safe test,
- * therefore exclude the '~' pretest.
- */
-#ifdef WIN32_SHORT_FILENAME_INSECURE_BEHAVIOR
- p = strchr(pNewStr, '~');
- if (p != NULL)
-#endif
- /* ap_os_systemcase_filename now changes the case of only
- * the pathname elements that are found.
- */
- pNewStr = ap_os_systemcase_filename(pPool, pNewStr);
-
- return pNewStr;
-}
-
-/* Perform complete canonicalization.
- */
-API_EXPORT(char *) ap_os_canonical_filename(pool *pPool, const char *szFile)
-{
- char *pNewName;
- pNewName = ap_os_case_canonical_filename(pPool, szFile);
- strlwr(pNewName);
- return pNewName;
-}
-
-
-/*
- * ap_os_is_filename_valid is given a filename, and returns 0 if the filename
- * is not valid for use on this system. On Windows, this means it fails any
- * of the tests below. Otherwise returns 1.
- *
- * Test for filename validity on Win32. This is of tests come in part from
- * the MSDN article at "Technical Articles, Windows Platform, Base Services,
- * Guidelines, Making Room for Long Filenames" although the information
- * in MSDN about filename testing is incomplete or conflicting. There is a
- * similar set of tests in "Technical Articles, Windows Platform, Base Services,
- * Guidelines, Moving Unix Applications to Windows NT".
- *
- * The tests are:
- *
- * 1) total path length greater than MAX_PATH
- *
- * 2) anything using the octets 0-31 or characters " < > | :
- * (these are reserved for Windows use in filenames. In addition
- * each file system has its own additional characters that are
- * invalid. See KB article Q100108 for more details).
- *
- * 3) anything ending in "." (no matter how many)
- * (filename doc, doc. and doc... all refer to the same file)
- *
- * 4) any segment in which the basename (before first period) matches
- * one of the DOS device names
- * (the list comes from KB article Q100108 although some people
- * reports that additional names such as "COM5" are also special
- * devices).
- *
- * If the path fails ANY of these tests, the result must be to deny access.
- */
-
-API_EXPORT(int) ap_os_is_filename_valid(const char *file)
-{
- const char *segstart;
- unsigned int seglength;
- const char *pos;
- static const char * const invalid_characters = "?\"<>*|:";
- static const char * const invalid_filenames[] = {
- "CON", "AUX", "COM1", "COM2", "COM3",
- "COM4", "LPT1", "LPT2", "LPT3", "PRN", "NUL", NULL
- };
-
- /* Test 1 */
- if (strlen(file) >= MAX_PATH) {
- /* Path too long for Windows. Note that this test is not valid
- * if the path starts with //?/ or \\?\. */
- return 0;
- }
-
- pos = file;
-
- /* Skip any leading non-path components. This can be either a
- * drive letter such as C:, or a UNC path such as \\SERVER\SHARE\.
- * We continue and check the rest of the path based on the rules above.
- * This means we could eliminate valid filenames from servers which
- * are not running NT (such as Samba).
- */
-
- if (pos[0] && pos[1] == ':') {
- /* Skip leading drive letter */
- pos += 2;
- }
- else {
- if ((pos[0] == '\\' || pos[0] == '/') &&
- (pos[1] == '\\' || pos[1] == '/')) {
- /* Is a UNC, so skip the server name and share name */
- pos += 2;
- while (*pos && *pos != '/' && *pos != '\\')
- pos++;
- if (!*pos) {
- /* No share name */
- return 0;
- }
- pos++; /* Move to start of share name */
- while (*pos && *pos != '/' && *pos != '\\')
- pos++;
- if (!*pos) {
- /* No path information */
- return 0;
- }
- }
- }
-
- while (*pos) {
- unsigned int idx;
- unsigned int baselength;
-
- while (*pos == '/' || *pos == '\\') {
- pos++;
- }
- if (*pos == '\0') {
- break;
- }
- segstart = pos; /* start of segment */
- while (*pos && *pos != '/' && *pos != '\\') {
- pos++;
- }
- seglength = pos - segstart;
- /*
- * Now we have a segment of the path, starting at position "segstart"
- * and length "seglength"
- */
-
- /* Test 2 */
- for (idx = 0; idx < seglength; idx++) {
- if ((segstart[idx] > 0 && segstart[idx] < 32) ||
- strchr(invalid_characters, segstart[idx])) {
- return 0;
- }
- }
-
- /* Test 3 */
- if (segstart[seglength-1] == '.') {
- return 0;
- }
-
- /* Test 4 */
- for (baselength = 0; baselength < seglength; baselength++) {
- if (segstart[baselength] == '.') {
- break;
- }
- }
-
- /* baselength is the number of characters in the base path of
- * the segment (which could be the same as the whole segment length,
- * if it does not include any dot characters). */
- if (baselength == 3 || baselength == 4) {
- for (idx = 0; invalid_filenames[idx]; idx++) {
- if (strlen(invalid_filenames[idx]) == baselength &&
- !strnicmp(invalid_filenames[idx], segstart, baselength)) {
- return 0;
- }
- }
- }
- }
-
- return 1;
-}
-
-
-API_EXPORT(ap_os_dso_handle_t) ap_os_dso_load(const char *module_name)
-{
- UINT em;
- ap_os_dso_handle_t dsoh;
- char path[MAX_PATH], *p;
- /* Load the module...
- * per PR2555, the LoadLibraryEx function is very picky about slashes.
- * Debugging on NT 4 SP 6a reveals First Chance Exception within NTDLL.
- * LoadLibrary in the MS PSDK also reveals that it -explicitly- states
- * that backslashes must be used.
- *
- * Transpose '\' for '/' in the filename.
- */
- ap_cpystrn(path, module_name, MAX_PATH);
- p = path;
- while (p = strchr(p, '/'))
- *p = '\\';
-
- /* First assume the dso/dll's required by -this- dso are sitting in the
- * same path or can be found in the usual places. Failing that, let's
- * let that dso look in the apache root.
- */
- em = SetErrorMode(SEM_FAILCRITICALERRORS);
- dsoh = LoadLibraryEx(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
- if (!dsoh) {
- dsoh = LoadLibraryEx(path, NULL, 0);
- }
- SetErrorMode(em);
- return dsoh;
-}
-
-API_EXPORT(const char *) ap_os_dso_error(void)
-{
- int len, nErrorCode;
- static char errstr[120];
- /* This is -not- threadsafe code, but it's about the best we can do.
- * mostly a potential problem for isapi modules, since LoadModule
- * errors are handled within a single config thread.
- */
-
- nErrorCode = GetLastError();
- len = ap_snprintf(errstr, sizeof(errstr), "(%d) ", nErrorCode);
-
- len += FormatMessage(
- FORMAT_MESSAGE_FROM_SYSTEM,
- NULL,
- nErrorCode,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
- (LPTSTR) errstr + len,
- sizeof(errstr) - len,
- NULL
- );
- /* FormatMessage may have appended a newline (\r\n). So remove it
- * and use ": " instead like the Unix errors. The error may also
- * end with a . before the return - if so, trash it.
- */
- if (len > 1 && errstr[len-2] == '\r' && errstr[len-1] == '\n') {
- if (len > 2 && errstr[len-3] == '.')
- len--;
- errstr[len-2] = ':';
- errstr[len-1] = ' ';
- }
- return errstr;
-}
-
-#endif /* WIN32 */ \ No newline at end of file