summaryrefslogtreecommitdiffstats
path: root/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3
diff options
context:
space:
mode:
Diffstat (limited to 'rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3')
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile114
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.apxs42
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.apxs.in42
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.in114
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.libdir4
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.netware287
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.tmpl53
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.vc256
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/NWGNUmakefile44
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/NWGNUmakefile.mak313
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/libjk.module5
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.c3338
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.dsp295
-rw-r--r--rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.exp1
14 files changed, 0 insertions, 4908 deletions
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile
deleted file mode 100644
index 5847e639..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile
+++ /dev/null
@@ -1,114 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-## configure should make the Makefile out of this file.
-
-srcdir=.
-top_srcdir=..
-
-APXS=/bottlenecks/rubbos/app/apache2/bin/apxs
-OS=linux
-JAVA_HOME=/bottlenecks/rubbos/app/jdk1.6.0_27
-CP=/bin/cp
-APACHE_DIR=/bottlenecks/rubbos/app/apache2
-MKDIR=/bin/mkdir
-DESTDIR=/bottlenecks/rubbos/app/apache2
-LIBTOOL=/bin/bash /bottlenecks/rubbos/app/apache2/build/libtool --silent
-CP=/bin/cp
-CC=gcc
-
-top_builddir=..
-
-OEXT=.lo
-libexecdir=${APACHE_DIR}/libexec
-JK_DIR := ..
-BUILD_DIR = ${JK_DIR}/../build/jk/apache13
-
-APACHE_FILES = Makefile.tmpl Makefile.libdir libjk.module
-
-JK=../common/
-JK_INCL=-DUSE_APACHE_MD5 -I ${top_srcdir}/common
-JAVA_INCL=-I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/${OS}
-JAVA_LIB=-L ${JAVA_HOME}/jre/lib/${ARCH} -L ${JAVA_HOME}/lib/${ARCH}/native_threads
-APACHE_CFLAGS=-I/bottlenecks/rubbos/app/apache2/include -g -O2 -pthread -DHAVE_APR -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -DHAVE_CONFIG_H -DHAVE_JNI -D_REENTRANT -D_GNU_SOURCE -I${top_srcdir}/common
-
-# Compile commands
-JK_CFLAGS = $(JK_INCL) $(JAVA_INCL) $(APACHE_CFLAGS)
-COMPILE = $(CC)
-SH_COMPILE = $(LIBTOOL) --mode=compile $(COMPILE) $(JK_CFLAGS)
-MOD_LINK = $(LIBTOOL) --mode=link $(CC)
-
-include ../common/list.mk
-
-all: mod_jk.so
-
-#
-# install part
-#
-install: install_dynamic
-
-install_static: mod_jk.a
- @echo ""
- @echo "Copying files to Apache Modules Directory..."
- -${MKDIR} ${APACHE_DIR}/src/modules/jk
- ${LIBTOOL} --mode=install ${CP} $< ${APACHE_DIR}/src/modules/jk/mod_jk.a
- -${CP} Makefile.tmpl ${APACHE_DIR}/src/modules/jk
- -${CP} Makefile.libdir ${APACHE_DIR}/src/modules/jk
- -${CP} mod_jk.c ${APACHE_DIR}/src/modules/jk
- -${MKDIR} ${APACHE_DIR}/src/modules/jk/include
- -${CP} ../common/*.h ${APACHE_DIR}/src/modules/jk/include
- @echo ""
- @echo "Please be sure to re-compile Apache..."
- @echo ""
- @echo "cd ${APACHE_DIR}"
- @echo "./config.status --activate-module=src/modules/jk/libjk.a \\"
- @echo " --enable-module=dir \\"
- @echo " --disable-shared=dir"
- @echo "make"
- @echo ""
-install_dynamic: mod_jk.la
- @echo ""
- @echo "Copying files to Apache libexec Directory..."
- ${LIBTOOL} --mode=install ${CP} $< ${libexecdir}/mod_jk.so
-
-#
-# Clean part.
-#
-clean:
- rm -f *.o *.lo *.a *.la *.so *.so.* *.slo
- rm -rf .libs
-
-maintainer-clean: clean
-
-#
-# Compile part.
-#
-mod_jk.la: mod_jk.lo $(APACHE_OBJECTS)
- ${MOD_LINK} -o $@ -module -rpath ${libexecdir} $^
-mod_jk.a: mod_jk.lo $(APACHE_OBJECTS)
- ${MOD_LINK} -o $@ $^
-
-mod_jk.so: mod_jk.la
- ../scripts/build/instdso.sh SH_LIBTOOL='$(LIBTOOL)' mod_jk.la `pwd`
-
-#
-# Common part.
-#
-mod_jk.lo: mod_jk.c
- ${SH_COMPILE} -c mod_jk.c -o $@
-
-.c.lo:
- ${SH_COMPILE} -c $< -o $@
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.apxs b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.apxs
deleted file mode 100644
index 0d8ab6e0..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.apxs
+++ /dev/null
@@ -1,42 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-## configure should make the Makefile out of this file.
-
-APXS=/bottlenecks/rubbos/app/apache2/bin/apxs
-OS=linux
-JAVA_HOME=/bottlenecks/rubbos/app/jdk1.6.0_27
-APXSLDFLAGS=
-APXSCFLAGS= -g -O2 -pthread -DHAVE_APR -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr/include -I/bottlenecks/rubbos/app/httpd-2.0.64/srclib/apr-util/include -DHAVE_CONFIG_H -DHAVE_JNI
-
-JK=../common/
-JK_INCL=-DUSE_APACHE_MD5 -I ${JK}
-JAVA_INCL=-I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/${OS}
-JAVA_LIB=-L ${JAVA_HOME}/jre/lib/${ARCH} -L ${JAVA_HOME}/lib/${ARCH}/native_threads
-
-## read the object (.c) from the list file.
-OEXT=.c
-include ../common/list.mk
-
-all: mod_jk.so
-
-mod_jk.so:
- $(APXS) -c -o $@ -Wc,"${APXSCFLAGS} ${JK_INCL}" ${JAVA_INCL} ${APXSLDFLAGS} mod_jk.c ${APACHE_OBJECTS}
-
-clean:
- rm -f *.o *.lo *.a *.la *.so *.so.* *.slo
- rm -rf .libs
-
-maintainer-clean: clean
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.apxs.in b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.apxs.in
deleted file mode 100644
index 3563088e..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.apxs.in
+++ /dev/null
@@ -1,42 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-## configure should make the Makefile out of this file.
-
-APXS=@APXS@
-OS=@OS@
-JAVA_HOME=@JAVA_HOME@
-APXSLDFLAGS=@APXSLDFLAGS@
-APXSCFLAGS=@APXSCFLAGS@
-
-JK=../common/
-JK_INCL=-DUSE_APACHE_MD5 -I ${JK}
-JAVA_INCL=-I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/${OS}
-JAVA_LIB=-L ${JAVA_HOME}/jre/lib/${ARCH} -L ${JAVA_HOME}/lib/${ARCH}/native_threads
-
-## read the object (.c) from the list file.
-OEXT=.c
-include ../common/list.mk
-
-all: mod_jk.so
-
-mod_jk.so:
- $(APXS) -c -o $@ -Wc,"${APXSCFLAGS} ${JK_INCL}" ${JAVA_INCL} ${APXSLDFLAGS} mod_jk.c ${APACHE_OBJECTS}
-
-clean:
- rm -f *.o *.lo *.a *.la *.so *.so.* *.slo
- rm -rf .libs
-
-maintainer-clean: clean
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.in b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.in
deleted file mode 100644
index af597e4b..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.in
+++ /dev/null
@@ -1,114 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-## configure should make the Makefile out of this file.
-
-srcdir=@srcdir@
-top_srcdir=@top_srcdir@
-VPATH=@srcdir@
-APXS=@APXS@
-OS=@OS@
-JAVA_HOME=@JAVA_HOME@
-CP=@CP@
-APACHE_DIR=@APACHE_DIR@
-MKDIR=@MKDIR@
-DESTDIR=@APACHE_DIR@
-LIBTOOL=@LIBTOOL@
-CP=@CP@
-CC=@CC@
-
-top_builddir=..
-
-OEXT=.lo
-libexecdir=${APACHE_DIR}/libexec
-JK_DIR := ..
-BUILD_DIR = ${JK_DIR}/../build/jk/apache13
-
-APACHE_FILES = Makefile.tmpl Makefile.libdir libjk.module
-
-JK=../common/
-JK_INCL=-DUSE_APACHE_MD5 -I ${top_srcdir}/common
-JAVA_INCL=-I ${JAVA_HOME}/include -I ${JAVA_HOME}/include/${OS}
-JAVA_LIB=-L ${JAVA_HOME}/jre/lib/${ARCH} -L ${JAVA_HOME}/lib/${ARCH}/native_threads
-APACHE_CFLAGS=@apache_include@ @APXSCFLAGS@ @APXSCPPFLAGS@ -I${top_srcdir}/common
-
-# Compile commands
-JK_CFLAGS = $(JK_INCL) $(JAVA_INCL) $(APACHE_CFLAGS)
-COMPILE = $(CC)
-SH_COMPILE = $(LIBTOOL) --mode=compile $(COMPILE) $(JK_CFLAGS)
-MOD_LINK = $(LIBTOOL) --mode=link $(CC) @APXSLDFLAGS@
-
-include ../common/list.mk
-
-all: @LIB_JK_TYPE@
-
-#
-# install part
-#
-install: @INSTALL_TYPE@
-
-install_static: mod_jk.a
- @echo ""
- @echo "Copying files to Apache Modules Directory..."
- -${MKDIR} ${APACHE_DIR}/src/modules/jk
- ${LIBTOOL} --mode=install ${CP} $< ${APACHE_DIR}/src/modules/jk/mod_jk.a
- -${CP} Makefile.tmpl ${APACHE_DIR}/src/modules/jk
- -${CP} Makefile.libdir ${APACHE_DIR}/src/modules/jk
- -${CP} mod_jk.c ${APACHE_DIR}/src/modules/jk
- -${MKDIR} ${APACHE_DIR}/src/modules/jk/include
- -${CP} ../common/*.h ${APACHE_DIR}/src/modules/jk/include
- @echo ""
- @echo "Please be sure to re-compile Apache..."
- @echo ""
- @echo "cd ${APACHE_DIR}"
- @echo "./config.status --activate-module=src/modules/jk/libjk.a \\"
- @echo " --enable-module=dir \\"
- @echo " --disable-shared=dir"
- @echo "make"
- @echo ""
-install_dynamic: mod_jk.la
- @echo ""
- @echo "Copying files to Apache libexec Directory..."
- ${LIBTOOL} --mode=install ${CP} $< ${libexecdir}/mod_jk.so
-
-#
-# Clean part.
-#
-clean:
- rm -f *.o *.lo *.a *.la *.so *.so.* *.slo
- rm -rf .libs
-
-maintainer-clean: clean
-
-#
-# Compile part.
-#
-mod_jk.la: mod_jk.lo $(APACHE_OBJECTS)
- ${MOD_LINK} -o $@ -module -rpath ${libexecdir} $^
-mod_jk.a: mod_jk.lo $(APACHE_OBJECTS)
- ${MOD_LINK} -o $@ $^
-
-mod_jk.so: mod_jk.la
- ../scripts/build/instdso.sh SH_LIBTOOL='$(LIBTOOL)' mod_jk.la `pwd`
-
-#
-# Common part.
-#
-mod_jk.lo: mod_jk.c
- ${SH_COMPILE} -c mod_jk.c -o $@
-
-.c.lo:
- ${SH_COMPILE} -c $< -o $@
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.libdir b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.libdir
deleted file mode 100644
index 7b525401..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.libdir
+++ /dev/null
@@ -1,4 +0,0 @@
-This is a place-holder which indicates to Configure that it shouldn't
-provide the default targets when building the Makefile in this directory.
-Instead it'll just prepend all the important variable definitions, and
-copy the Makefile.tmpl onto the end.
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.netware b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.netware
deleted file mode 100644
index 790f5d19..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.netware
+++ /dev/null
@@ -1,287 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-#
-# Makefile for mod_jk (NetWare version - gnu make)
-# created by Guenter Knauf <fuankg@apache.org>
-#
-
-# Edit the path below to point to the base of your Apache 1.3 includes.
-ifndef AP_HOME
-AP_HOME = c:/projects/cw/apache_1.3.37
-endif
-# Edit the path below to point to the base of your NetWare Java SDK.
-ifndef NW_JDK
-NW_JDK = c:/projects/sdks/java-nw
-endif
-# Edit the path below to point to the base of your Novell NDK.
-ifndef NDKBASE
-NDKBASE = c:/novell
-endif
-INSTDIR = s:/apache/modules
-
-# Edit the vars below to change NLM target settings.
-TARGET = mod_jk
-VERSION = $(JK_VERSION)
-COPYR = Licensed under the Apache License, Version 2.0
-DESCR = Apache $(AP_VERSION_STR) plugin for Tomcat $(JK_VERSION_STR)
-MTSAFE = NO
-STACK = 65536
-#SCREEN = NONE
-EXPORTS = jk_module
-#AP_PRE = YES
-#MODULES =
-
-# Edit the var below to point to your lib architecture.
-ifndef LIBARCH
-LIBARCH = CLIB
-# LIBARCH = LIBC
-endif
-
-# must be equal to DEBUG or NDEBUG
-DB = NDEBUG
-# DB = DEBUG
-# Optimization: -O<n> or debugging: -g
-ifeq ($(DB),NDEBUG)
- OPT = -O2
- OBJDIR = release
-else
- OPT = -g
- OBJDIR = debug
-endif
-
-# Include the version info retrieved from jk_version.h
--include $(OBJDIR)/version.inc
-
-# The following line defines your compiler.
-ifdef METROWERKS
- CC = mwccnlm
-else
- CC = gcc
- GCC_ROOT = $(MINGNLM)
-endif
-# RM = rm -f
-#CP = cp -fv
-AWK = awk
-
-# Global flags for all compilers
-CFLAGS = $(OPT) -D$(DB) -DNETWARE -nostdinc
-
-ifeq ($(CC),mwccnlm)
-LD = mwldnlm
-LDFLAGS = -nostdlib $(OBJS) $(PRELUDE) $(LDLIBS) -o $@ -commandfile
-CFLAGS += -gccinc -inline off -opt nointrinsics
-#CFLAGS += -w on
-ifeq ($(LIBARCH),LIBC)
- PRELUDE = $(SDK_LIBC)/imports/libcpre.o
- CFLAGS += -align 4 -inst mmx -proc 586
-# CFLAGS += -D__ANSIC__
-else
-# PRELUDE = $(SDK_CLIB)/imports/clibpre.obj
- PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
- LDLIBS = "$(METROWERKS)/Novell Support/libraries/runtime/mwcrtl.lib"
-# CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
- CFLAGS += -align 1 -proc 586
-endif
-else
-LD = nlmconv
-LDFLAGS = -T
-CFLAGS += -fno-builtin -fpack-struct -fpcc-struct-return
-CFLAGS += -w
-#CFLAGS += -Wall -Wno-main # -pedantic
-ifeq ($(LIBARCH),LIBC)
- PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
-# CFLAGS += -D__ANSIC__
-else
-# PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o
- PRELUDE = $(NDK_ROOT)/pre/prelude.o
- LDLIBS = $(GCC_ROOT)/lib/gcc-lib/i586-netware/3.2.3/libgcc.a
- CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
-endif
-endif
-CFLAGS += -include "precomp.h"
-
-ifeq ($(AP_PRE),YES)
- PRELUDE = $(OBJDIR)/libpre.o
-endif
-
-
-NDK_ROOT = $(NDKBASE)/ndk
-SDK_CLIB = $(NDK_ROOT)/nwsdk
-SDK_LIBC = $(NDK_ROOT)/libc
-JKCOMMON = ../common
-
-INCLUDES = -I$(AP_HOME)/src/include -I$(AP_HOME)/src/os/netware
-INCLUDES += -I$(JKCOMMON) -I$(NW_JDK)/include -I$(NW_JDK)/include/netware
-
-ifeq ($(LIBARCH),LIBC)
- INCLUDES += -I$(SDK_LIBC)/include
- INCLUDES += -I$(SDK_LIBC)/include/winsock
-else
- INCLUDES += -I$(SDK_CLIB)/include/nlm -I$(SDK_CLIB)/include
- INCLUDES += -I$(NDKBASE)/ws295sdk/include
- CFLAGS += -DNETDB_USE_INTERNET
- CFLAGS += -DNO_GETTIMEOFDAY
- CFLAGS += -DJK_PREFORK
-endif
-CFLAGS += $(INCLUDES)
-
-ifeq ($(MTSAFE),YES)
- XDCDATA = $(AP_HOME)/src/os/netware/apache.xdc
-endif
-
-ifeq ($(findstring linux,$(OSTYPE)),linux)
-DL = '
-#-include $(NDKBASE)/nlmconv/ncpfs.inc
-endif
-
-OBJS = \
- $(OBJDIR)/$(TARGET).o \
- $(OBJDIR)/jk_nwmain.o \
- $(OBJDIR)/jk_ajp12_worker.o \
- $(OBJDIR)/jk_ajp13.o \
- $(OBJDIR)/jk_ajp13_worker.o \
- $(OBJDIR)/jk_ajp14.o \
- $(OBJDIR)/jk_ajp14_worker.o \
- $(OBJDIR)/jk_ajp_common.o \
- $(OBJDIR)/jk_connect.o \
- $(OBJDIR)/jk_context.o \
- $(OBJDIR)/jk_jni_worker.o \
- $(OBJDIR)/jk_lb_worker.o \
- $(OBJDIR)/jk_map.o \
- $(OBJDIR)/jk_md5.o \
- $(OBJDIR)/jk_msg_buff.o \
- $(OBJDIR)/jk_pool.o \
- $(OBJDIR)/jk_shm.o \
- $(OBJDIR)/jk_sockbuf.o \
- $(OBJDIR)/jk_status.o \
- $(OBJDIR)/jk_uri_worker_map.o \
- $(OBJDIR)/jk_url.o \
- $(OBJDIR)/jk_util.o \
- $(OBJDIR)/jk_worker.o
-
-#OBJS += $(OBJDIR)/ap_snprintf.o
-
-vpath %.c . $(JKCOMMON) $(AP_HOME)/src/os/netware
-
-
-all: $(OBJDIR) $(OBJDIR)/version.inc $(OBJDIR)/$(TARGET).nlm
-
-$(OBJDIR)/%.o: %.c
- @echo Compiling $<
- @$(CC) $(CFLAGS) -c $< -o $@
-
-$(OBJDIR)/version.inc: $(JKCOMMON)/jk_version.h $(AP_HOME)/src/include/httpd.h $(OBJDIR)
- @echo Creating $@
- @$(AWK) -f ../../support/get_ver.awk $< $(AP_HOME)/src/include/httpd.h > $@
-
-dist: all
- -$(RM) $(OBJDIR)/*.o $(OBJDIR)/$(TARGET).map $(OBJDIR)/$(TARGET).ncv
- -$(RM) $(OBJDIR)/$(TARGET).def $(OBJDIR)/version.inc
-# -$(CP) ../changes.txt $(OBJDIR)/
-
-install: all
- @[ -d $(INSTDIR) ] || mkdir $(INSTDIR)
- @$(CP) $(TARGET).nlm $(INSTDIR)
-
-clean:
- -$(RM) -r $(OBJDIR)
-
-$(OBJDIR):
- @mkdir $(OBJDIR)
-
-#$(OBJDIR)/$(TARGET).nlm: $(OBJS) $(OBJDIR)/$(TARGET).def $(XDCDATA) $(PRELUDE)
-$(OBJDIR)/$(TARGET).nlm: $(OBJS) $(OBJDIR)/$(TARGET).def $(XDCDATA)
- @echo Linking $@
- @-$(RM) $@
- @$(LD) $(LDFLAGS) $(OBJDIR)/$(TARGET).def
-
-$(OBJDIR)/%.xdc: Makefile.netware
- @echo Creating $@
- @$(MPKXDC) $(XDCOPT) $@
-
-$(OBJDIR)/%.def: Makefile.netware
- @echo $(DL)# DEF file for linking with $(LD)$(DL) > $@
- @echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
- @echo $(DL)# All your changes will be lost!!$(DL) >> $@
- @echo $(DL)#$(DL) >> $@
- @echo $(DL)copyright "$(COPYR)"$(DL) >> $@
- @echo $(DL)description "$(DESCR)"$(DL) >> $@
- @echo $(DL)version $(VERSION)$(DL) >> $@
-ifdef NLMTYPE
- @echo $(DL)type $(NLMTYPE)$(DL) >> $@
-endif
-ifdef STACK
- @echo $(DL)stack $(STACK)$(DL) >> $@
-endif
-ifdef SCREEN
- @echo $(DL)screenname "$(SCREEN)"$(DL) >> $@
-else
- @echo $(DL)screenname "DEFAULT"$(DL) >> $@
-endif
-ifeq ($(DB),DEBUG)
- @echo $(DL)debug$(DL) >> $@
-endif
- @echo $(DL)threadname "$*"$(DL) >> $@
-ifdef XDCDATA
- @echo $(DL)xdcdata $(XDCDATA)$(DL) >> $@
-endif
-ifeq ($(LIBARCH),CLIB)
-ifeq ($(AP_PRE),YES)
- @echo $(DL)start _lib_start$(DL) >> $@
- @echo $(DL)exit _lib_stop$(DL) >> $@
-else
- @echo $(DL)start _Prelude$(DL) >> $@
- @echo $(DL)exit _Stop$(DL) >> $@
-endif
- @echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/clib.imp$(DL) >> $@
- @echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/threads.imp$(DL) >> $@
- @echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/nlmlib.imp$(DL) >> $@
- @echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/socklib.imp$(DL) >> $@
-# @echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/ws2nlm.imp$(DL) >> $@
- @echo $(DL)import @$(AP_HOME)/src/os/netware/apachecore.imp$(DL) >> $@
- @echo $(DL)module clib$(DL) >> $@
-else
- @echo $(DL)flag_on 64$(DL) >> $@
- @echo $(DL)pseudopreemption$(DL) >> $@
- @echo $(DL)start _LibCPrelude$(DL) >> $@
- @echo $(DL)exit _LibCPostlude$(DL) >> $@
- @echo $(DL)check _LibCCheckUnload$(DL) >> $@
- @echo $(DL)import @$(NDK_ROOT)/libc/imports/libc.imp$(DL) >> $@
- @echo $(DL)import @$(NDK_ROOT)/libc/imports/netware.imp$(DL) >> $@
-# @echo $(DL)import @$(NDK_ROOT)/libc/imports/ws2nlm.imp$(DL) >> $@
- @echo $(DL)import @$(AP_HOME)/src/os/netware/apachecore.imp$(DL) >> $@
- @echo $(DL)module libc$(DL) >> $@
-endif
-ifdef MODULES
- @echo $(DL)module $(MODULES)$(DL) >> $@
-endif
-ifdef EXPORTS
- @echo $(DL)export $(EXPORTS)$(DL) >> $@
-endif
-ifdef IMPORTS
- @echo $(DL)import $(IMPORTS)$(DL) >> $@
-endif
-ifeq ($(LD),nlmconv)
- @echo $(DL)input $(OBJS)$(DL) >> $@
- @echo $(DL)input $(PRELUDE)$(DL) >> $@
-ifdef LDLIBS
- @echo $(DL)input $(LDLIBS)$(DL) >> $@
-endif
- @echo $(DL)output $*.nlm$(DL) >> $@
-endif
-
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.tmpl b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.tmpl
deleted file mode 100644
index cd84aca1..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.tmpl
+++ /dev/null
@@ -1,53 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-##
-## Apache 1.3 Makefile template for mod_jk
-##
-LIB=libjk.$(LIBEXT)
-JK_INCLUDES=$(INCLUDES) -I./include
-
-OBJS=mod_jk.o
-OBJS_LIB=mod_jk.a
-
-SHLIB_OBJS=mod_jk.so-o
-SHLIB_OBJS_LIB=mod_jk.a
-
-all: ${LIB}
-
-# build the static library by merging the object files
-libjk.a: $(OBJS) $(OBJS_LIB)
- cp $(OBJS_LIB) $@
- ar r $@ $(OBJS)
- ${RANLIB} $@
-# build the shared object library by linking the object files
-libjk.so: $(SHLIB_OBJS) $(SHLIB_OBJS_LIB)
- rm -f $@
- $(LD_SHLIB) $(LDFLAGS_SHLIB) -o $@ $(SHLIB_OBJS) $(SHLIB_OBJS_LIB) $(LIBS)
-
-.SUFFIXES: .o .so-o
-.c.o:
- $(CC) -c $(JK_INCLUDES) $(CFLAGS) $(CPPFLAGS) $(SPACER) $<
-.c.so-o:
- $(CC) -c $(JK_INCLUDES) $(CFLAGS) $(CFLAGS_SHLIB) $(CPPFLAGS) $(SPACER) $< && mv $*.o $*.so-o
-
-clean:
- -rm -f $(OBJS) $(SHLIB_OBJS) $(LIB)
-
-distclean: clean
- -rm -f Makefile
-
-depend:
- echo "No depend"
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.vc b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.vc
deleted file mode 100644
index 5b2dc914..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/Makefile.vc
+++ /dev/null
@@ -1,256 +0,0 @@
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-!IFDEF EAPI
-OUTDIR=.\ReleaseSSL
-INTDIR=.\ReleaseSSL
-DEF_EAPI=/D "EAPI"
-!ELSE
-OUTDIR=.\Release
-INTDIR=.\Release
-DEF_EAPI=
-!ENDIF
-
-
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-ALL : "$(OUTDIR)\mod_jk.so"
-
-
-CLEAN :
- -@erase "$(INTDIR)\jk_ajp12_worker.obj"
- -@erase "$(INTDIR)\jk_ajp13.obj"
- -@erase "$(INTDIR)\jk_ajp13_worker.obj"
- -@erase "$(INTDIR)\jk_ajp14.obj"
- -@erase "$(INTDIR)\jk_ajp14_worker.obj"
- -@erase "$(INTDIR)\jk_ajp_common.obj"
- -@erase "$(INTDIR)\jk_connect.obj"
- -@erase "$(INTDIR)\jk_context.obj"
- -@erase "$(INTDIR)\jk_jni_worker.obj"
- -@erase "$(INTDIR)\jk_lb_worker.obj"
- -@erase "$(INTDIR)\jk_map.obj"
- -@erase "$(INTDIR)\jk_md5.obj"
- -@erase "$(INTDIR)\jk_msg_buff.obj"
- -@erase "$(INTDIR)\jk_pool.obj"
- -@erase "$(INTDIR)\jk_shm.obj"
- -@erase "$(INTDIR)\jk_sockbuf.obj"
- -@erase "$(INTDIR)\jk_status.obj"
- -@erase "$(INTDIR)\jk_uri_worker_map.obj"
- -@erase "$(INTDIR)\jk_url.obj"
- -@erase "$(INTDIR)\jk_util.obj"
- -@erase "$(INTDIR)\jk_worker.obj"
- -@erase "$(INTDIR)\mod_jk.obj"
- -@erase "$(INTDIR)\mod_jk_src.idb"
- -@erase "$(INTDIR)\mod_jk_src.pdb"
- -@erase "$(OUTDIR)\mod_jk.exp"
- -@erase "$(OUTDIR)\mod_jk.lib"
- -@erase "$(OUTDIR)\mod_jk.pdb"
- -@erase "$(OUTDIR)\mod_jk.so"
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\mod_jk.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=ApacheCore.lib kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib $(EXTRA_LIBS) /nologo /base:"0x6A6B0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_jk.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_jk.so" /implib:"$(OUTDIR)\mod_jk.lib" /libpath:"$(APACHE1_HOME)\lib" /libpath:"$(APACHE1_HOME)\libexec" /opt:ref
-LINK32_OBJS= \
- "$(INTDIR)\jk_ajp12_worker.obj" \
- "$(INTDIR)\jk_ajp13.obj" \
- "$(INTDIR)\jk_ajp13_worker.obj" \
- "$(INTDIR)\jk_ajp14.obj" \
- "$(INTDIR)\jk_ajp14_worker.obj" \
- "$(INTDIR)\jk_ajp_common.obj" \
- "$(INTDIR)\jk_connect.obj" \
- "$(INTDIR)\jk_context.obj" \
- "$(INTDIR)\jk_jni_worker.obj" \
- "$(INTDIR)\jk_lb_worker.obj" \
- "$(INTDIR)\jk_map.obj" \
- "$(INTDIR)\jk_md5.obj" \
- "$(INTDIR)\jk_msg_buff.obj" \
- "$(INTDIR)\jk_pool.obj" \
- "$(INTDIR)\jk_shm.obj" \
- "$(INTDIR)\jk_sockbuf.obj" \
- "$(INTDIR)\jk_status.obj" \
- "$(INTDIR)\jk_uri_worker_map.obj" \
- "$(INTDIR)\jk_url.obj" \
- "$(INTDIR)\jk_util.obj" \
- "$(INTDIR)\jk_worker.obj" \
- "$(INTDIR)\mod_jk.obj"
-
-"$(OUTDIR)\mod_jk.so" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-
-CPP_PROJ=-nologo -MD -W3 -O2 -Ob2 -Oy- -Zi -EHsc /I "..\common" /I "$(APACHE1_HOME)\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" $(DEF_EAPI) /D "MOD_JK_EXPORTS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_jk_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_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-
-
-SOURCE=..\common\jk_ajp12_worker.c
-
-"$(INTDIR)\jk_ajp12_worker.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_ajp13.c
-
-"$(INTDIR)\jk_ajp13.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_ajp13_worker.c
-
-"$(INTDIR)\jk_ajp13_worker.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_ajp14.c
-
-"$(INTDIR)\jk_ajp14.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_ajp14_worker.c
-
-"$(INTDIR)\jk_ajp14_worker.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_ajp_common.c
-
-"$(INTDIR)\jk_ajp_common.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_connect.c
-
-"$(INTDIR)\jk_connect.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_context.c
-
-"$(INTDIR)\jk_context.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_jni_worker.c
-
-"$(INTDIR)\jk_jni_worker.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_lb_worker.c
-
-"$(INTDIR)\jk_lb_worker.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_map.c
-
-"$(INTDIR)\jk_map.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_md5.c
-
-"$(INTDIR)\jk_md5.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_msg_buff.c
-
-"$(INTDIR)\jk_msg_buff.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_pool.c
-
-"$(INTDIR)\jk_pool.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_shm.c
-
-"$(INTDIR)\jk_shm.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_sockbuf.c
-
-"$(INTDIR)\jk_sockbuf.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_status.c
-
-"$(INTDIR)\jk_status.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_uri_worker_map.c
-
-"$(INTDIR)\jk_uri_worker_map.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_url.c
-
-"$(INTDIR)\jk_url.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_util.c
-
-"$(INTDIR)\jk_util.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=..\common\jk_worker.c
-
-"$(INTDIR)\jk_worker.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-SOURCE=.\mod_jk.c
-
-"$(INTDIR)\mod_jk.obj" : $(SOURCE) "$(INTDIR)"
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/NWGNUmakefile b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/NWGNUmakefile
deleted file mode 100644
index 6b4d148f..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/NWGNUmakefile
+++ /dev/null
@@ -1,44 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-#
-# Declare the sub-directories to be built here
-#
-
-SUBDIRS = \
- $(EOLIST)
-
-#
-# Get the 'head' of the build environment. This includes default targets and
-# paths to tools
-#
-
-include $(AP_WORK)\NWGNUhead.inc
-
-#
-# build this level's files
-
-ifeq "$(wildcard NWGNUmakefile.mak)" "NWGNUmakefile.mak"
-include NWGNUmakefile.mak
-endif
-
-#
-# You can use this target if all that is needed is to copy files to the
-# installation area
-#
-install :: nlms FORCE
-
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/NWGNUmakefile.mak b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/NWGNUmakefile.mak
deleted file mode 100644
index 7a59b40d..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/NWGNUmakefile.mak
+++ /dev/null
@@ -1,313 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-#
-# NetWare Makefile for mod_jk (uses build system of Apache 1.3.x - gnu make)
-# created by Guenter Knauf <fuankg@apache.org>
-#
-
-#
-# Make sure all needed macro's are defined
-#
-
-ifneq "$(wildcard $(JAVA_HOME)/include/netware/jni_md.h)" "$(JAVA_HOME)/include/netware/jni_md.h"
-$(error JAVA_HOME does not point to a valid NetWare Java SDK!)
-endif
-
-LDLIBS = -l"$(METROWERKS)/Novell Support/libraries/runtime/mwcrtl.lib"
-
-JKCOMMON = ../common
-
-#
-# Get the 'head' of the build environment if necessary. This includes default
-# targets and paths to tools
-#
-
-ifndef EnvironmentDefined
-include $(AP_WORK)\NWGNUhead.inc
-endif
-
-#
-# These directories will be at the beginning of the include list, followed by
-# INCDIRS
-#
-XINCDIRS += \
- $(JKCOMMON) \
- $(JAVA_HOME)/include \
- $(JAVA_HOME)/include/netware \
- $(SRC)\include \
- $(NWOS) \
- $(EOLIST)
-
-#
-# These flags will come after CFLAGS
-#
-XCFLAGS += \
- -DNO_GETTIMEOFDAY \
- -DJK_PREFORK \
- $(EOLIST)
-
-#
-# These defines will come after DEFINES
-#
-XDEFINES += \
- $(EOLIST)
-
-#
-# These flags will be added to the link.opt file
-#
-XLFLAGS += \
- $(LDLIBS) \
- $(EOLIST)
-
-#
-# These values will be appended to the correct variables based on the value of
-# RELEASE
-#
-ifeq "$(RELEASE)" "debug"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "noopt"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-ifeq "$(RELEASE)" "release"
-XINCDIRS += \
- $(EOLIST)
-
-XCFLAGS += \
- $(EOLIST)
-
-XDEFINES += \
- $(EOLIST)
-
-XLFLAGS += \
- $(EOLIST)
-endif
-
-#
-# These are used by the link target if an NLM is being generated
-# This is used by the link 'name' directive to name the nlm. If left blank
-# TARGET_nlm (see below) will be used.
-#
-NLM_NAME = mod_jk
-
-#
-# This is used by the link '-desc ' directive.
-# If left blank, NLM_NAME will be used.
-#
-NLM_DESCRIPTION = Apache $(AP_VERSION_STR) plugin for Tomcat $(JK_VERSION_STR)
-
-#
-# This is used by the link '-copy ' directive.
-# If left blank, the ASF copyright defined in NWGNUtail.inc will be used.
-#
-NLM_COPYRIGHT = Licensed under the Apache License Version 2.0
-
-#
-# This is used by the '-threadname' directive. If left blank,
-# NLM_NAME Thread will be used.
-#
-NLM_THREAD_NAME = JK Module
-
-#
-# If this is specified, it will override VERSION value in
-# $(AP_WORK)\NWGNUenvironment.inc
-#
-NLM_VERSION = $(JK_VERSION)
-
-#
-# If this is specified, it will override the default of 64K
-#
-NLM_STACK_SIZE = 65536
-
-#
-# If this is specified it will be used by the link '-entry' directive
-#
-NLM_ENTRY_SYM = _lib_start
-#NLM_ENTRY_SYM = _lib_start_ws
-
-#
-# If this is specified it will be used by the link '-exit' directive
-#
-NLM_EXIT_SYM = _lib_stop
-#NLM_EXIT_SYM = _lib_stop_ws
-
-#
-# If this is specified it will be used by the link '-flags' directive
-#
-NLM_FLAGS =
-
-#
-# Declare all target files (you must add your files here)
-#
-
-#
-# If there is an NLM target, put it here
-#
-TARGET_nlm = \
- $(OBJDIR)/$(NLM_NAME).nlm \
- $(EOLIST)
-
-#
-# If there is an LIB target, put it here
-#
-TARGET_lib = \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the NLM target above.
-# Paths must all use the '/' character
-#
-FILES_nlm_objs = \
- $(OBJDIR)/$(NLM_NAME).o \
- $(OBJDIR)/jk_nwmain.o \
- $(OBJDIR)/jk_ajp12_worker.o \
- $(OBJDIR)/jk_ajp13.o \
- $(OBJDIR)/jk_ajp13_worker.o \
- $(OBJDIR)/jk_ajp14.o \
- $(OBJDIR)/jk_ajp14_worker.o \
- $(OBJDIR)/jk_ajp_common.o \
- $(OBJDIR)/jk_connect.o \
- $(OBJDIR)/jk_context.o \
- $(OBJDIR)/jk_jni_worker.o \
- $(OBJDIR)/jk_lb_worker.o \
- $(OBJDIR)/jk_map.o \
- $(OBJDIR)/jk_md5.o \
- $(OBJDIR)/jk_msg_buff.o \
- $(OBJDIR)/jk_pool.o \
- $(OBJDIR)/jk_shm.o \
- $(OBJDIR)/jk_sockbuf.o \
- $(OBJDIR)/jk_status.o \
- $(OBJDIR)/jk_uri_worker_map.o \
- $(OBJDIR)/jk_url.o \
- $(OBJDIR)/jk_util.o \
- $(OBJDIR)/jk_worker.o \
- $(EOLIST)
-
-#
-# These are the LIB files needed to create the NLM target above.
-# These will be added as a library command in the link.opt file.
-#
-FILES_nlm_libs = \
- $(NWOS)/$(OBJDIR)/libpre.o \
- $(EOLIST)
-
-# $(NWOS)/$(OBJDIR)/libprews.o
-
-#
-# These are the modules that the above NLM target depends on to load.
-# These will be added as a module command in the link.opt file.
-#
-FILES_nlm_modules = \
- $(EOLIST)
-
-#
-# If the nlm has a msg file, put it's path here
-#
-FILE_nlm_msg =
-
-#
-# If the nlm has a hlp file put it's path here
-#
-FILE_nlm_hlp =
-
-#
-# If this is specified, it will override $(NWOS)\copyright.txt.
-#
-FILE_nlm_copyright =
-
-#
-# Any additional imports go here
-#
-FILES_nlm_Ximports = \
- @ApacheCore.imp \
- @threads.imp \
- @clib.imp \
- @nlmlib.imp \
- @socklib.imp \
- $(EOLIST)
-
-#
-# Any symbols exported to here
-#
-FILES_nlm_exports = \
- jk_module \
- $(EOLIST)
-
-#
-# These are the OBJ files needed to create the LIB target above.
-# Paths must all use the '/' character
-#
-FILES_lib_objs = \
- $(EOLIST)
-
-#
-# implement targets and dependancies (leave this section alone)
-#
-
-libs :: $(OBJDIR) $(TARGET_lib)
-
-nlms :: libs $(TARGET_nlm)
-
-#
-# Updated this target to create necessary directories and copy files to the
-# correct place. (See $(AP_WORK)\NWGNUhead.inc for examples)
-#
-install :: nlms FORCE
- copy $(OBJDIR)\$(NLM_NAME).nlm $(INSTALL)\Apache\modules
-
-#
-# Any specialized rules here
-#
-vpath %.c . $(JKCOMMON) $(SNPRINTF)
-
-$(OBJDIR)/version.inc: $(JKCOMMON)/jk_version.h $(SRC)/include/httpd.h $(OBJDIR)
- @echo Creating $@
- @awk -f ../../support/get_ver.awk $< $(SRC)/include/httpd.h > $@
-
-# Include the version info retrieved from jk_version.h
--include $(OBJDIR)/version.inc
-
-#
-# Include the 'tail' makefile that has targets that depend on variables defined
-# in this makefile
-#
-
-include $(AP_WORK)/NWGNUtail.inc
-
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/libjk.module b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/libjk.module
deleted file mode 100644
index 54726472..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/libjk.module
+++ /dev/null
@@ -1,5 +0,0 @@
-Name: jk_module
-ConfigStart
- LIBS="-Lmodules/jk -L../modules/jk -L../../modules/jk -ljk $LIBS"
- RULE_HIDE=yes
-ConfigEnd
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.c b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.c
deleted file mode 100644
index 2783df2a..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.c
+++ /dev/null
@@ -1,3338 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/***************************************************************************
- * Description: Apache 1.3 plugin for Tomcat *
- * See ../common/jk_service.h for general mod_jk info *
- * Author: Gal Shachor <shachor@il.ibm.com> *
- * Dan Milstein <danmil@shore.net> *
- * Henri Gomez <hgomez@apache.org> *
- * Version: $Revision: 1126561 $ *
- ***************************************************************************/
-
-/*
- * mod_jk: keeps all servlet related ramblings together.
- */
-
-/* #include "ap_config.h" */
-#include "httpd.h"
-#include "http_config.h"
-#include "http_request.h"
-#include "http_core.h"
-#include "http_protocol.h"
-#include "http_main.h"
-#include "http_log.h"
-#include "util_script.h"
-#include "util_date.h"
-#include "http_conf_globals.h"
-
-/*
- * jk_ include files
- */
-#ifdef NETWARE
-#define _SYS_TYPES_H_
-#define _NETDB_H_INCLUDED
-#define _IN_
-#define _INET_
-#define _SYS_TIMEVAL_H_
-#define _SYS_SOCKET_H_
-#endif
-#include "jk_global.h"
-#include "jk_util.h"
-#include "jk_map.h"
-#include "jk_pool.h"
-#include "jk_service.h"
-#include "jk_worker.h"
-#include "jk_uri_worker_map.h"
-#include "jk_ajp13.h"
-#include "jk_shm.h"
-#include "jk_url.h"
-
-#define JK_LOG_DEF_FILE ("logs/mod_jk.log")
-#define JK_SHM_DEF_FILE ("logs/jk-runtime-status")
-#define JK_ENV_REMOTE_ADDR ("JK_REMOTE_ADDR")
-#define JK_ENV_REMOTE_PORT ("JK_REMOTE_PORT")
-#define JK_ENV_REMOTE_HOST ("JK_REMOTE_HOST")
-#define JK_ENV_REMOTE_USER ("JK_REMOTE_USER")
-#define JK_ENV_AUTH_TYPE ("JK_AUTH_TYPE")
-#define JK_ENV_LOCAL_NAME ("JK_LOCAL_NAME")
-#define JK_ENV_LOCAL_PORT ("JK_LOCAL_PORT")
-#define JK_ENV_HTTPS ("HTTPS")
-#define JK_ENV_CERTS ("SSL_CLIENT_CERT")
-#define JK_ENV_CIPHER ("SSL_CIPHER")
-#define JK_ENV_SESSION ("SSL_SESSION_ID")
-#define JK_ENV_KEY_SIZE ("SSL_CIPHER_USEKEYSIZE")
-#define JK_ENV_CERTCHAIN_PREFIX ("SSL_CLIENT_CERT_CHAIN_")
-#define JK_ENV_REPLY_TIMEOUT ("JK_REPLY_TIMEOUT")
-#define JK_ENV_WORKER_NAME ("JK_WORKER_NAME")
-#define JK_NOTE_WORKER_NAME ("JK_WORKER_NAME")
-#define JK_NOTE_WORKER_TYPE ("JK_WORKER_TYPE")
-#define JK_NOTE_REQUEST_DURATION ("JK_REQUEST_DURATION")
-#define JK_NOTE_WORKER_ROUTE ("JK_WORKER_ROUTE")
-#define JK_HANDLER ("jakarta-servlet")
-#define JK_MAGIC_TYPE ("application/x-jakarta-servlet")
-#define NULL_FOR_EMPTY(x) ((x && !strlen(x)) ? NULL : x)
-#define STRNULL_FOR_NULL(x) ((x) ? (x) : "(null)")
-
-/*
- * If you are not using SSL, comment out the following line. It will make
- * apache run faster.
- *
- * Personally, I (DM), think this may be a lie.
- */
-#define ADD_SSL_INFO
-
-module MODULE_VAR_EXPORT jk_module;
-#ifdef WIN32
-extern __declspec(dllimport) module dir_module;
-#else
-extern module dir_module;
-#endif
-
-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
-
-/*
- * Environment variable forward object
- */
-typedef struct
-{
- int has_default;
- char *name;
- char *value;
-} envvar_item;
-
-/*
- * Configuration object for the mod_jk module.
- */
-typedef struct
-{
-
- /*
- * Log stuff
- */
- char *log_file;
- int log_fd;
- int log_level;
- jk_logger_t *log;
-
- /*
- * Mount stuff
- */
- char *mount_file;
- int mount_file_reload;
- jk_map_t *uri_to_context;
-
- int mountcopy;
-
- jk_uri_worker_map_t *uw_map;
-
- int was_initialized;
-
- /*
- * Automatic context path apache alias
- */
- char *alias_dir;
-
- /*
- * Request Logging
- */
-
- char *stamp_format_string;
- char *format_string;
- array_header *format;
-
- /*
- * Setting target worker via environment
- */
- char *worker_indicator;
-
- /*
- * Configurable environment variables to overwrite
- * request information using meta data send by a
- * proxy in front of us.
- */
- char *remote_addr_indicator;
- char *remote_port_indicator;
- char *remote_host_indicator;
- char *remote_user_indicator;
- char *auth_type_indicator;
- char *local_name_indicator;
- char *local_port_indicator;
-
- /*
- * SSL Support
- */
- int ssl_enable;
- char *https_indicator;
- char *certs_indicator;
- char *cipher_indicator;
- char *session_indicator;
- char *key_size_indicator;
- char *certchain_prefix; /* Client certificate chain prefix */
-
- /*
- * Jk Options
- */
- int options;
- int exclude_options;
-
- int strip_session;
- /*
- * Environment variables support
- */
- int envvars_has_own;
- table *envvars;
- table *envvars_def;
- array_header *envvar_items;
-
- server_rec *s;
-} jk_server_conf_t;
-
-
-/*
- * The "private", or subclass portion of the web server service class for
- * Apache 1.3. An instance of this class is created for each request
- * handled. See jk_service.h for details about the ws_service object in
- * general.
- */
-struct apache_private_data
-{
- /*
- * For memory management for this request. Aliased to be identical to
- * the pool in the superclass (jk_ws_service).
- */
- jk_pool_t p;
-
- /* True iff request body data has been read from Apache */
- int read_body_started;
-
- /* Apache request structure */
- request_rec *r;
-};
-typedef struct apache_private_data apache_private_data_t;
-
-typedef struct dir_config_struct
-{
- array_header *index_names;
-} dir_config_rec;
-
-static server_rec *main_server = NULL;
-static jk_logger_t *main_log = NULL;
-static table *jk_log_fds = NULL;
-static jk_worker_env_t worker_env;
-static char *jk_shm_file = NULL;
-static size_t jk_shm_size = 0;
-/*
- * Worker stuff
-*/
-static jk_map_t *jk_worker_properties = NULL;
-static char *jk_worker_file = NULL;
-static int jk_mount_copy_all = JK_FALSE;
-
-static int JK_METHOD ws_start_response(jk_ws_service_t *s,
- int status,
- const char *reason,
- const char *const *header_names,
- const char *const *header_values,
- unsigned num_of_headers);
-
-static int JK_METHOD ws_read(jk_ws_service_t *s,
- void *b, unsigned l, unsigned *a);
-
-static int JK_METHOD ws_write(jk_ws_service_t *s, const void *b, unsigned l);
-
-static void JK_METHOD ws_add_log_items(jk_ws_service_t *s,
- const char *const *log_names,
- const char *const *log_values,
- unsigned num_of_log_items);
-
-static void * JK_METHOD ws_next_vhost(void *d);
-
-static void JK_METHOD ws_vhost_to_text(void *d, char *buf, size_t len);
-
-static jk_uri_worker_map_t * JK_METHOD ws_vhost_to_uw_map(void *d);
-
-/* srevilak - new function prototypes */
-static void jk_server_cleanup(void *data);
-static void jk_generic_cleanup(server_rec * s);
-
-
-
-/* ====================================================================== */
-/* JK Service step callbacks */
-/* ====================================================================== */
-
-
-/*
- * Send the HTTP response headers back to the browser.
- *
- * Think of this function as a method of the apache1.3-specific subclass of
- * the jk_ws_service class. Think of the *s param as a "this" or "self"
- * pointer.
- */
-static int JK_METHOD ws_start_response(jk_ws_service_t *s,
- int status,
- const char *reason,
- const char *const *header_names,
- const char *const *header_values,
- unsigned num_of_headers)
-{
- if (s && s->ws_private) {
- unsigned h;
-
- /* Obtain a subclass-specific "this" pointer */
- apache_private_data_t *p = s->ws_private;
- request_rec *r = p->r;
-
- /* If we use proxy error pages, still pass
- * through context headers needed for special status codes.
- */
- if (s->extension.use_server_error_pages &&
- status >= s->extension.use_server_error_pages) {
- if (status == HTTP_UNAUTHORIZED) {
- int found = JK_FALSE;
- for (h = 0; h < num_of_headers; h++) {
- if (!strcasecmp(header_names[h], "WWW-Authenticate")) {
- char *tmp = ap_pstrdup(r->pool, header_values[h]);
- ap_table_set(r->err_headers_out,
- "WWW-Authenticate", tmp);
- found = JK_TRUE;
- }
- }
- if (found == JK_FALSE) {
- jk_server_conf_t *conf = (jk_server_conf_t *)
- ap_get_module_config(r->server->module_config,
- &jk_module);
- jk_log(conf->log, JK_LOG_INFO,
- "origin server sent 401 without"
- " WWW-Authenticate header");
- }
- }
- return JK_TRUE;
- }
-
- if (!reason) {
- reason = "";
- }
- r->status = status;
- r->status_line = ap_psprintf(r->pool, "%d %s", status, reason);
-
- for (h = 0; h < num_of_headers; h++) {
- if (!strcasecmp(header_names[h], "Content-type")) {
- char *tmp = ap_pstrdup(r->pool, header_values[h]);
- ap_content_type_tolower(tmp);
- r->content_type = tmp;
- }
- else if (!strcasecmp(header_names[h], "Location")) {
- ap_table_set(r->headers_out, header_names[h],
- header_values[h]);
- }
- else if (!strcasecmp(header_names[h], "Content-Length")) {
- ap_table_set(r->headers_out, header_names[h],
- header_values[h]);
- }
- else if (!strcasecmp(header_names[h], "Transfer-Encoding")) {
- ap_table_set(r->headers_out, header_names[h],
- header_values[h]);
- }
- else if (!strcasecmp(header_names[h], "Last-Modified")) {
- /*
- * If the script gave us a Last-Modified header, we can't just
- * pass it on blindly because of restrictions on future values.
- */
- ap_update_mtime(r, ap_parseHTTPdate(header_values[h]));
- ap_set_last_modified(r);
- }
- else {
- ap_table_add(r->headers_out, header_names[h],
- header_values[h]);
- }
- }
-
- ap_send_http_header(r);
- s->response_started = JK_TRUE;
-
- return JK_TRUE;
- }
- return JK_FALSE;
-}
-
-/*
- * Read a chunk of the request body into a buffer. Attempt to read len
- * bytes into the buffer. Write the number of bytes actually read into
- * actually_read.
- *
- * Think of this function as a method of the apache1.3-specific subclass of
- * the jk_ws_service class. Think of the *s param as a "this" or "self"
- * pointer.
- */
-static int JK_METHOD ws_read(jk_ws_service_t *s,
- void *b, unsigned len, unsigned *actually_read)
-{
- if (s && s->ws_private && b && actually_read) {
- apache_private_data_t *p = s->ws_private;
- if (!p->read_body_started) {
- if (ap_should_client_block(p->r)) {
- p->read_body_started = JK_TRUE;
- }
- }
-
- if (p->read_body_started) {
- long rv;
- if ((rv = ap_get_client_block(p->r, b, len)) < 0) {
- *actually_read = 0;
- }
- else {
- *actually_read = (unsigned)rv;
- }
- /* reset timeout after successful read */
- ap_reset_timeout(p->r);
- return JK_TRUE;
- }
- }
- return JK_FALSE;
-}
-
-static void JK_METHOD ws_flush(jk_ws_service_t *s)
-{
- if (s && s->ws_private) {
- apache_private_data_t *p = s->ws_private;
- BUFF *bf = p->r->connection->client;
- ap_bflush(bf);
- }
-}
-
-/*
- * Write a chunk of response data back to the browser. If the headers
- * haven't yet been sent over, send over default header values (Status =
- * 200, basically).
- *
- * Write len bytes from buffer b.
- *
- * Think of this function as a method of the apache1.3-specific subclass of
- * the jk_ws_service class. Think of the *s param as a "this" or "self"
- * pointer.
- */
-static int JK_METHOD ws_write(jk_ws_service_t *s, const void *b, unsigned len)
-{
- if (s && s->ws_private && b) {
- apache_private_data_t *p = s->ws_private;
-
- if (len) {
- char *buf = (char *)b;
- int w = (int)len;
- int r = 0;
-
- if (!s->response_started) {
- if (main_log)
- jk_log(main_log, JK_LOG_INFO,
- "Write without start, starting with defaults");
- if (!s->start_response(s, 200, NULL, NULL, NULL, 0)) {
- return JK_FALSE;
- }
- }
-
- if (p->r->header_only) {
- BUFF *bf = p->r->connection->client;
- ap_bflush(bf);
- return JK_TRUE;
- }
-
- while (len && !p->r->connection->aborted) {
- w = ap_bwrite(p->r->connection->client, &buf[r], len);
- if (w > 0) {
- /* reset timeout after successful write */
- ap_reset_timeout(p->r);
- r += w;
- len -= w;
- }
- else if (w < 0) {
- /* Error writing data -- abort */
- if (!p->r->connection->aborted) {
- ap_bsetflag(p->r->connection->client, B_EOUT, 1);
- p->r->connection->aborted = 1;
- }
- return JK_FALSE;
- }
-
- }
- if (len && p->r->connection->aborted) {
- /* Fail if there is something left to send and
- * the connection was aborted by the client
- */
- return JK_FALSE;
- }
- }
-
- return JK_TRUE;
- }
- return JK_FALSE;
-}
-
-static void JK_METHOD ws_add_log_items(jk_ws_service_t *s,
- const char *const *log_names,
- const char *const *log_values,
- unsigned num_of_log_items)
-{
- unsigned h;
- apache_private_data_t *p = s->ws_private;
- request_rec *r = p->r;
-
- for (h = 0; h < num_of_log_items; h++) {
- if (log_names[h] && log_values[h]) {
- ap_table_setn(r->notes, log_names[h], log_values[h]);
- }
- }
-}
-
-static void * JK_METHOD ws_next_vhost(void *d)
-{
- server_rec *s = (server_rec *)d;
- if (s == NULL)
- return main_server;
- return s->next;
-}
-
-static void JK_METHOD ws_vhost_to_text(void *d, char *buf, size_t len)
-{
- server_rec *s = (server_rec *)d;
- size_t used = 0;
-
- if (s->server_hostname)
- used += strlen(s->server_hostname);
- if (!s->is_virtual) {
- if (s->port)
- used += strlen(":XXXXX");
- }
- else if (s->addrs) {
- used += strlen(" [");
- if (s->addrs->virthost)
- used += strlen(s->addrs->virthost);
- if (s->addrs->host_port)
- used += strlen(":XXXXX");
- used += strlen("]");
- }
-
- if (len < used && len > strlen("XXX")) {
- strcpy(buf, "XXX");
- return;
- }
-
- used = 0;
-
- if (s->server_hostname) {
- strcpy(buf + used, s->server_hostname);
- used += strlen(s->server_hostname);
- }
- if (!s->is_virtual) {
- if (s->port) {
- sprintf(buf + used, ":%hu", s->port);
- used = strlen(buf);
- }
- }
- else if (s->addrs) {
- strcpy(buf + used, " [");
- used += strlen(" [");
- if (s->addrs->virthost) {
- strcpy(buf + used, s->addrs->virthost);
- used += strlen(s->addrs->virthost);
- }
- if (s->addrs->host_port) {
- sprintf(buf + used, ":%hu", s->addrs->host_port);
- used = strlen(buf);
- }
- strcpy(buf + used, "]");
- used += strlen("]");
- }
-}
-
-static jk_uri_worker_map_t * JK_METHOD ws_vhost_to_uw_map(void *d)
-{
- server_rec *s = (server_rec *)d;
- jk_server_conf_t *conf = NULL;
- if (s == NULL)
- return NULL;
- conf = (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
- return conf->uw_map;
-}
-
-/* ====================================================================== */
-/* Utility functions */
-/* ====================================================================== */
-
-/* Log something to JK log file then exit */
-static void jk_error_exit(const char *file,
- int line,
- int level,
- const server_rec * s,
- ap_pool * p, const char *fmt, ...)
-{
- va_list ap;
- char *res;
- char *ch;
-
- va_start(ap, fmt);
- res = ap_pvsprintf(p, fmt, ap);
- va_end(ap);
- /* Replace all format characters in the resulting message */
- /* because we feed the message to ap_log_error(). */
- ch = res;
- while (*ch) {
- if (*ch == '%') {
- *ch = '#';
- }
- ch++;
- }
-
- ap_log_error(file, line, level, s, res);
- if ( s ) {
- ap_log_error(file, line, level, NULL, res);
- }
-
- /* Exit process */
- exit(1);
-}
-
-/* Return the content length associated with an Apache request structure */
-static jk_uint64_t get_content_length(request_rec * r)
-{
- if (r->clength > 0) {
- return (jk_uint64_t)r->clength;
- }
- else {
- char *lenp = (char *)ap_table_get(r->headers_in, "Content-Length");
-
- if (lenp) {
- jk_uint64_t rc = 0;
- if (sscanf(lenp, "%" JK_UINT64_T_FMT, &rc) > 0 && rc > 0) {
- return rc;
- }
- }
- }
-
- return 0;
-}
-
-/* Retrieve string value from env var, use default if env var does not exist. */
-static const char *get_env_string(request_rec *r, const char *def,
- char *env, int null_for_empty)
-{
- char *value = (char *)ap_table_get(r->subprocess_env, env);
- if (value)
- return null_for_empty ? NULL_FOR_EMPTY(value) : value;
- return null_for_empty ? NULL_FOR_EMPTY(def) : def;
-}
-
-/* Retrieve integer value from env var, use default if env var does not exist. */
-static int get_env_int(request_rec *r, int def, char *env)
-{
- char *value = (char *)ap_table_get(r->subprocess_env, env);
- if (value)
- return atoi(value);
- return def;
-}
-
-/*
- * Set up an instance of a ws_service object for a single request. This
- * particular instance will be of the Apache 1.3-specific subclass. Copies
- * all of the important request information from the Apache request object
- * into the jk_ws_service_t object.
- *
- * Params
- *
- * private_data: The subclass-specific data structure, already initialized
- * (with a pointer to the Apache request_rec structure, among other things)
- *
- * s: The base class object.
- *
- * conf: Configuration information
- *
- * Called from jk_handler(). See jk_service.h for explanations of what most
- * of these fields mean.
- */
-static int init_ws_service(apache_private_data_t * private_data,
- jk_ws_service_t *s, jk_server_conf_t * conf)
-{
- int size;
- request_rec *r = private_data->r;
- char *ssl_temp = NULL;
- const char *reply_timeout = NULL;
- rule_extension_t *e;
-
- /* Copy in function pointers (which are really methods) */
- s->start_response = ws_start_response;
- s->read = ws_read;
- s->write = ws_write;
- s->flush = ws_flush;
- s->add_log_items = ws_add_log_items;
- s->next_vhost = ws_next_vhost;
- s->vhost_to_text = ws_vhost_to_text;
- s->vhost_to_uw_map = ws_vhost_to_uw_map;
-
- s->auth_type = get_env_string(r, r->connection->ap_auth_type,
- conf->auth_type_indicator, 1);
- s->remote_user = get_env_string(r, r->connection->user,
- conf->remote_user_indicator, 1);
-
- s->protocol = r->protocol;
- s->remote_host =
- (char *)ap_get_remote_host(r->connection, r->per_dir_config,
- REMOTE_HOST);
- s->remote_host = get_env_string(r, s->remote_host,
- conf->remote_host_indicator, 1);
-
- if (conf->options & JK_OPT_FWDLOCAL) {
- s->remote_addr = r->connection->local_ip;
- /* We don't know the client port of the backend connection. */
- s->remote_port = "0";
- }
- else {
- s->remote_addr = r->connection->remote_ip;
- s->remote_port = ap_psprintf(r->pool, "%d",
- ntohs(r->connection->remote_addr.sin_port));
- }
- s->remote_addr = get_env_string(r, s->remote_addr,
- conf->remote_addr_indicator, 1);
- s->remote_port = get_env_string(r, s->remote_port,
- conf->remote_port_indicator, 1);
-
- if (conf->options & JK_OPT_FLUSHPACKETS)
- s->flush_packets = 1;
- if (conf->options & JK_OPT_FLUSHEADER)
- s->flush_header = 1;
-
- e = (rule_extension_t *)ap_get_module_config(r->request_config, &jk_module);
- if (e) {
- s->extension.reply_timeout = e->reply_timeout;
- s->extension.use_server_error_pages = e->use_server_error_pages;
- if (e->activation) {
- s->extension.activation = ap_palloc(r->pool, e->activation_size * sizeof(int));
- memcpy(s->extension.activation, e->activation, e->activation_size * sizeof(int));
- }
- if (e->fail_on_status_size > 0) {
- s->extension.fail_on_status_size = e->fail_on_status_size;
- s->extension.fail_on_status = ap_palloc(r->pool, e->fail_on_status_size * sizeof(int));
- memcpy(s->extension.fail_on_status, e->fail_on_status, e->fail_on_status_size * sizeof(int));
- }
- }
- reply_timeout = ap_table_get(r->subprocess_env, "JK_REPLY_TIMEOUT");
- if (reply_timeout) {
- int r = atoi(reply_timeout);
- if (r >= 0)
- s->extension.reply_timeout = r;
- }
-
- if (conf->options & JK_OPT_DISABLEREUSE)
- s->disable_reuse = 1;
-
- /* get server name */
- /* s->server_name = (char *)(r->hostname ? r->hostname : r->server->server_hostname); */
- /* XXX : a la jk2 */
- s->server_name = get_env_string(r, (char *)ap_get_server_name(r),
- conf->local_name_indicator, 0);
-
- /* get the real port (otherwise redirect failed) */
- /* s->server_port = htons( r->connection->local_addr.sin_port ); */
- /* XXX : a la jk2 */
- s->server_port = get_env_int(r, ap_get_server_port(r),
- conf->local_port_indicator);
-
- s->server_software = (char *)ap_get_server_version();
-
- s->method = (char *)r->method;
- s->content_length = get_content_length(r);
- s->is_chunked = r->read_chunked;
- s->no_more_chunks = 0;
- s->query_string = r->args;
-
- /*
- * The 2.2 servlet spec errata says the uri from
- * HttpServletRequest.getRequestURI() should remain encoded.
- * [http://java.sun.com/products/servlet/errata_042700.html]
- *
- * We use JkOptions to determine which method to be used
- *
- * ap_escape_uri is the latest recommanded but require
- * some java decoding (in TC 3.3 rc2)
- *
- * unparsed_uri is used for strict compliance with spec and
- * old Tomcat (3.2.3 for example)
- *
- * uri is use for compatibilty with mod_rewrite with old Tomcats
- */
-
- switch (conf->options & JK_OPT_FWDURIMASK) {
-
- case JK_OPT_FWDURICOMPATUNPARSED:
- s->req_uri = r->unparsed_uri;
- if (s->req_uri != NULL) {
- char *query_str = strchr(s->req_uri, '?');
- if (query_str != NULL) {
- *query_str = 0;
- }
- }
-
- break;
-
- case JK_OPT_FWDURICOMPAT:
- s->req_uri = r->uri;
- break;
-
- case JK_OPT_FWDURIPROXY:
- size = 3 * strlen(r->uri) + 1;
- s->req_uri = ap_palloc(r->pool, size);
- jk_canonenc(r->uri, s->req_uri, size);
- break;
-
- case JK_OPT_FWDURIESCAPED:
- s->req_uri = ap_escape_uri(r->pool, r->uri);
- break;
-
- default:
- return JK_FALSE;
- }
-
- if (conf->ssl_enable || conf->envvars) {
- ap_add_common_vars(r);
-
- if (conf->ssl_enable) {
- ssl_temp =
- (char *)ap_table_get(r->subprocess_env,
- conf->https_indicator);
- if (ssl_temp && !strcasecmp(ssl_temp, "on")) {
- s->is_ssl = JK_TRUE;
- s->ssl_cert =
- (char *)ap_table_get(r->subprocess_env,
- conf->certs_indicator);
-
- if (conf->options & JK_OPT_FWDCERTCHAIN) {
- array_header *t = ap_table_elts(r->subprocess_env);
- if (t && t->nelts) {
- int i;
- table_entry *elts = (table_entry *) t->elts;
- array_header *certs = ap_make_array(r->pool, 1,
- sizeof(char *));
- *(const char **)ap_push_array(certs) = s->ssl_cert;
- for (i = 0; i < t->nelts; i++) {
- if (!elts[i].key)
- continue;
- if (!strncasecmp(elts[i].key,
- conf->certchain_prefix,
- strlen(conf->certchain_prefix)))
- *(const char **)ap_push_array(certs) = elts[i].val;
- }
- s->ssl_cert = ap_array_pstrcat(r->pool, certs, '\0');
- }
- }
-
- if (s->ssl_cert) {
- s->ssl_cert_len = strlen(s->ssl_cert);
- if (JK_IS_DEBUG_LEVEL(conf->log)) {
- jk_log(conf->log, JK_LOG_DEBUG,
- "SSL client certificate (%d bytes): %s",
- s->ssl_cert_len, s->ssl_cert);
- }
- }
- /* Servlet 2.3 API */
- s->ssl_cipher =
- (char *)ap_table_get(r->subprocess_env,
- conf->cipher_indicator);
- s->ssl_session =
- (char *)ap_table_get(r->subprocess_env,
- conf->session_indicator);
-
- if (conf->options & JK_OPT_FWDKEYSIZE) {
- /* Servlet 2.3 API */
- ssl_temp =
- (char *)ap_table_get(r->subprocess_env,
- conf->key_size_indicator);
- if (ssl_temp)
- s->ssl_key_size = atoi(ssl_temp);
- }
- }
- }
-
- if (conf->envvars) {
- const array_header *t = conf->envvar_items;
- if (t && t->nelts) {
- int i;
- int j = 0;
- envvar_item *elts = (envvar_item *) t->elts;
- s->attributes_names =
- ap_palloc(r->pool, sizeof(char *) * t->nelts);
- s->attributes_values =
- ap_palloc(r->pool, sizeof(char *) * t->nelts);
-
- for (i = 0; i < t->nelts; i++) {
- s->attributes_names[i - j] = elts[i].name;
- s->attributes_values[i - j] =
- (char *)ap_table_get(r->subprocess_env, elts[i].name);
- if (!s->attributes_values[i - j]) {
- if (elts[i].has_default) {
- s->attributes_values[i - j] = elts[i].value;
- }
- else {
- s->attributes_values[i - j] = "";
- s->attributes_names[i - j] = "";
- j++;
- }
- }
- }
-
- s->num_attributes = t->nelts - j;
- }
- }
- }
-
- if (r->headers_in && ap_table_elts(r->headers_in)) {
- int need_content_length_header = (!s->is_chunked
- && s->content_length ==
- 0) ? JK_TRUE : JK_FALSE;
- array_header *t = ap_table_elts(r->headers_in);
- if (t && t->nelts) {
- int i;
- table_entry *elts = (table_entry *) t->elts;
- s->num_headers = t->nelts;
- /* allocate an extra header slot in case we need to add a content-length header */
- s->headers_names =
- ap_palloc(r->pool, sizeof(char *) * (t->nelts + 1));
- s->headers_values =
- ap_palloc(r->pool, sizeof(char *) * (t->nelts + 1));
- if (!s->headers_names || !s->headers_values)
- return JK_FALSE;
- for (i = 0; i < t->nelts; i++) {
- char *hname = ap_pstrdup(r->pool, elts[i].key);
- s->headers_values[i] = ap_pstrdup(r->pool, elts[i].val);
- s->headers_names[i] = hname;
- if (need_content_length_header &&
- !strcasecmp(s->headers_names[i], "content-length")) {
- need_content_length_header = JK_FALSE;
- }
- }
- /* Add a content-length = 0 header if needed.
- * Ajp13 assumes an absent content-length header means an unknown,
- * but non-zero length body.
- */
- if (need_content_length_header) {
- s->headers_names[s->num_headers] = "content-length";
- s->headers_values[s->num_headers] = "0";
- s->num_headers++;
- }
- }
- /* Add a content-length = 0 header if needed. */
- else if (need_content_length_header) {
- s->headers_names = ap_palloc(r->pool, sizeof(char *));
- s->headers_values = ap_palloc(r->pool, sizeof(char *));
- if (!s->headers_names || !s->headers_values)
- return JK_FALSE;
- s->headers_names[0] = "content-length";
- s->headers_values[0] = "0";
- s->num_headers++;
- }
- }
- s->uw_map = conf->uw_map;
-
- /* Dump all connection param so we can trace what's going to
- * the remote tomcat
- */
- if (JK_IS_DEBUG_LEVEL(conf->log)) {
- jk_log(conf->log, JK_LOG_DEBUG,
- "Service protocol=%s method=%s ssl=%s host=%s addr=%s name=%s port=%d auth=%s user=%s laddr=%s raddr=%s uri=%s",
- STRNULL_FOR_NULL(s->protocol),
- STRNULL_FOR_NULL(s->method),
- s->is_ssl ? "true" : "false",
- STRNULL_FOR_NULL(s->remote_host),
- STRNULL_FOR_NULL(s->remote_addr),
- STRNULL_FOR_NULL(s->server_name),
- s->server_port,
- STRNULL_FOR_NULL(s->auth_type),
- STRNULL_FOR_NULL(s->remote_user),
- STRNULL_FOR_NULL(r->connection->local_ip),
- STRNULL_FOR_NULL(r->connection->remote_ip),
- STRNULL_FOR_NULL(s->req_uri));
- }
-
- return JK_TRUE;
-}
-
-/*
- * The JK module command processors
- *
- * The below are all installed so that Apache calls them while it is
- * processing its config files. This allows configuration info to be
- * copied into a jk_server_conf_t object, which is then used for request
- * filtering/processing.
- *
- * See jk_cmds definition below for explanations of these options.
- */
-
-/*
- * JkMountCopy directive handling
- *
- * JkMountCopy On/Off/All
- */
-
-static const char *jk_set_mountcopy(cmd_parms * cmd,
- void *dummy, char *mount_copy)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
- if (! strcasecmp(mount_copy, "all")) {
- jk_mount_copy_all = JK_TRUE;
- }
- else if (strcasecmp(mount_copy, "on") && strcasecmp(mount_copy, "off")) {
- return "JkMountCopy must be All, On or Off";
- }
- else {
- conf->mountcopy = strcasecmp(mount_copy, "off") ? JK_TRUE : JK_FALSE;
- }
-
- return NULL;
-}
-
-/*
- * JkMount directive handling
- *
- * JkMount URI(context) worker
- */
-
-static const char *jk_mount_context(cmd_parms * cmd,
- void *dummy,
- char *context,
- char *worker)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
- const char *c, *w;
-
- if (worker != NULL && cmd->path == NULL ) {
- c = context;
- w = worker;
- }
- else if (worker == NULL && cmd->path != NULL) {
- c = cmd->path;
- w = context;
- }
- else {
- if (worker == NULL)
- return "JkMount needs a path when not defined in a location";
- else
- return "JkMount can not have a path when defined in a location";
- }
-
- if (c[0] != '/')
- return "JkMount context should start with /";
-
- if (!conf->uri_to_context) {
- if (!jk_map_alloc(&(conf->uri_to_context))) {
- return "JkMount Memory error";
- }
- }
- /*
- * Add the new worker to the alias map.
- */
- jk_map_put(conf->uri_to_context, c, w, NULL);
- return NULL;
-}
-
-/*
- * JkUnMount directive handling
- *
- * JkUnMount URI(context) worker
- */
-
-static const char *jk_unmount_context(cmd_parms * cmd,
- void *dummy,
- const char *context,
- const char *worker)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
- char *uri;
- const char *c, *w;
-
- if (worker != NULL && cmd->path == NULL ) {
- c = context;
- w = worker;
- }
- else if (worker == NULL && cmd->path != NULL) {
- c = cmd->path;
- w = context;
- }
- else {
- if (worker == NULL)
- return "JkUnMount needs a path when not defined in a location";
- else
- return "JkUnMount can not have a path when defined in a location";
- }
- if (c[0] != '/')
- return "JkUnMount context should start with /";
- uri = ap_pstrcat(cmd->temp_pool, "!", c, NULL);
-
- if (!conf->uri_to_context) {
- if (!jk_map_alloc(&(conf->uri_to_context))) {
- return "JkUnMount Memory error";
- }
- }
- /*
- * Add the new worker to the alias map.
- */
- jk_map_put(conf->uri_to_context, uri, w, NULL);
- return NULL;
-}
-
-/*
- * JkWorkersFile Directive Handling
- *
- * JkWorkersFile file
- */
-
-static const char *jk_set_worker_file(cmd_parms * cmd,
- void *dummy, char *worker_file)
-{
- struct stat statbuf;
-
- if (jk_worker_file != NULL)
- return "JkWorkersFile only allowed once";
-
- /* we need an absolute path */
- jk_worker_file = ap_server_root_relative(cmd->pool, worker_file);
-
-#ifdef CHROOTED_APACHE
- ap_server_strip_chroot(jk_worker_file, 0);
-#endif
-
- if (jk_worker_file == worker_file)
- jk_worker_file = ap_pstrdup(cmd->pool, worker_file);
-
- if (jk_worker_file == NULL)
- return "JkWorkersFile file name invalid";
-
- if (stat(jk_worker_file, &statbuf) == -1)
- return "JkWorkersFile: Can't find the workers file specified";
-
- return NULL;
-}
-
-/*
- * JkMountFile Directive Handling
- *
- * JkMountFile file
- */
-
-static const char *jk_set_mount_file(cmd_parms * cmd,
- void *dummy, char *mount_file)
-{
- server_rec *s = cmd->server;
- struct stat statbuf;
-
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- /* we need an absolute path (ap_server_root_relative does the ap_pstrdup) */
- conf->mount_file = ap_server_root_relative(cmd->pool, mount_file);
-
-#ifdef CHROOTED_APACHE
- ap_server_strip_chroot(conf->mount_file, 0);
-#endif
-
- if (conf->mount_file == NULL)
- return "JkMountFile file name invalid";
-
- if (stat(conf->mount_file, &statbuf) == -1)
- return "JkMountFile: Can't find the mount file specified";
-
- if (!conf->uri_to_context) {
- if (!jk_map_alloc(&(conf->uri_to_context))) {
- return "JkMountFile Memory error";
- }
- }
-
- return NULL;
-}
-
-/*
- * JkMountFileReload Directive Handling
- *
- * JkMountFileReload seconds
- */
-
-static const char *jk_set_mount_file_reload(cmd_parms * cmd,
- void *dummy, char *mount_file_reload)
-{
- server_rec *s = cmd->server;
- int interval;
-
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- interval = atoi(mount_file_reload);
- if (interval < 0) {
- interval = 0;
- }
-
- conf->mount_file_reload = interval;
-
- return NULL;
-}
-
-/*
- * JkLogFile Directive Handling
- *
- * JkLogFile file
- */
-
-static const char *jk_set_log_file(cmd_parms * cmd,
- void *dummy, char *log_file)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- /* we need an absolute path */
- if (*log_file != '|') {
- conf->log_file = ap_server_root_relative(cmd->pool, log_file);
-
-#ifdef CHROOTED_APACHE
- ap_server_strip_chroot(conf->log_file, 0);
-#endif
-
- }
- else
- conf->log_file = ap_pstrdup(cmd->pool, log_file);
-
- if (conf->log_file == NULL)
- return "JkLogFile file name invalid";
-
- return NULL;
-}
-
-/*
- * JkShmFile Directive Handling
- *
- * JkShmFile file
- */
-
-static const char *jk_set_shm_file(cmd_parms * cmd,
- void *dummy, char *shm_file)
-{
-
- /* we need an absolute path */
- jk_shm_file = ap_server_root_relative(cmd->pool, shm_file);
-
-#ifdef CHROOTED_APACHE
- ap_server_strip_chroot(jk_shm_file, 0);
-#endif
-
- if (jk_shm_file == shm_file)
- jk_shm_file = ap_pstrdup(cmd->pool, shm_file);
-
- if (jk_shm_file == NULL)
- return "JkShmFile file name invalid";
-
- return NULL;
-}
-
-/*
- * JkShmSize Directive Handling
- *
- * JkShmSize size in kilobytes
- */
-
-static const char *jk_set_shm_size(cmd_parms * cmd,
- void *dummy, const char *shm_size)
-{
- int sz = 0;
- /* we need an absolute path */
- sz = atoi(shm_size) * 1024;
- if (sz < JK_SHM_DEF_SIZE)
- sz = JK_SHM_DEF_SIZE;
- else
- sz = JK_SHM_ALIGN(sz);
- jk_shm_size = (size_t)sz;
- return NULL;
-}
-
-/*
- * JkLogLevel Directive Handling
- *
- * JkLogLevel debug/info/request/error/emerg
- */
-
-static const char *jk_set_log_level(cmd_parms * cmd,
- void *dummy, char *log_level)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->log_level = jk_parse_log_level(log_level);
-
- return NULL;
-}
-
-/*
- * JkLogStampFormat Directive Handling
- *
- * JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
- */
-
-static const char *jk_set_log_fmt(cmd_parms * cmd,
- void *dummy, char *log_format)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->stamp_format_string = ap_pstrdup(cmd->pool, log_format);
-
- return NULL;
-}
-
-/*
- * JkAutoAlias Directive Handling
- *
- * JkAutoAlias application directory
- */
-
-static const char *jk_set_auto_alias(cmd_parms * cmd,
- void *dummy, char *directory)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->alias_dir = directory;
-
- if (conf->alias_dir == NULL)
- return "JkAutoAlias directory invalid";
-
- return NULL;
-}
-
-/*
- * JkStripSession directive handling
- *
- * JkStripSession On/Off
- */
-
-static const char *jk_set_strip_session(cmd_parms * cmd, void *dummy, int flag)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- /* Set up our value */
- conf->strip_session = flag ? JK_TRUE : JK_FALSE;
-
- return NULL;
-}
-
-/*****************************************************************
- *
- * Actually logging.
- */
-
-typedef const char *(*item_key_func) (request_rec *, char *);
-
-typedef struct
-{
- item_key_func func;
- char *arg;
-} request_log_format_item;
-
-static const char *process_item(request_rec * r,
- request_log_format_item * item)
-{
- const char *cp;
-
- cp = (*item->func) (r, item->arg);
- return cp ? cp : "-";
-}
-
-static void request_log_transaction(request_rec * r, jk_server_conf_t * conf)
-{
- request_log_format_item *items;
- char *str, *s;
- int i;
- int len = 0;
- const char **strs;
- int *strl;
- array_header *format = conf->format;
-
- strs = ap_palloc(r->pool, sizeof(char *) * (format->nelts));
- strl = ap_palloc(r->pool, sizeof(int) * (format->nelts));
- items = (request_log_format_item *) format->elts;
- for (i = 0; i < format->nelts; ++i) {
- strs[i] = process_item(r, &items[i]);
- }
- for (i = 0; i < format->nelts; ++i) {
- len += strl[i] = strlen(strs[i]);
- }
- 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];
- }
- *s = 0;
- jk_log(conf->log, JK_LOG_REQUEST, "%s", str);
-}
-
-/*****************************************************************
- *
- * Parsing the log format string
- */
-
-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_worker_name(request_rec * r, char *a)
-{
- return ap_table_get(r->notes, JK_NOTE_WORKER_NAME);
-}
-
-static const char *log_worker_route(request_rec * r, char *a)
-{
- return ap_table_get(r->notes, JK_NOTE_WORKER_ROUTE);
-}
-
-static const char *log_request_duration(request_rec * r, char *a)
-{
- return ap_table_get(r->notes, JK_NOTE_REQUEST_DURATION);
-}
-
-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;
-}
-
-/* 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_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 struct log_item_list
-{
- char ch;
- item_key_func func;
-} log_item_keys[] = {
-
- {
- 'T', log_request_duration}, {
- 'r', log_request_line}, {
- 'U', log_request_uri}, {
- 's', log_status}, {
- 'b', clf_log_bytes_sent}, {
- 'B', log_bytes_sent}, {
- 'V', log_server_name}, {
- 'v', log_virtual_host}, {
- 'p', log_server_port}, {
- 'H', log_request_protocol}, {
- 'm', log_request_method}, {
- 'q', log_request_query}, {
- 'w', log_worker_name}, {
- 'R', log_worker_route}, {
- '\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_request_log_misc_string(pool * p,
- request_log_format_item * it,
- const char **sa)
-{
- const char *s;
- char *d;
-
- it->func = constant_item;
-
- 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_request_log_item(pool * p,
- request_log_format_item * it,
- const char **sa)
-{
- const char *s = *sa;
- struct log_item_list *l;
-
- if (*s != '%') {
- return parse_request_log_misc_string(p, it, sa);
- }
-
- ++s;
- it->arg = ""; /* For safety's sake... */
-
- l = find_log_func(*s++);
- if (!l) {
- char dummy[2];
-
- dummy[0] = s[-1];
- dummy[1] = '\0';
- return ap_pstrcat(p, "Unrecognized JkRequestLogFormat directive %",
- dummy, NULL);
- }
- it->func = l->func;
- *sa = s;
- return NULL;
-}
-
-static array_header *parse_request_log_string(pool * p, const char *s,
- const char **err)
-{
- array_header *a = ap_make_array(p, 0, sizeof(request_log_format_item));
- char *res;
-
- while (*s) {
- if ((res =
- parse_request_log_item(p,
- (request_log_format_item *)
- ap_push_array(a), &s))) {
- *err = res;
- return NULL;
- }
- }
-
- return a;
-}
-
-/*
- * JkRequestLogFormat Directive Handling
- *
- * JkRequestLogFormat format string
- *
- * %b - Bytes sent, excluding HTTP headers. In CLF format
- * %B - Bytes sent, excluding HTTP headers.
- * %H - The request protocol
- * %m - The request method
- * %p - The canonical Port of the server serving the request
- * %q - The query string (prepended with a ? if a query string exists,
- * otherwise an empty string)
- * %r - First line of request
- * %s - request HTTP status code
- * %T - Requset duration, elapsed time to handle request in seconds '.' micro seconds
- * %U - The URL path requested, not including any query string.
- * %v - The canonical ServerName of the server serving the request.
- * %V - The server name according to the UseCanonicalName setting.
- * %w - Tomcat worker name
- */
-
-static const char *jk_set_request_log_format(cmd_parms * cmd,
- void *dummy, char *format)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->format_string = ap_pstrdup(cmd->pool, format);
-
- return NULL;
-}
-
-/*
- * JkWorkerIndicator Directive Handling
- *
- * JkWorkerIndicator JkWorker
- */
-
-static const char *jk_set_worker_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->worker_indicator = ap_pstrdup(cmd->pool, indicator);
-
- return NULL;
-}
-
-/*
- * Directives Handling for setting various environment names
- * used to overwrite the following request information:
- * - remote_addr
- * - remote_port
- * - remote_host
- * - remote_user
- * - auth_type
- * - server_name
- * - server_port
- */
-static const char *jk_set_remote_addr_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config, &jk_module);
- conf->remote_addr_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-static const char *jk_set_remote_port_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config, &jk_module);
- conf->remote_port_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-static const char *jk_set_remote_host_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config, &jk_module);
- conf->remote_host_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-static const char *jk_set_remote_user_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config, &jk_module);
- conf->remote_user_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-static const char *jk_set_auth_type_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config, &jk_module);
- conf->auth_type_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-static const char *jk_set_local_name_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config, &jk_module);
- conf->local_name_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-static const char *jk_set_local_port_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config, &jk_module);
- conf->local_port_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-/*
- * JkExtractSSL Directive Handling
- *
- * JkExtractSSL On/Off
- */
-
-static const char *jk_set_enable_ssl(cmd_parms * cmd, void *dummy, int flag)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- /* Set up our value */
- conf->ssl_enable = flag ? JK_TRUE : JK_FALSE;
- return NULL;
-}
-
-/*
- * JkHTTPSIndicator Directive Handling
- *
- * JkHTTPSIndicator HTTPS
- */
-
-static const char *jk_set_https_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->https_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-/*
- * JkCERTSIndicator Directive Handling
- *
- * JkCERTSIndicator SSL_CLIENT_CERT
- */
-
-static const char *jk_set_certs_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->certs_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-/*
- * JkCIPHERIndicator Directive Handling
- *
- * JkCIPHERIndicator SSL_CIPHER
- */
-
-static const char *jk_set_cipher_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->cipher_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-/*
- * JkCERTCHAINPrefix Directive Handling
- *
- * JkCERTCHAINPrefix SSL_CLIENT_CERT_CHAIN_
- */
-
-static const char *jk_set_certchain_prefix(cmd_parms * cmd,
- void *dummy, const char *prefix)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->certchain_prefix = ap_pstrdup(cmd->pool, prefix);
-
- return NULL;
-}
-
-/*
- * JkSESSIONIndicator Directive Handling
- *
- * JkSESSIONIndicator SSL_SESSION_ID
- */
-
-static const char *jk_set_session_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->session_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-/*
- * JkKEYSIZEIndicator Directive Handling
- *
- * JkKEYSIZEIndicator SSL_CIPHER_USEKEYSIZE
- */
-
-static const char *jk_set_key_size_indicator(cmd_parms * cmd,
- void *dummy, char *indicator)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->key_size_indicator = ap_pstrdup(cmd->pool, indicator);
- return NULL;
-}
-
-/*
- * JkOptions Directive Handling
- *
- *
- * +ForwardSSLKeySize => Forward SSL Key Size, to follow 2.3 specs but may broke old TC 3.2
- * -ForwardSSLKeySize => Don't Forward SSL Key Size, will make mod_jk works with all TC release
- * ForwardURICompat => Forward URI normally, less spec compliant but mod_rewrite compatible (old TC)
- * ForwardURICompatUnparsed => Forward URI as unparsed, spec compliant but broke mod_rewrite (old TC)
- * ForwardURIEscaped => Forward URI escaped and Tomcat (3.3 rc2) stuff will do the decoding part
- * ForwardDirectories => Forward all directory requests with no index files to Tomcat
- * +ForwardSSLCertChain => Forward SSL certificate chain
- * -ForwardSSLCertChain => Don't forward SSL certificate chain
- */
-
-const char *jk_set_options(cmd_parms * cmd, void *dummy, const char *line)
-{
- int opt = 0;
- int mask = 0;
- char action;
- char *w;
-
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- while (line[0] != 0) {
- w = ap_getword_conf(cmd->pool, &line);
- action = 0;
-
- if (*w == '+' || *w == '-') {
- action = *(w++);
- }
-
- mask = 0;
-
- if (action == '-' && !strncasecmp(w, "ForwardURI", strlen("ForwardURI")))
- return ap_pstrcat(cmd->pool, "JkOptions: Illegal option '-", w,
- "': ForwardURI* options can not be disabled", NULL);
-
- if (!strcasecmp(w, "ForwardURICompat")) {
- opt = JK_OPT_FWDURICOMPAT;
- mask = JK_OPT_FWDURIMASK;
- }
- else if (!strcasecmp(w, "ForwardURICompatUnparsed")) {
- opt = JK_OPT_FWDURICOMPATUNPARSED;
- mask = JK_OPT_FWDURIMASK;
- }
- else if (!strcasecmp(w, "ForwardURIEscaped")) {
- opt = JK_OPT_FWDURIESCAPED;
- mask = JK_OPT_FWDURIMASK;
- }
- else if (!strcasecmp(w, "ForwardURIProxy")) {
- opt = JK_OPT_FWDURIPROXY;
- mask = JK_OPT_FWDURIMASK;
- }
- else if (!strcasecmp(w, "ForwardDirectories")) {
- opt = JK_OPT_FWDDIRS;
- }
- else if (!strcasecmp(w, "ForwardLocalAddress")) {
- opt = JK_OPT_FWDLOCAL;
- }
- else if (!strcasecmp(w, "FlushPackets")) {
- opt = JK_OPT_FLUSHPACKETS;
- }
- else if (!strcasecmp(w, "FlushHeader")) {
- opt = JK_OPT_FLUSHEADER;
- }
- else if (!strcasecmp(w, "DisableReuse")) {
- opt = JK_OPT_DISABLEREUSE;
- }
- else if (!strcasecmp(w, "ForwardSSLCertChain")) {
- opt = JK_OPT_FWDCERTCHAIN;
- }
- else if (!strcasecmp(w, "ForwardKeySize")) {
- opt = JK_OPT_FWDKEYSIZE;
- }
- else if (!strcasecmp(w, "RejectUnsafeURI")) {
- opt = JK_OPT_REJECTUNSAFE;
- }
- else
- return ap_pstrcat(cmd->pool, "JkOptions: Illegal option '", w,
- "'", NULL);
-
- conf->options &= ~mask;
-
- if (action == '-') {
- conf->exclude_options |= opt;
- }
- else if (action == '+') {
- conf->options |= opt;
- }
- else { /* for now +Opt == Opt */
- conf->options |= opt;
- }
- }
- return NULL;
-}
-
-/*
- * JkEnvVar Directive Handling
- *
- * JkEnvVar MYOWNDIR
- */
-
-static const char *jk_add_env_var(cmd_parms * cmd,
- void *dummy,
- char *env_name, char *default_value)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- conf->envvars_has_own = JK_TRUE;
- if (!conf->envvars) {
- conf->envvars = ap_make_table(cmd->pool, 0);
- conf->envvars_def = ap_make_table(cmd->pool, 0);
- conf->envvar_items = ap_make_array(cmd->pool, 0,
- sizeof(envvar_item));
- }
-
- /* env_name is mandatory, default_value is optional.
- * No value means send the attribute only, if the env var is set during runtime.
- */
- ap_table_setn(conf->envvars, env_name, default_value ? default_value : "");
- ap_table_setn(conf->envvars_def, env_name, default_value ? "1" : "0");
-
- return NULL;
-}
-
-/*
- * JkWorkerProperty Directive Handling
- *
- * JkWorkerProperty name=value
- */
-
-static const char *jk_set_worker_property(cmd_parms * cmd,
- void *dummy,
- const char *line)
-{
- server_rec *s = cmd->server;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- if (!jk_worker_properties)
- jk_map_alloc(&jk_worker_properties);
- if (jk_map_read_property(jk_worker_properties, NULL, line,
- JK_MAP_HANDLE_DUPLICATES, conf->log) == JK_FALSE)
- return ap_pstrcat(cmd->temp_pool, "Invalid JkWorkerProperty ", line, NULL);
-
- return NULL;
-}
-
-static const command_rec jk_cmds[] = {
- /*
- * JkWorkersFile specifies a full path to the location of the worker
- * properties file.
- *
- * This file defines the different workers used by apache to redirect
- * servlet requests.
- */
- {"JkWorkersFile", jk_set_worker_file, NULL, RSRC_CONF, TAKE1,
- "The name of a worker file for the Tomcat servlet containers"},
-
- /*
- * JkMountFile specifies a full path to the location of the
- * uriworker properties file.
- *
- * This file defines the different mapping for workers used by apache
- * to redirect servlet requests.
- */
- {"JkMountFile", jk_set_mount_file, NULL, RSRC_CONF, TAKE1,
- "The name of a mount file for the Tomcat servlet uri mappings"},
-
- /*
- * JkMountFileReload specifies the reload check interval for the
- * uriworker properties file.
- *
- * Default value is: JK_URIMAP_DEF_RELOAD
- */
- {"JkMountFileReload", jk_set_mount_file_reload, NULL, RSRC_CONF, TAKE1,
- "The reload check interval of the mount file"},
-
- /*
- * JkMount mounts a url prefix to a worker (the worker need to be
- * defined in the worker properties file.
- */
- {"JkMount", jk_mount_context, NULL, RSRC_CONF|ACCESS_CONF, TAKE12,
- "A mount point from a context to a servlet-engine worker"},
-
- /*
- * JkUnMount unmounts a url prefix to a worker (the worker need to be
- * defined in the worker properties file.
- */
- {"JkUnMount", jk_unmount_context, NULL, RSRC_CONF|ACCESS_CONF, TAKE12,
- "A no mount point from a context to a servlet-engine worker"},
-
- /*
- * JkMountCopy specifies if mod_jk should copy the mount points
- * from the main server to the virtual servers.
- */
- {"JkMountCopy", jk_set_mountcopy, NULL, RSRC_CONF, TAKE1,
- "Should the base server mounts be copied to the virtual server"},
-
- /*
- * JkStripSession specifies if mod_jk should strip the ;jsessionid
- * from the unmapped urls
- */
- {"JkStripSession", jk_set_strip_session, NULL, RSRC_CONF, FLAG,
- "Should the server strip the jsessionid from unmapped URLs"},
-
- /*
- * JkLogFile & JkLogLevel specifies to where should the plugin log
- * its information and how much.
- * JkLogStampFormat specify the time-stamp to be used on log
- */
- {"JkLogFile", jk_set_log_file, NULL, RSRC_CONF, TAKE1,
- "Full path to the mod_jk module log file"},
- {"JkShmFile", jk_set_shm_file, NULL, RSRC_CONF, TAKE1,
- "Full path to the mod_jk module shared memory file"},
- {"JkShmSize", jk_set_shm_size, NULL, RSRC_CONF, TAKE1,
- "Size of the shared memory file in KBytes"},
- {"JkLogLevel", jk_set_log_level, NULL, RSRC_CONF, TAKE1,
- "The mod_jk module log level, can be debug, info, request, error, or emerg"},
- {"JkLogStampFormat", jk_set_log_fmt, NULL, RSRC_CONF, TAKE1,
- "The mod_jk module log format, follow strftime syntax"},
- {"JkRequestLogFormat", jk_set_request_log_format, NULL, RSRC_CONF, TAKE1,
- "The mod_jk module request log format string"},
-
- /*
- * Automatically Alias webapp context directories into the Apache
- * document space.
- */
- {"JkAutoAlias", jk_set_auto_alias, NULL, RSRC_CONF, TAKE1,
- "The mod_jk module automatic context apache alias directory"},
-
- /*
- * Enable worker name to be set in an environment variable.
- * This way one can use LocationMatch together with mod_env,
- * mod_setenvif and mod_rewrite to set the target worker.
- * Use this in combination with SetHandler jakarta-servlet to
- * make mod_jk the handler for the request.
- *
- */
- {"JkWorkerIndicator", jk_set_worker_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains the worker name"},
-
- /*
- * Environment variables used to overwrite the following
- * request information which gets forwarded:
- * - remote_addr
- * - remote_port
- * - remote_host
- * - remote_user
- * - auth_type
- * - server_name
- * - server_port
- */
- {"JkRemoteAddrIndicator", jk_set_remote_addr_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains the remote address"},
- {"JkRemotePortIndicator", jk_set_remote_port_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains the remote port"},
- {"JkRemoteHostIndicator", jk_set_remote_host_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains the remote host name"},
- {"JkRemoteUserIndicator", jk_set_remote_user_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains the remote user name"},
- {"JkAuthTypeIndicator", jk_set_auth_type_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains the type of authentication"},
- {"JkLocalNameIndicator", jk_set_local_name_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains the local name"},
- {"JkLocalPortIndicator", jk_set_local_port_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains the local port"},
-
- /*
- * Apache has multiple SSL modules (for example apache_ssl, stronghold
- * IHS ...). Each of these can have a different SSL environment names
- * The following properties let the administrator specify the envoiroment
- * variables names.
- *
- * HTTPS - indication for SSL
- * CERTS - Base64-Der-encoded client certificates.
- * CIPHER - A string specifing the ciphers suite in use.
- * SESSION - A string specifing the current SSL session.
- * KEYSIZE - Size of Key used in dialogue (#bits are secure)
- */
- {"JkHTTPSIndicator", jk_set_https_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains SSL indication"},
- {"JkCERTSIndicator", jk_set_certs_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains SSL client certificates"},
- {"JkCIPHERIndicator", jk_set_cipher_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains SSL client cipher"},
- {"JkCERTCHAINPrefix", jk_set_certchain_prefix, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment (prefix) that contains SSL client chain certificates"},
- {"JkSESSIONIndicator", jk_set_session_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains SSL session"},
- {"JkKEYSIZEIndicator", jk_set_key_size_indicator, NULL, RSRC_CONF, TAKE1,
- "Name of the Apache environment that contains SSL key size in use"},
- {"JkExtractSSL", jk_set_enable_ssl, NULL, RSRC_CONF, FLAG,
- "Turns on SSL processing and information gathering by mod_jk"},
-
- /*
- * Options to tune mod_jk configuration
- * for now we understand :
- * +ForwardSSLKeySize => Forward SSL Key Size, to follow 2.3 specs but may broke old TC 3.2
- * -ForwardSSLKeySize => Don't Forward SSL Key Size, will make mod_jk works with all TC release
- * ForwardURICompat => Forward URI normally, less spec compliant but mod_rewrite compatible (old TC)
- * ForwardURICompatUnparsed => Forward URI as unparsed, spec compliant but broke mod_rewrite (old TC)
- * ForwardURIEscaped => Forward URI escaped and Tomcat (3.3 rc2) stuff will do the decoding part
- * +ForwardSSLCertChain => Forward SSL certificate chain
- * -ForwardSSLCertChain => Don't forward SSL certificate chain
- */
- {"JkOptions", jk_set_options, NULL, RSRC_CONF, RAW_ARGS,
- "Set one of more options to configure the mod_jk module"},
-
- /*
- * JkEnvVar let user defines envs var passed from WebServer to
- * Servlet Engine
- */
- {"JkEnvVar", jk_add_env_var, NULL, RSRC_CONF, TAKE12,
- "Adds a name of environment variable and an optional value "
- "that should be sent to servlet-engine"},
-
- {"JkWorkerProperty", jk_set_worker_property, NULL, RSRC_CONF, RAW_ARGS,
- "Set workers.properties formated directive"},
-
- {NULL}
-};
-
-/* ====================================================================== */
-/* The JK module handlers */
-/* ====================================================================== */
-
-/*
- * Called to handle a single request.
- */
-static int jk_handler(request_rec * r)
-{
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(r->server->
- module_config,
- &jk_module);
- /* Retrieve the worker name stored by jk_translate() */
- const char *worker_name = ap_table_get(r->notes, JK_NOTE_WORKER_NAME);
- int rc;
-
- JK_TRACE_ENTER(conf->log);
-
- if (ap_table_get(r->subprocess_env, "no-jk")) {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "Into handler no-jk env var detected for uri=%s, declined",
- r->uri);
- JK_TRACE_EXIT(conf->log);
- return DECLINED;
- }
-
- if (r->proxyreq) {
- jk_log(conf->log, JK_LOG_ERROR,
- "Request has proxyreq flag set in mod_jk handler - aborting.");
- JK_TRACE_EXIT(conf->log);
- return HTTP_INTERNAL_SERVER_ERROR;
- }
-
- /* Set up r->read_chunked flags for chunked encoding, if present */
- if ((rc = ap_setup_client_block(r, REQUEST_CHUNKED_DECHUNK))) {
- jk_log(conf->log, JK_LOG_ERROR,
- "Could not setup client_block for chunked encoding - aborting");
- JK_TRACE_EXIT(conf->log);
- return rc;
- }
-
- if (worker_name == NULL && r->handler && !strcmp(r->handler, JK_HANDLER)) {
- /* we may be here because of a manual directive ( that overrides
- * translate and
- * sets the handler directly ). We still need to know the worker.
- */
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "Retrieving environment %s", conf->worker_indicator);
- worker_name = (char *)ap_table_get(r->subprocess_env, conf->worker_indicator);
- if (worker_name) {
- /* The JkWorkerIndicator environment variable has
- * been used to explicitely set the worker without JkMount.
- * This is useful in combination with LocationMatch or mod_rewrite.
- */
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "Retrieved worker (%s) from env %s for %s",
- worker_name, conf->worker_indicator, r->uri);
- }
- else if (worker_env.num_of_workers == 1) {
- /* We have a single worker ( the common case ).
- * ( lb is a bit special, it should count as a single worker but
- * I'm not sure how ). We also have a manual config directive that
- * explicitely give control to us.
- */
- worker_name = worker_env.worker_list[0];
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "Single worker (%s) configuration for %s",
- worker_name, r->uri);
- }
- else if (worker_env.num_of_workers) {
- worker_name = worker_env.worker_list[0];
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "Using first worker (%s) from %d workers for %s",
- worker_name, worker_env.num_of_workers, r->uri);
- }
- }
-
- if (worker_name) {
- jk_worker_t *worker;
-
- worker = wc_get_worker_for_name(worker_name, conf->log);
-
- if (worker) {
-#ifndef NO_GETTIMEOFDAY
- struct timeval tv_begin, tv_end;
- long micro, seconds;
- char *duration = NULL;
-#endif
- int rc = JK_FALSE;
- int is_error = JK_HTTP_SERVER_ERROR;
- apache_private_data_t private_data;
- jk_ws_service_t s;
- jk_pool_atom_t buf[SMALL_POOL_SIZE];
- jk_open_pool(&private_data.p, buf, sizeof(buf));
-
- private_data.read_body_started = JK_FALSE;
- private_data.r = r;
-
- wc_maintain(conf->log);
- jk_init_ws_service(&s);
-
- s.ws_private = &private_data;
- s.pool = &private_data.p;
- ap_table_setn(r->notes, JK_NOTE_WORKER_TYPE,
- wc_get_name_for_type(worker->type, conf->log));
-#ifndef NO_GETTIMEOFDAY
- gettimeofday(&tv_begin, NULL);
-#endif
-
- if (init_ws_service(&private_data, &s, conf)) {
- jk_endpoint_t *end = NULL;
- if (worker->get_endpoint(worker, &end, conf->log)) {
- rc = end->service(end, &s, conf->log, &is_error);
- end->done(&end, conf->log);
-
- if (s.content_read < s.content_length ||
- (s.is_chunked && !s.no_more_chunks)) {
- /*
- * If the servlet engine didn't consume all of the
- * request data, consume and discard all further
- * characters left to read from client
- */
- char *buff = ap_palloc(r->pool, 2048);
- if (buff != NULL) {
- int rd;
- while ((rd =
- ap_get_client_block(r, buff, 2048)) > 0) {
- s.content_read += rd;
- }
- }
- }
- }
-#ifndef NO_GETTIMEOFDAY
- gettimeofday(&tv_end, NULL);
- if (tv_end.tv_usec < tv_begin.tv_usec) {
- tv_end.tv_usec += 1000000;
- tv_end.tv_sec--;
- }
- micro = tv_end.tv_usec - tv_begin.tv_usec;
- seconds = tv_end.tv_sec - tv_begin.tv_sec;
- duration =
- ap_psprintf(r->pool, "%.1ld.%.6ld", seconds, micro);
- ap_table_setn(r->notes, JK_NOTE_REQUEST_DURATION, duration);
-#endif
- if (s.route && *s.route)
- ap_table_setn(r->notes, JK_NOTE_WORKER_ROUTE, s.route);
- if (conf->format != NULL) {
- request_log_transaction(r, conf);
- }
- }
- else {
- jk_log(conf->log, JK_LOG_ERROR, "Could not init service"
- " for worker=%s",
- worker_name);
- jk_close_pool(&private_data.p);
- JK_TRACE_EXIT(conf->log);
- return is_error;
- }
- jk_close_pool(&private_data.p);
-
- if (rc > 0) {
- if (s.extension.use_server_error_pages &&
- s.http_response_status >= s.extension.use_server_error_pages) {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG, "Forwarding status=%d"
- " for worker=%s",
- s.http_response_status, worker_name);
- JK_TRACE_EXIT(conf->log);
- return s.http_response_status;
- }
- /* If tomcat returned no body and the status is not OK,
- let apache handle the error code */
- if (!r->sent_bodyct && r->status >= HTTP_BAD_REQUEST) {
- jk_log(conf->log, JK_LOG_INFO, "No body with status=%d"
- " for worker=%s",
- r->status, worker_name);
- JK_TRACE_EXIT(conf->log);
- return r->status;
- }
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG, "Service finished"
- " with status=%d for worker=%s",
- r->status, worker_name);
- JK_TRACE_EXIT(conf->log);
- return OK; /* NOT r->status, even if it has changed. */
- }
- else if (rc == JK_CLIENT_ERROR) {
- if (is_error != HTTP_REQUEST_ENTITY_TOO_LARGE)
- r->connection->aborted = 1;
- jk_log(conf->log, JK_LOG_INFO, "Aborting connection"
- " for worker=%s",
- worker_name);
- JK_TRACE_EXIT(conf->log);
- return is_error;
- }
- else {
- jk_log(conf->log, JK_LOG_INFO, "Service error=%d"
- " for worker=%s",
- rc, worker_name);
- JK_TRACE_EXIT(conf->log);
- return is_error;
- }
- }
- else {
- jk_log(conf->log, JK_LOG_ERROR, "Could not init service"
- " for worker=%s",
- worker_name);
- JK_TRACE_EXIT(conf->log);
- return HTTP_INTERNAL_SERVER_ERROR;
- }
- }
-
- JK_TRACE_EXIT(conf->log);
- return HTTP_INTERNAL_SERVER_ERROR;
-}
-
-/*
- * Create a default config object.
- */
-static void *create_jk_config(ap_pool * p, server_rec * s)
-{
- jk_server_conf_t *c =
- (jk_server_conf_t *) ap_pcalloc(p, sizeof(jk_server_conf_t));
-
- c->log_fd = -1;
- c->mountcopy = JK_FALSE;
- c->was_initialized = JK_FALSE;
-
- if (s->is_virtual) {
- c->mountcopy = JK_UNSET;
- c->mount_file_reload = JK_UNSET;
- c->log_level = JK_UNSET;
- c->ssl_enable = JK_UNSET;
- c->strip_session = JK_UNSET;
- } else {
- if (!jk_map_alloc(&(c->uri_to_context))) {
- ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, NULL, "Memory error");
- }
- c->mountcopy = JK_FALSE;
- c->mount_file_reload = JK_URIMAP_DEF_RELOAD;
- c->log_level = JK_LOG_DEF_LEVEL;
- c->options = JK_OPT_DEFAULT;
- c->worker_indicator = JK_ENV_WORKER_NAME;
-
- /*
- * Configurable environment variables to overwrite
- * request information using meta data send by a
- * proxy in front of us.
- */
- c->remote_addr_indicator = JK_ENV_REMOTE_ADDR;
- c->remote_port_indicator = JK_ENV_REMOTE_PORT;
- c->remote_host_indicator = JK_ENV_REMOTE_HOST;
- c->remote_user_indicator = JK_ENV_REMOTE_USER;
- c->auth_type_indicator = JK_ENV_AUTH_TYPE;
- c->local_name_indicator = JK_ENV_LOCAL_NAME;
- c->local_port_indicator = JK_ENV_LOCAL_PORT;
-
- /*
- * By default we will try to gather SSL info.
- * Disable this functionality through JkExtractSSL
- */
- c->ssl_enable = JK_TRUE;
- /*
- * The defaults ssl indicators match those in mod_ssl (seems
- * to be in more use).
- */
- c->https_indicator = JK_ENV_HTTPS;
- c->certs_indicator = JK_ENV_CERTS;
- c->cipher_indicator = JK_ENV_CIPHER;
- c->certchain_prefix = JK_ENV_CERTCHAIN_PREFIX;
- c->session_indicator = JK_ENV_SESSION;
- c->key_size_indicator = JK_ENV_KEY_SIZE;
- c->strip_session = JK_FALSE;
- }
- c->envvars_has_own = JK_FALSE;
-
- c->s = s;
-
- return c;
-}
-
-
-/*
- * Utility - copy items from apr table src to dst,
- * for keys that exist in src but not in dst.
- */
-static void merge_apr_table(table *src, table *dst)
-{
- int i;
- const array_header *arr;
- const table_entry *elts;
-
- arr = ap_table_elts(src);
- elts = (const table_entry *)arr->elts;
- for (i = 0; i < arr->nelts; ++i) {
- if (!ap_table_get(dst, elts[i].key)) {
- ap_table_setn(dst, elts[i].key, elts[i].val);
- }
- }
-}
-
-
-static void *merge_jk_config(ap_pool * p, void *basev, void *overridesv)
-{
- jk_server_conf_t *base = (jk_server_conf_t *) basev;
- jk_server_conf_t *overrides = (jk_server_conf_t *) overridesv;
-
- if (!overrides->log_file)
- overrides->log_file = base->log_file;
- if (overrides->log_level == JK_UNSET)
- overrides->log_level = base->log_level;
-
- if (!overrides->stamp_format_string)
- overrides->stamp_format_string = base->stamp_format_string;
- if (!overrides->format_string)
- overrides->format_string = base->format_string;
-
- if (!overrides->worker_indicator)
- overrides->worker_indicator = base->worker_indicator;
-
- if (!overrides->remote_addr_indicator)
- overrides->remote_addr_indicator = base->remote_addr_indicator;
- if (!overrides->remote_port_indicator)
- overrides->remote_port_indicator = base->remote_port_indicator;
- if (!overrides->remote_host_indicator)
- overrides->remote_host_indicator = base->remote_host_indicator;
- if (!overrides->remote_user_indicator)
- overrides->remote_user_indicator = base->remote_user_indicator;
- if (!overrides->auth_type_indicator)
- overrides->auth_type_indicator = base->auth_type_indicator;
- if (!overrides->local_name_indicator)
- overrides->local_name_indicator = base->local_name_indicator;
- if (!overrides->local_port_indicator)
- overrides->local_port_indicator = base->local_port_indicator;
-
- if (overrides->ssl_enable == JK_UNSET)
- overrides->ssl_enable = base->ssl_enable;
- if (!overrides->https_indicator)
- overrides->https_indicator = base->https_indicator;
- if (!overrides->certs_indicator)
- overrides->certs_indicator = base->certs_indicator;
- if (!overrides->cipher_indicator)
- overrides->cipher_indicator = base->cipher_indicator;
- if (!overrides->certchain_prefix)
- overrides->certchain_prefix = base->certchain_prefix;
- if (!overrides->session_indicator)
- overrides->session_indicator = base->session_indicator;
- if (!overrides->key_size_indicator)
- overrides->key_size_indicator = base->key_size_indicator;
-
-/* Don't simply accumulate bits in the JK_OPT_FWDURIMASK region, */
-/* because those are multi-bit values. */
- if (overrides->options & JK_OPT_FWDURIMASK)
- overrides->options |= (base->options & ~base->exclude_options) & ~JK_OPT_FWDURIMASK;
- else
- overrides->options |= (base->options & ~base->exclude_options);
-
- if (base->envvars) {
- if (overrides->envvars && overrides->envvars_has_own) {
-/* merge_apr_table() preserves existing entries in overrides table */
- merge_apr_table(base->envvars, overrides->envvars);
- merge_apr_table(base->envvars_def, overrides->envvars_def);
- }
- else {
- overrides->envvars = base->envvars;
- overrides->envvars_def = base->envvars_def;
- overrides->envvar_items = base->envvar_items;
- }
- }
-
- if (overrides->mountcopy == JK_UNSET && jk_mount_copy_all == JK_TRUE) {
- overrides->mountcopy = JK_TRUE;
- }
- if (overrides->uri_to_context && overrides->mountcopy == JK_TRUE) {
-/* jk_map_copy() preserves existing entries in overrides map */
- if (jk_map_copy(base->uri_to_context, overrides->uri_to_context) == JK_FALSE) {
- jk_error_exit(APLOG_MARK, APLOG_EMERG, overrides->s, p, "Memory error");
- }
- if (!overrides->mount_file)
- overrides->mount_file = base->mount_file;
- }
- if (overrides->mountcopy == JK_TRUE) {
- if (!overrides->alias_dir)
- overrides->alias_dir = base->alias_dir;
- }
- if (overrides->mount_file_reload == JK_UNSET)
- overrides->mount_file_reload = base->mount_file_reload;
- if (overrides->strip_session == JK_UNSET)
- overrides->strip_session = base->strip_session;
-
- return overrides;
-}
-
-static int JK_METHOD jk_log_to_file(jk_logger_t *l, int level,
- int used, char *what)
-{
- if (l &&
- (l->level <= level || level == JK_LOG_REQUEST_LEVEL) &&
- l->logger_private && what && used > 0) {
- jk_file_logger_t *flp = l->logger_private;
- int log_fd = flp->log_fd;
- if (log_fd >= 0) {
-#if defined(WIN32)
- what[used++] = '\r';
-#endif
- what[used++] = '\n';
- if (write(log_fd, what, used) < 0 ) {
- ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, NULL,
- "mod_jk: jk_log_to_file %s failed",
- what);
- }
- }
-
- return JK_TRUE;
- }
-
- return JK_FALSE;
-}
-
-static int log_fd_get(char *key)
-{
- const char *buf=ap_table_get(jk_log_fds, key);
- if (buf)
- return atoi(buf);
- return 0;
-}
-
-static void log_fd_set(pool *p, char *key, int v)
-{
- char *buf=(char *)ap_pcalloc(p, 8*sizeof(char));
- ap_snprintf(buf, 8, "%d", v);
- ap_table_setn(jk_log_fds, key, buf);
-}
-
-static void open_jk_log(server_rec *s, pool *p)
-{
- const char *fname;
- int jklogfd;
- piped_log *pl;
- jk_logger_t *jkl;
- jk_file_logger_t *flp;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- if (!s->is_virtual && !conf->log_file) {
- conf->log_file = ap_server_root_relative(p, JK_LOG_DEF_FILE);
- if (conf->log_file)
- ap_log_error(APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, s,
- "No JkLogFile defined in httpd.conf. "
- "Using default %s", conf->log_file);
- }
-
- if (s->is_virtual && conf->log_file == NULL) {
- ap_log_error(APLOG_MARK, APLOG_ERR, s,
- "mod_jk: Invalid JkLogFile NULL");
- conf->log = main_log;
- return;
- }
- if (s->is_virtual && *(conf->log_file) == '\0') {
- ap_log_error(APLOG_MARK, APLOG_ERR, s,
- "mod_jk: Invalid JkLogFile EMPTY");
- conf->log = main_log;
- return;
- }
-
-#ifdef CHROOTED_APACHE
- ap_server_strip_chroot(conf->log_file, 0);
-#endif
-
- jklogfd = log_fd_get(conf->log_file);
- if (!jklogfd) {
- if (*conf->log_file == '|') {
- if ((pl = ap_open_piped_log(p, conf->log_file + 1)) == NULL) {
- ap_log_error(APLOG_MARK, APLOG_ERR, s,
- "mod_jk: could not open reliable pipe "
- "to jk log %s", conf->log_file + 1);
- exit(1);
- }
- jklogfd = ap_piped_log_write_fd(pl);
- }
- else {
- fname = ap_server_root_relative(p, conf->log_file);
- if (!fname) {
- ap_log_error(APLOG_MARK, APLOG_ERR, s,
- "mod_jk: Invalid JkLog " "path %s", conf->log_file);
- exit(1);
- }
-#if AP_MODULE_MAGIC_AT_LEAST(19990320,14)
- if ((jklogfd = ap_popenf_ex(p, fname, xfer_flags, xfer_mode, 1))
- < 0) {
-#else
- if ((jklogfd = ap_popenf(p, fname, xfer_flags, xfer_mode))
- < 0) {
-#endif
- ap_log_error(APLOG_MARK, APLOG_ERR, s,
- "mod_jk: could not open JkLog " "file %s", fname);
- exit(1);
- }
- }
- log_fd_set(p, conf->log_file, jklogfd);
- }
- conf->log_fd = jklogfd;
- jkl = (jk_logger_t *)ap_palloc(p, sizeof(jk_logger_t));
- flp = (jk_file_logger_t *)ap_palloc(p, sizeof(jk_file_logger_t));
- if (jkl && flp) {
- jkl->log = jk_log_to_file;
- jkl->level = conf->log_level;
- jkl->logger_private = flp;
- flp->log_fd = conf->log_fd;
- conf->log = jkl;
- jk_set_time_fmt(conf->log, conf->stamp_format_string);
- if (main_log == NULL)
- main_log = conf->log;
- return;
- }
-
- return;
-}
-
-static void jk_init(server_rec * s, ap_pool * p)
-{
- int rc;
- server_rec *srv = s;
- const char *err_string = NULL;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
- if (!jk_worker_properties)
- jk_map_alloc(&jk_worker_properties);
- jk_map_put(jk_worker_properties, "ServerRoot", ap_server_root, NULL);
-
- main_server = s;
- jk_log_fds = ap_make_table(p, 0);
-
- /* step through the servers and open each jk logfile
- * and do additional post config initialization.
- */
- for (; srv; srv = srv->next) {
- jk_server_conf_t *sconf = (jk_server_conf_t *)ap_get_module_config(srv->module_config,
- &jk_module);
-
-/*
- * If a virtual server contains no JK directive, httpd shares
- * the config structure. But we don't want to share some settings
- * by default, especially the JkMount rules.
- * Therefore we check, if this config structure really belongs to this
- * vhost, otherwise we create a new one and merge.
- */
- if (sconf && sconf->s != srv) {
- jk_server_conf_t *srvconf = (jk_server_conf_t *)create_jk_config(p, srv);
- sconf = (jk_server_conf_t *)merge_jk_config(p, sconf, srvconf);
- ap_set_module_config(srv->module_config, &jk_module, sconf);
-
- }
-
- if (sconf && sconf->was_initialized == JK_FALSE) {
- sconf->was_initialized = JK_TRUE;
- open_jk_log(srv, p);
- sconf->options &= ~sconf->exclude_options;
- if (sconf->uri_to_context) {
- if (!uri_worker_map_alloc(&(sconf->uw_map),
- sconf->uri_to_context, sconf->log))
- jk_error_exit(APLOG_MARK, APLOG_EMERG, srv,
- p, "Memory error");
- if (sconf->options & JK_OPT_REJECTUNSAFE)
- sconf->uw_map->reject_unsafe = 1;
- else
- sconf->uw_map->reject_unsafe = 0;
- if (sconf->mount_file) {
- sconf->uw_map->fname = sconf->mount_file;
- sconf->uw_map->reload = sconf->mount_file_reload;
- uri_worker_map_switch(sconf->uw_map, sconf->log);
- uri_worker_map_load(sconf->uw_map, sconf->log);
- }
- }
- else {
- if (sconf->mountcopy == JK_TRUE) {
- sconf->uw_map = conf->uw_map;
- }
- }
- if (sconf->format_string) {
- sconf->format =
- parse_request_log_string(p, sconf->format_string, &err_string);
- if (sconf->format == NULL)
- ap_log_error(APLOG_MARK, APLOG_ERR, srv,
- "JkRequestLogFormat format array NULL");
- }
- if (sconf->envvars && sconf->envvars_has_own) {
- int i;
- const array_header *arr;
- const table_entry *elts;
- envvar_item *item;
- const char *envvar_def;
-
- arr = ap_table_elts(sconf->envvars);
- if (arr) {
- elts = (const table_entry *)arr->elts;
- for (i = 0; i < arr->nelts; ++i) {
- item = (envvar_item *)ap_push_array(sconf->envvar_items);
- if (!item)
- jk_error_exit(APLOG_MARK, APLOG_EMERG, srv,
- p, "Memory error");
- item->name = elts[i].key;
- envvar_def = ap_table_get(sconf->envvars_def, elts[i].key);
- if (envvar_def && !strcmp("1", envvar_def) ) {
- item->value = elts[i].val;
- item->has_default = 1;
- }
- else {
- item->value = "";
- item->has_default = 0;
- }
- }
- }
- }
- }
- }
-
- if ((jk_worker_file != NULL) &&
- !jk_map_read_properties(jk_worker_properties, NULL, jk_worker_file, NULL,
- JK_MAP_HANDLE_DUPLICATES, conf->log)) {
- jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p,
- "Error in reading worker properties from '%s'",
- jk_worker_file);
- }
-
- if (jk_map_resolve_references(jk_worker_properties, "worker.",
- 1, 1, conf->log) == JK_FALSE) {
- jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p,
- "Error in resolving configuration references");
- }
-
-#if !defined(WIN32) && !defined(NETWARE)
- if (!jk_shm_file) {
- jk_shm_file = ap_server_root_relative(p, JK_SHM_DEF_FILE);
-
-#ifdef CHROOTED_APACHE
- ap_server_strip_chroot(jk_shm_file, 0);
-#endif
-
- if (jk_shm_file)
- ap_log_error(APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, s,
- "No JkShmFile defined in httpd.conf. "
- "Using default %s", jk_shm_file);
- }
-#endif
-
- if (jk_shm_size == 0)
- jk_shm_size = jk_shm_calculate_size(jk_worker_properties, conf->log);
- else {
- jk_log(conf->log, JK_LOG_WARNING,
- "The optimal shared memory size can now be determined automatically.");
- jk_log(conf->log, JK_LOG_WARNING,
- "You can remove the JkShmSize directive if you want to use the optimal size.");
- }
- if ((rc = jk_shm_open(jk_shm_file, jk_shm_size, conf->log)) != 0)
- jk_log(conf->log, JK_LOG_ERROR,
- "Initializing shm:%s errno=%d. Load balancing workers will not function properly.",
- jk_shm_name(), rc);
-
- /* SREVILAK -- register cleanup handler to clear resources on restart,
- * to make sure log file gets closed in the parent process */
- ap_register_cleanup(p, s, jk_server_cleanup, ap_null_cleanup);
-
- /* we add the URI->WORKER MAP since workers using AJP14 will feed it */
- worker_env.uri_to_worker = conf->uw_map;
- worker_env.virtual = "*"; /* for now */
- worker_env.server_name = (char *)ap_get_server_version();
- worker_env.pool = NULL;
-
- if (wc_open(jk_worker_properties, &worker_env, conf->log)) {
-#if MODULE_MAGIC_NUMBER >= 19980527
- /* Tell apache we're here */
- ap_add_version_component(JK_EXPOSED_VERSION);
-#endif
- jk_log(conf->log, JK_LOG_INFO,
- "%s initialized",
- JK_FULL_EXPOSED_VERSION);
- }
- else {
- jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p,
- "Error in creating the workers."
- " Please consult your mod_jk log file '%s'.", conf->log_file);
- }
- if (conf->uw_map) {
- uri_worker_map_ext(conf->uw_map, conf->log);
- uri_worker_map_switch(conf->uw_map, conf->log);
- }
- for (srv = s; srv; srv = srv->next) {
- jk_server_conf_t *sconf = (jk_server_conf_t *)ap_get_module_config(srv->module_config,
- &jk_module);
- if (conf->uw_map != sconf->uw_map && sconf->uw_map) {
- uri_worker_map_ext(sconf->uw_map, sconf->log);
- uri_worker_map_switch(sconf->uw_map, sconf->log);
- }
- }
-
-}
-
-/*
- * Perform uri to worker mapping, and store the name of the relevant worker
- * in the notes fields of the request_rec object passed in. This will then
- * get picked up in jk_handler().
- */
-static int jk_translate(request_rec * r)
-{
- ap_set_module_config(r->request_config, &jk_module, NULL);
-
- if (!r->proxyreq) {
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(r->server->
- module_config,
- &jk_module);
-
- if (conf) {
- char *clean_uri = ap_pstrdup(r->pool, r->uri);
- const char *worker;
-
- if (ap_table_get(r->subprocess_env, "no-jk")) {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "Into translate no-jk env var detected for uri=%s, declined",
- r->uri);
- return DECLINED;
- }
-
- ap_no2slash(clean_uri);
- if (!conf->uw_map) {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "missing uri map for %s:%s",
- conf->s->server_hostname ? conf->s->server_hostname : "_default_",
- r->uri);
- return DECLINED;
- }
- else {
- rule_extension_t *e;
- worker = map_uri_to_worker_ext(conf->uw_map, clean_uri,
- NULL, &e, NULL, conf->log);
- ap_set_module_config(r->request_config, &jk_module, e);
- }
-
- /* Don't know the worker, ForwardDirectories is set, there is a
- * previous request for which the handler is JK_HANDLER (as set by
- * jk_fixups) and the request is for a directory:
- * --> forward to Tomcat, via default worker */
- if (!worker && (conf->options & JK_OPT_FWDDIRS) &&
- r->prev && r->prev->handler &&
- !strcmp(r->prev->handler, JK_HANDLER) && clean_uri &&
- strlen(clean_uri) && clean_uri[strlen(clean_uri) - 1] == '/') {
-
- if (worker_env.num_of_workers) {
- /* Nothing here to do but assign the first worker since we
- * already tried mapping and it didn't work out */
- worker = worker_env.worker_list[0];
-
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG, "Manual configuration for %s %s",
- clean_uri, worker_env.worker_list[0]);
- }
- }
-
- if (worker) {
- r->handler = ap_pstrdup(r->pool, JK_HANDLER);
- ap_table_setn(r->notes, JK_NOTE_WORKER_NAME, worker);
- }
- else if (conf->alias_dir != NULL) {
- /* Automatically map uri to a context static file */
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "check alias_dir: %s",
- conf->alias_dir);
- if (strlen(clean_uri) > 1) {
- /* Get the context directory name */
- char *context_dir = NULL;
- char *context_path = NULL;
- char *child_dir = NULL;
- char *index = clean_uri;
- char *suffix = strchr(index + 1, '/');
- if (suffix != NULL) {
- int size = suffix - index;
- context_dir = ap_pstrndup(r->pool, index, size);
- /* Get the context child directory name */
- index = index + size + 1;
- suffix = strchr(index, '/');
- if (suffix != NULL) {
- size = suffix - index;
- child_dir = ap_pstrndup(r->pool, index, size);
- }
- else {
- child_dir = index;
- }
- /* Deny access to WEB-INF and META-INF directories */
- if (child_dir != NULL) {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "AutoAlias child_dir: %s",
- child_dir);
- if (!strcasecmp(child_dir, "WEB-INF") ||
- !strcasecmp(child_dir, "META-INF")) {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "AutoAlias HTTP_NOT_FOUND for URI: %s",
- r->uri);
- return HTTP_NOT_FOUND;
- }
- }
- }
- else {
- context_dir = ap_pstrdup(r->pool, index);
- }
-
- context_path = ap_pstrcat(r->pool, conf->alias_dir,
- ap_os_escape_path(r->pool,
- context_dir,
- 1), NULL);
- if (context_path != NULL) {
- DIR *dir = ap_popendir(r->pool, context_path);
- if (dir != NULL) {
- char *escurl =
- ap_os_escape_path(r->pool, clean_uri, 1);
- char *ret =
- ap_pstrcat(r->pool, conf->alias_dir, escurl,
- NULL);
- ap_pclosedir(r->pool, dir);
- /* Add code to verify real path ap_os_canonical_name */
- if (ret != NULL) {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "AutoAlias OK for file: %s",
- ret);
- r->filename = ret;
- return OK;
- }
- }
- else {
- /* Deny access to war files in web app directory */
- int size = strlen(context_dir);
- if (size > 4
- && !strcasecmp(context_dir + (size - 4),
- ".war")) {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "AutoAlias FORBIDDEN for URI: %s",
- r->uri);
- return FORBIDDEN;
- }
- }
- }
- }
- }
- else {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "no match for %s found",
- r->uri);
- if (conf->strip_session == JK_TRUE) {
- char *jsessionid;
- if (r->uri) {
- jsessionid = strstr(r->uri, JK_PATH_SESSION_IDENTIFIER);
- if (jsessionid) {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "removing session identifier [%s] for non servlet url [%s]",
- jsessionid, r->uri);
- *jsessionid = '\0';
- }
- }
- if (r->filename) {
- jsessionid = strstr(r->filename, JK_PATH_SESSION_IDENTIFIER);
- if (jsessionid)
- *jsessionid = '\0';
- }
- }
- }
- }
- }
-
- return DECLINED;
-}
-
-/* In case ForwardDirectories option is set, we need to know if all files
- * mentioned in DirectoryIndex have been exhausted without success. If yes, we
- * need to let mod_dir know that we want Tomcat to handle the directory
- */
-static int jk_fixups(request_rec * r)
-{
- /* This is a sub-request, probably from mod_dir */
- if (r->main) {
- jk_server_conf_t *conf = (jk_server_conf_t *)
- ap_get_module_config(r->server->module_config, &jk_module);
- char *worker = (char *)ap_table_get(r->notes, JK_NOTE_WORKER_NAME);
-
- if (ap_table_get(r->subprocess_env, "no-jk")) {
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG,
- "Into fixup no-jk env var detected for uri=%s, declined",
- r->uri);
- return DECLINED;
- }
-
- /* Only if we have no worker and ForwardDirectories is set */
- if (!worker && (conf->options & JK_OPT_FWDDIRS)) {
- char *dummy_ptr[1], **names_ptr, *idx;
- int num_names;
- dir_config_rec *d = (dir_config_rec *)
- ap_get_module_config(r->per_dir_config, &dir_module);
-
- /* Direct lift from mod_dir */
- if (d->index_names) {
- names_ptr = (char **)d->index_names->elts;
- num_names = d->index_names->nelts;
- }
- else {
- dummy_ptr[0] = DEFAULT_INDEX;
- names_ptr = dummy_ptr;
- num_names = 1;
- }
-
- /* Where the index file would start within the filename */
- idx = r->filename + strlen(r->filename) -
- strlen(names_ptr[num_names - 1]);
-
- /* The requested filename has the last index file at the end */
- if (idx >= r->filename && !strcmp(idx, names_ptr[num_names - 1])) {
- r->uri = r->main->uri; /* Trick mod_dir with URI */
- r->finfo.st_mode = S_IFREG; /* Trick mod_dir with file stat */
-
- /* We'll be checking for handler in r->prev later on */
- r->main->handler = ap_pstrdup(r->pool, JK_HANDLER);
-
- if (JK_IS_DEBUG_LEVEL(conf->log))
- jk_log(conf->log, JK_LOG_DEBUG, "ForwardDirectories on: %s",
- r->uri);
- }
- }
- }
-
- return DECLINED;
-}
-
-static void child_exit_handler(server_rec * s, ap_pool * p)
-{
- /* srevilak - refactor cleanup body to jk_generic_cleanup() */
- jk_generic_cleanup(s);
- jk_shm_close();
-}
-
-static void child_init_handler(server_rec * s, ap_pool * p)
-{
- int rc;
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- JK_TRACE_ENTER(conf->log);
-
- if ((rc = jk_shm_attach(jk_shm_file, jk_shm_size, conf->log)) != 0)
- jk_log(conf->log, JK_LOG_ERROR, "Attaching shm:%s errno=%d",
- jk_shm_name(), rc);
-
- JK_TRACE_EXIT(conf->log);
-
-}
-
-
-/** srevilak -- registered as a cleanup handler in jk_init */
-static void jk_server_cleanup(void *data)
-{
- jk_generic_cleanup((server_rec *) data);
- jk_shm_close();
-}
-
-
-/** BEGIN SREVILAK
- * body taken from exit_handler()
- */
-static void jk_generic_cleanup(server_rec *s)
-{
-
- if (jk_worker_properties) {
- jk_map_free(&jk_worker_properties);
- jk_worker_properties = NULL;
- jk_worker_file = NULL;
- jk_mount_copy_all = JK_FALSE;
- }
-
- /* loop through all available servers to clean up all configuration
- * records we've created
- */
- while (NULL != s) {
- jk_server_conf_t *conf =
- (jk_server_conf_t *) ap_get_module_config(s->module_config,
- &jk_module);
-
- if (conf && conf->was_initialized == JK_TRUE) {
- /* On pool cleanup pass NULL for the jk_logger to
- prevent segmentation faults on Windows because
- we can't guarantee what order pools get cleaned
- up between APR implementations. */
- wc_close(NULL);
- if (conf->uri_to_context) {
- jk_map_free(&conf->uri_to_context);
- /* We cannot have allocated uw_map
- * unless we've allocated uri_to_context
- */
- if (conf->uw_map)
- uri_worker_map_free(&conf->uw_map, NULL);
- }
- conf->was_initialized = JK_FALSE;
- }
- s = s->next;
- }
-}
-
-/** END SREVILAK **/
-
-
-static const handler_rec jk_handlers[] = {
- {JK_MAGIC_TYPE, jk_handler},
- {JK_HANDLER, jk_handler},
- {NULL}
-};
-
-module MODULE_VAR_EXPORT jk_module = {
- STANDARD_MODULE_STUFF,
- jk_init, /* module initializer */
- NULL, /* per-directory config creator */
- NULL, /* dir config merger */
- create_jk_config, /* server config creator */
- merge_jk_config, /* server config merger */
- jk_cmds, /* command table */
- jk_handlers, /* [7] list of handlers */
- jk_translate, /* [2] filename-to-URI translation */
- NULL, /* [5] check/validate user_id */
- NULL, /* [6] check user_id is valid *here* */
- NULL, /* [4] check access by host address */
- NULL, /* XXX [7] MIME type checker/setter */
- jk_fixups, /* [8] fixups */
- NULL, /* [10] logger */
- NULL, /* [3] header parser */
- child_init_handler, /* apache child process initializer */
- child_exit_handler, /* apache child process exit/cleanup */
- NULL /* [1] post read_request handling */
-#ifdef EAPI
- /*
- * Extended module APIs, needed when using SSL.
- * STDC say that we do not have to have them as NULL but
- * why take a chance
- */
- , NULL, /* add_module */
- NULL, /* remove_module */
- NULL, /* rewrite_command */
- NULL, /* new_connection */
- NULL /* close_connection */
-#endif /* EAPI */
-};
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.dsp b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.dsp
deleted file mode 100644
index b4e8f306..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.dsp
+++ /dev/null
@@ -1,295 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_jk" - 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_jk - 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_jk.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_jk.mak" CFG="mod_jk - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "mod_jk - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_jk - 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_jk - 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 /Zi /O2 /Oy- /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_JK_EXPORTS" /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "..\common" /I "$(APACHE1_HOME)\include" /I "$(APACHE1_HOME)\src\include" /I "$(APACHE1_HOME)\src\os\win32" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_JK_EXPORTS" /Fd"Release\mod_jk_src" /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /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 user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 ApacheCore.lib kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:"0x6A6B0000" /subsystem:windows /dll /debug /machine:I386 /out:"Release/mod_jk.so" /libpath:"$(APACHE1_HOME)\libexec" /libpath:"$(APACHE1_HOME)\src\CoreR" /libpath:"$(APACHE1_HOME)\src\Release" /opt:ref
-
-!ELSEIF "$(CFG)" == "mod_jk - 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" /D "_MBCS" /D "_USRDLL" /D "MOD_JK_EXPORTS" /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\common" /I "$(APACHE1_HOME)\include" /I "$(APACHE1_HOME)\src\include" /I "$(APACHE1_HOME)\src\os\win32" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_JK_EXPORTS" /Fd"Debug\mod_jk_src" /FD /c
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /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 user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 ApacheCore.lib kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib /nologo /base:"0x6A6B0000" /subsystem:windows /dll /incremental:no /debug /machine:I386 /out:"Debug/mod_jk.so" /libpath:"$(APACHE1_HOME)\libexec" /libpath:"$(APACHE1_HOME)\src\CoreD" /libpath:"$(APACHE1_HOME)\src\Debug"
-
-!ENDIF
-
-# Begin Target
-
-# Name "mod_jk - Win32 Release"
-# Name "mod_jk - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\common\jk_ajp12_worker.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_ajp13.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_ajp13_worker.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_ajp14.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_ajp14_worker.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_ajp_common.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_connect.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_context.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_jni_worker.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_lb_worker.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_map.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_md5.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_msg_buff.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_pool.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_shm.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_sockbuf.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_status.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_uri_worker_map.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_url.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_util.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_worker.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\mod_jk.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\common\jk_ajp12_worker.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_ajp13.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_ajp13_worker.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_ajp14.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_ajp14_worker.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_ajp_common.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_connect.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_context.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_global.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_jni_worker.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_lb_worker.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_logger.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_map.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_md5.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_msg_buff.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_mt.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_pool.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_service.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_shm.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_sockbuf.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_status.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_uri_worker_map.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_url.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_util.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_worker.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\common\jk_worker_list.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.exp b/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.exp
deleted file mode 100644
index a4b90e5b..00000000
--- a/rubbos/app/tomcat-connectors-1.2.32-src/native/apache-1.3/mod_jk.exp
+++ /dev/null
@@ -1 +0,0 @@
-mod_jk.exp