manoj 99/08/19 13:53:36
Modified: pthreads INSTALL KEYS Makefile.tmpl config.layout configure
pthreads/src .gdbinit ApacheCore.def ApacheCore.dsp
ApacheCore.mak CHANGES Configuration.tmpl Configure
pthreads/src/ap Makefile.tmpl ap.dsp ap.mak ap_md5c.c
ap_snprintf.c
pthreads/src/helpers GuessOS TestCompile binbuild.sh
buildinfo.sh find-dbm-lib mkshadow.sh
pthreads/src/include ap.h ap_config.h ap_md5.h ap_mmn.h
http_conf_globals.h http_core.h httpd.h
pthreads/src/main acceptlock.c buff.c http_config.c
http_core.c http_main.c http_protocol.c rfc1413.c
util.c util_script.c util_uri.c
pthreads/src/modules/experimental Makefile.tmpl
pthreads/src/modules/proxy ApacheModuleProxy.dsp
ApacheModuleProxy.mak proxy_cache.c proxy_ftp.c
pthreads/src/modules/standard .cvsignore mod_access.c
mod_auth.c mod_auth_db.c mod_auth_dbm.c mod_cgi.c
mod_log_config.c mod_rewrite.c mod_rewrite.h
mod_unique_id.c
pthreads/src/os/bs2000 Makefile.tmpl bs2login.c os.h
pthreads/src/os/os2 util_os2.c
pthreads/src/os/tpf os.c os.h
pthreads/src/os/unix os.c
pthreads/src/os/win32 ApacheModuleRewrite.dsp
ApacheModuleRewrite.mak os.h registry.c
pthreads/src/os/win32/installer/installdll install.c
pthreads/src/regex debug.c main.c split.c
pthreads/src/support Makefile.tmpl README ab.c apxs.8
apxs.pl htdigest.c htpasswd.1 htpasswd.c httpd.8
httpd.exp suexec.c
pthreads/src/test check_chunked
Log:
merge the differences in apache-1.3 from tag apache-apr-merge-3 to
APACHE_1_3_9.
Revision Changes Path
1.5 +3 -3 apache-apr/pthreads/INSTALL
Index: INSTALL
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/INSTALL,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- INSTALL 1999/06/10 06:25:33 1.4
+++ INSTALL 1999/08/19 20:51:48 1.5
@@ -82,8 +82,8 @@
- Linux - SunOS - UnixWare - Mac OS X Server
- FreeBSD - Solaris - AIX - Mac OS
- OpenBSD - IRIX - SCO - OpenStep/Mach
- - NetBSD - HPUX - ReliantUNIX
- - BSDI - Digital Unix
+ - NetBSD - HPUX - ReliantUNIX - DYNIX/ptx
+ - BSDI - Digital Unix - DGUX
o Entirely unsupported platforms are:
- Ultrix
@@ -326,7 +326,7 @@
this way implicitly enables them itself).
Note 1: The --enable-shared option DOES NOT AUTOMATICALLY enable the
- module because there are variants like `--enable-shared=all'
+ module because there are variants like `--enable-shared=max'
which should not imply `--enable-module=all'.
Note 2: Per default the DSO mechanism is globally disabled, i.e. no
1.4 +232 -123 apache-apr/pthreads/KEYS
Index: KEYS
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/KEYS,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- KEYS 1999/06/10 06:25:34 1.3
+++ KEYS 1999/08/19 20:51:49 1.4
@@ -386,133 +386,242 @@
Type Bits/KeyID Date User ID
-pub 999/F88341D9 1994/11/08 Lars Eilebrecht <[EMAIL PROTECTED]>
+pub 999/F88341D9 1994/11/08 Lars Eilebrecht <[EMAIL PROTECTED]>
+ Lars Eilebrecht <[EMAIL PROTECTED]>
+ Lars Eilebrecht <[EMAIL PROTECTED]>
Lars Eilebrecht <[EMAIL PROTECTED]>
- Lars `SFX' Eilebrecht <[EMAIL PROTECTED]>
- Lars `SFX' Eilebrecht <[EMAIL PROTECTED]>
- Lars `SFX' Eilebrecht <[EMAIL PROTECTED]>
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: 2.6.3a
+Version: 2.6.3ia
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
-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
-u8i03dqPbuVwfrxSzy+m
-=tg0D
+euxOD3v9gauyf1u4lkfyLIsCepuJqpkH+aOviE9VhTcE/D6Pt/L4g0HZAAURtCRM
+YXJzIEVpbGVicmVjaHQgPGxhcnNAaHlwZXJyZWFsLm9yZz6JAJUDBRA3pN73pBlG
+R0SoBbUBAahrA/9/Pyd+R/2vz0is/Tuu6aniMYb5O09OWypVtJ+1QB0Hr2pTB7MR
+Spb8ljpMTT+Mv+hE9RZm0lxwW6OgYbosrDCwpw39Tfs89UjFJMmCj+UyThmpt52k
+g3MkcRD7C7J0w+RVV+EPs67vLya3wKRRXKa5i3I1RlznleiJwxxGAgaxOokAlAMF
+EzeoM6P9LZCSqJB7JQEB9XYD9R+ZzFmtJuclCbKR7zZcB/5lqpbmuDRMStAaBIq7
+KZ019tbuyj8RGdc04UFBAVL31pwHl2hrBTsCw0ZsVudvRg1ufn9KwNQnmO4j9fbE
+fYJ1gNDgTaf0zMZ5KdKAhNtw0Wx8tAntvqjcxM//h4lSMn8HWiYlRqNFSxRT0nGT
+CxqJAJMDBRA3peHbT37mpPWwmrUBAXpIA+kBT2YJm3tep61cxMn64OlY+i/OOt05
+Of+fcJwPwD4q0hxXCeWMYSueDvavvJG4+42T1O8xLPCeR6cqe8PBtXlRbyY4b6cI
+mFRuOsFlqEtpXNmJ9AY2KIU8bhZBuzckS6oXGxbM40PiXsIwREib3J5OY6G4YG23
+8LpTheINpKmJAJUDBRA3nOBupMNFzIvCD00BAXGEA/98Rkn6Ncn9BgFUJlLskcsw
+Bn45IJhIJtLYIqyjSWZY9iGPU41txPPcqi2k2atn03ThUufQc4V1R6pnLZwijeoA
+pd3AuXv7o0wRj/zi9lrhpQpE5L/9YzJ+uGkHTMjMBSks74IR87QVebdMxSvFYBPK
+QbwAVohgOBdZyNYyiCn3SokBFQMFEDecWF2urbkCPI45bQEBc40IAJ7NUAL5a5Bh
+qUDf60pLZlYonowEbAnnkT+0pnp70JD1w4+bi1dSa/iboU4Kedf9tqGnPlC6LhN+
+uPWSyJcZ4AxkyhBPoezUdpKDYxezLbSlnsWPpjSHo2iYani7uSDFjppTq5vmmkPW
+lW2NuI9DvXtDS6UnHJa31CqvVl60vmuyQyceI75UK/Qe4kZRgfFQsLrCWpiw6fLu
+KB9NWm5wVt09ZN4U3Zo7eSNVZfSSqzkPKgXR21yD79Qs66PxjM+SH6PrbD6UEtkW
+llB42nzdiQ/8MGNCFLgnaYqUkLe58Y2oicWy7OxC+wWPxuvCW64TF8uGkDlF8ors
+J5DTX6c57HqJAJUDBRA3ovk3JBRJVbhWhOUBAWmRA/92NqJsbkEExxDNrAeQB5Y0
+draruR6h4BTWreJtFH4WitgnqOvU8ylveGLMLiv/cZKRmZuDaBncoQ+mdCMOeZNB
+qW0xGKS4nm+rTw7LlG0DjyO/fDTe8LXdQBxR5hDcm+ynfH/Q16x2Nov7DO9NBvkq
+vvp/nj2KzGH8wrgsHFzOkIkBFQIFEzeOINlR6m16P5LTsQEBE2cH/00BLuWwe/bX
+DqL9+qxsx+Ko53cuJj6ZLwc7UU/YKEW4/9q7EVG3slfbl4aPWWURH5XCpn0iDpKc
+fEvgsbGe6yEoxpDQkj2fTnU9z1B7aitb2u/a1NMhdgNBOHvU0p9dVlaanqsGG0zV
+KE2yxZOa5R7H27PESjK2vT0NxljuUV0zV65oQgb3zT8a1DNnpvbVcPskTSrPiecm
+p8B3sH0OdG9mCAEfO2QDLcg9+XDOH7M1BvH/x6eo3ccj4TUAIx0GCz3LsEenAxkw
+18Bgdu25jhBcjdgNj1yvEbD/+vc6iL3HkuPbDt2jtc25QVRNPYtMDPVOXCzRovAJ
+WOEMaLb74hiJAJUCBRA3jiC/xEaR6Lw5pc0BAZshBACeTZNGRkwDJC4BKFan90qG
+RCAxkzFCVxyFjetBqwkeFsWM4E1dKxPoObjR0lrsXt+IbxZ0xUQB6yquCyIWZvyl
+v4y77ZxBfklHQwOZimA1rinxgOsZozdAJY5OztaScc5fKEDmMGlbc8Kn0UL7k3+p
+FOF+XuMktL3ZUt9nyEbU0YkBFQMFEDeOS7Cec+sKTVjuUQEB4I0H/Aw3vqOo4y12
+XODHVnRiRcZ4fRunqF5KsqHdBuf3Bh8fH99iwlIV6rj7Rdod9OjE10ARCvoxiaYj
+Ev+DF88+xam77IkDks0IGU3ou+c2RjPI9h189FWG8q5m04ZcHtvo3GnGvmgaD5wd
+setAM/xg4279gktoUi/o/Xi6DpJ0mx0VBOuTVwnVEKoCUWJtWrOjVEF4teSrI8n4
+Mb+Y/Cche/iu8l3t9fnny90RfOg1r6jSJi7wy9XSgVangSCjWlrn/gbYmsH7wb2B
+9BUfsiEu2HAZVAIGuOZeU0nqDl4Z91aMK8scVBKBHmeST7dYB6KqXyQaGmDDsxU2
+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
+=Duku
-----END PGP PUBLIC KEY BLOCK-----
1.5 +8 -1 apache-apr/pthreads/Makefile.tmpl
Index: Makefile.tmpl
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/Makefile.tmpl,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- Makefile.tmpl 1999/06/10 06:25:34 1.4
+++ Makefile.tmpl 1999/08/19 20:51:50 1.5
@@ -259,6 +259,7 @@
$(MKDIR) $(root)$(iconsdir)
$(MKDIR) $(root)$(cgidir)
$(MKDIR) $(root)$(includedir)
+ $(MKDIR) $(root)$(includedir)/xml
$(MKDIR) $(root)$(runtimedir)
$(MKDIR) $(root)$(logfiledir)
$(MKDIR) $(root)$(proxycachedir)
@@ -277,6 +278,11 @@
[EMAIL PROTECTED] [ ".`grep '^[ ]*AddModule.*mod_so\.o'
$(TOP)/$(SRC)/Configuration.apaci`" != . ]; then \
echo "$(INSTALL_CORE) $(TOP)/$(SRC)/$(TARGET)
$(root)$(sbindir)/$(TARGET)"; \
$(INSTALL_CORE) $(TOP)/$(SRC)/$(TARGET)
$(root)$(sbindir)/$(TARGET); \
+ SHLIB_EXPORT_FILES="`grep '^SHLIB_EXPORT_FILES='
$(TOP)/$(SRC)/Makefile | sed -e 's:^.*=::'`"; \
+ if [ ".$${SHLIB_EXPORT_FILES}" != . ]; then \
+ $(CP) $(TOP)/$(SRC)/support/httpd.exp
$(root)$(libexecdir)/; \
+ chmod 644 $(root)$(libexecdir)/httpd.exp; \
+ fi; \
else \
echo "$(INSTALL_PROGRAM) $(TOP)/$(SRC)/$(TARGET)
$(root)$(sbindir)/$(TARGET)"; \
$(INSTALL_PROGRAM) $(TOP)/$(SRC)/$(TARGET)
$(root)$(sbindir)/$(TARGET); \
@@ -422,12 +428,13 @@
install-include:
@echo "===> [include: Installing Apache C header files]"
$(CP) $(TOP)/$(SRC)/include/*.h $(root)$(includedir)/
+ $(CP) $(TOP)/$(SRC)/lib/expat-lite/*.h $(root)$(includedir)/xml/
@osdir=`grep '^OSDIR=' $(TOP)/$(SRC)/Makefile.config | sed -e
's:^OSDIR=.*/os/:os/:'`; \
echo "$(CP) $(TOP)/$(SRC)/$${osdir}/os.h
$(root)$(includedir)/"; \
$(CP) $(TOP)/$(SRC)/$${osdir}/os.h $(root)$(includedir)/; \
echo "$(CP) $(TOP)/$(SRC)/$${osdir}/os-inline.c
$(root)$(includedir)/"; \
$(CP) $(TOP)/$(SRC)/$${osdir}/os-inline.c $(root)$(includedir)/
- chmod 644 $(root)$(includedir)/*.h
+ chmod 644 $(root)$(includedir)/*.h $(root)$(includedir)/xml/*.h
@echo "<=== [include]"
# create an initial document root containing the Apache manual,
1.4 +22 -1 apache-apr/pthreads/config.layout
Index: config.layout
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/config.layout,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- config.layout 1999/06/10 06:25:34 1.3
+++ config.layout 1999/08/19 20:51:51 1.4
@@ -101,7 +101,7 @@
sysconfdir: /etc/httpd/conf
datadir: /home/httpd
iconsdir: $datadir/icons
- htdocsdir: $datadir/htdocs
+ htdocsdir: $datadir/html
cgidir: $datadir/cgi-bin
includedir: $prefix/include/apache
localstatedir: /var
@@ -129,3 +129,24 @@
logfiledir: $localstatedir/logs
proxycachedir: $localstatedir/proxy
</Layout>
+
+# BeOS layout...
+<Layout beos>
+ prefix: /boot/home/apache
+ exec_prefix: $prefix
+ bindir: $exec_prefix/bin
+ sbindir: $exec_prefix/bin
+ libexecdir: $exec_prefix/libexec
+ mandir: $prefix/man
+ sysconfdir: $prefix/conf
+ datadir: $prefix
+ iconsdir: $datadir/icons
+ htdocsdir: $datadir/htdocs
+ cgidir: $datadir/cgi-bin
+ includedir: $prefix/include
+ localstatedir: $prefix
+ runtimedir: $localstatedir/logs
+ logfiledir: $localstatedir/logs
+ proxycachedir: $localstatedir/proxy
+</Layout>
+
1.5 +44 -17 apache-apr/pthreads/configure
Index: configure
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/configure,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- configure 1999/06/10 06:25:35 1.4
+++ configure 1999/08/19 20:51:51 1.5
@@ -317,9 +317,19 @@
## Platform-specific defaults
##
case $PLATFORM in
- *-apple-rhapsody*) default_layout="Mac OS X Server";;
- *-apple-macos*) default_layout="Mac OS X Server";;
- *) default_layout="Apache";;
+ *-apple-rhapsody*)
+ default_layout="Mac OS X Server"
+ iflags_core="${iflags_core} -S \"-S\""
+ iflags_dso="${iflags_dso} -S \"-S\""
+ ;;
+ *-apple-macos*)
+ default_layout="Mac OS X Server"
+ iflags_core="${iflags_core} -S \"-S\""
+ iflags_dso="${iflags_dso} -S \"-S\""
+ ;;
+ *)
+ default_layout="Apache"
+ ;;
esac
##
@@ -714,8 +724,8 @@
esac
case "$apc_feature" in
rule )
- apc_optarg=`echo "$apc_optarg" | tr "A-Z" "a-z"`
- apc_optarg_real=`echo "$apc_optarg" | tr "a-z" "A-Z"`
+ apc_optarg=`echo "$apc_optarg" | tr '[A-Z]' '[a-z]'`
+ apc_optarg_real=`echo "$apc_optarg" | tr '[a-z]' '[A-Z]'`
eval "exists=\$rule_${apc_optarg}"
if [ "x$exists" = "x" ]; then
echo "configure:Error: No such rule named
'${apc_optarg_real}'" 1>&2
@@ -732,6 +742,7 @@
eval "module_${module}=yes"
done
IFS="$OOIFS"
+ module_auth_digest=no # conflict with mod_digest
;;
most )
OOIFS="$IFS"
@@ -744,6 +755,7 @@
module_mmap_static=no # not all platforms have
mmap()
module_so=no # not all platforms have
dlopen()
module_example=no # only for developers
+ module_auth_digest=no # conflict with mod_digest
module_log_agent=no # deprecated
module_log_referer=no # deprecated
;;
@@ -809,8 +821,8 @@
esac
case "$apc_feature" in
rule )
- apc_optarg=`echo "$apc_optarg" | tr "A-Z" "a-z"`
- apc_optarg_real=`echo "$apc_optarg" | tr "a-z" "A-Z"`
+ apc_optarg=`echo "$apc_optarg" | tr '[A-Z]' '[a-z]'`
+ apc_optarg_real=`echo "$apc_optarg" | tr '[a-z]' '[A-Z]'`
eval "exists=\$rule_${apc_optarg}"
if [ "x$exists" = "x" ]; then
echo "configure:Error: No such rule named
'${apc_optarg_real}'" 1>&2
@@ -991,14 +1003,14 @@
exit 1
fi
if [ "x`$aux/getuid.sh`" != "x0" ]; then
- echo " + Warning: You enabled the suEXEC feature. Be aware that you
need" 1>&2
- echo " + root privileges for this, at the latest at the installation
step." 1>&2
+ echo " + Warning: You have enabled the suEXEC feature. Be aware that
you need" 1>&2
+ echo " + root privileges to complete the final installation step."
1>&2
fi
fi
if [ "x$PERL" = "xno-perl-on-this-system" ]; then
if [ "x$quiet" = "xno" ]; then
- echo " + Warning: no Perl interpreter available for support scripts."
- echo " + Perhaps you have to select one with --with-perl=FILE."
+ echo " + Warning: no Perl interpreter detected for support scripts."
+ echo " + Perhaps you need to specify one with --with-perl=FILE."
fi
fi
@@ -1274,7 +1286,7 @@
OIFS="$IFS"
IFS=':'
for rule in $rules; do
- name="`echo $rule | tr "a-z" "A-Z"`"
+ name="`echo $rule | tr '[a-z]' '[A-Z]'`"
eval "val=\$rule_$rule"
echo $SEO "s%^\\(Rule $name=\\).*%\\1$val%g" >>$sedsubst
if [ "x$verbose" = "xyes" ]; then
@@ -1382,22 +1394,28 @@
fi
# generate module directives
+# (paths are modules/foo/mod_bar.ext and modules/foo/libbar.ext)
OIFS="$IFS"
IFS=':'
for module in $modules; do
eval "add=\$module_$module"
if [ "x$add" = "xyes" ]; then
- echo $SEO "s%^.*\\(AddModule.*[_b/]$module\\..*\\)%\\1%g" >>$sedsubst
- echo $SEO "s%^.*\\(SharedModule.*[_b/]$module\\..*\\)%\\1%g"
>>$sedsubst
+ echo $SEO "s%^.*\\(AddModule.*mod_$module\\..*\\)%\\1%g" >>$sedsubst
+ echo $SEO "s%^.*\\(AddModule.*lib$module\\..*\\)%\\1%g" >>$sedsubst
+ echo $SEO "s%^.*\\(SharedModule.*mod_$module\\..*\\)%\\1%g"
>>$sedsubst
+ echo $SEO "s%^.*\\(SharedModule.*lib$module\\..*\\)%\\1%g"
>>$sedsubst
m="yes"
else
- echo $SEO "s%^.*\\(AddModule.*[_b/]$module\\..*\\)%# \\1%g"
>>$sedsubst
- echo $SEO "s%^.*\\(SharedModule.*[_b/]$module\\..*\\)%# \\1%g"
>>$sedsubst
+ echo $SEO "s%^.*\\(AddModule.*mod_$module\\..*\\)%# \\1%g"
>>$sedsubst
+ echo $SEO "s%^.*\\(AddModule.*lib$module\\..*\\)%# \\1%g" >>$sedsubst
+ echo $SEO "s%^.*\\(SharedModule.*mod_$module\\..*\\)%# \\1%g"
>>$sedsubst
+ echo $SEO "s%^.*\\(SharedModule.*lib$module\\..*\\)%# \\1%g"
>>$sedsubst
m=no
fi
eval "share=\$shared_$module"
if [ "x$share" = "xyes" ]; then
- echo $SEO
"s%^\\(.*\\)AddModule\\(.*[_b/]$module\\.\\)[oam].*\\(.*\\)%\\1SharedModule\\2so\\3%g"
>>$sedsubst
+ echo $SEO
"s%^\\(.*\\)AddModule\\(.*mod_$module\\.\\)[oam].*\\(.*\\)%\\1SharedModule\\2so\\3%g"
>>$sedsubst
+ echo $SEO
"s%^\\(.*\\)AddModule\\(.*lib$module\\.\\)[oam].*\\(.*\\)%\\1SharedModule\\2so\\3%g"
>>$sedsubst
m="$m [shared]"
fi
if [ "x$verbose" = "xyes" ]; then
@@ -1405,6 +1423,15 @@
fi
done
IFS="$OIFS"
+
+# translate module names to dll names for OS/2 so that they are no more
+# than 8 characters long and have an extension of "dll" instead of "so"
+case $PLATFORM in
+ *OS/2* )
+ echo $SEO "s%/mod_\\(.\\{1,8\\}\\).*\\.so%/\\1\\.dll%" >>$sedsubst
+ echo $SEO "s%/\\(lib.*\\)\\.so$%/\\1.dll%" >>$sedsubst
+ ;;
+esac
# split sedsubst into chunks of 50 commands
# to workaround limits in braindead seds
1.2 +13 -0 apache-apr/pthreads/src/.gdbinit
Index: .gdbinit
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/.gdbinit,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- .gdbinit 1999/01/21 23:08:31 1.1
+++ .gdbinit 1999/08/19 20:51:56 1.2
@@ -13,3 +13,16 @@
document dump_table
Print the key/value pairs in a table.
end
+
+define dump_string_array
+ set $a = (char **)((array_header *)$arg0)->elts
+ set $n = (int)((array_header *)$arg0)->nelts
+ set $i = 0
+ while $i < $n
+ printf "[%u] '%s'\n", $i, $a[$i]
+ set $i = $i + 1
+ end
+end
+document dump_string_array
+ Print all of the elements in an array of strings.
+end
1.4 +16 -0 apache-apr/pthreads/src/ApacheCore.def
Index: ApacheCore.def
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/ApacheCore.def,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- ApacheCore.def 1999/03/17 17:00:32 1.3
+++ ApacheCore.def 1999/08/19 20:51:57 1.4
@@ -343,4 +343,20 @@
ap_standalone @337
ap_server_confname @338
ap_sub_req_method_uri @339
+ ap_regerror @341
+ ap_regexec @342
+ ap_field_noparam @343
+ ap_pbase64decode @344
+ ap_pbase64encode @345
+ ap_base64encode @346
+ ap_base64encode_binary @347
+ ap_base64encode_len @348
+ ap_base64decode @349
+ ap_base64decode_binary @350
+ ap_base64decode_len @351
+ ap_SHA1Init @352
+ ap_SHA1Update_binary @353
+ ap_SHA1Update @354
+ ap_SHA1Final @355
+ ap_sha1_base64 @356
1.3 +4 -4 apache-apr/pthreads/src/ApacheCore.dsp
Index: ApacheCore.dsp
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/ApacheCore.dsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- ApacheCore.dsp 1999/02/07 06:29:08 1.2
+++ ApacheCore.dsp 1999/08/19 20:51:57 1.3
@@ -44,7 +44,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS"
/YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I ".\include" /D "WIN32" /D "NDEBUG" /D
"_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I ".\include" /D "NDEBUG" /D "WIN32" /D
"_WINDOWS" /D "WIN32_LEAN_AND_MEAN" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
@@ -54,7 +54,7 @@
# 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 /subsystem:windows /dll /machine:I386
-# ADD LINK32 os\win32\ApacheOSR\ApacheOS.lib regex\release\regex.lib
ap\Release\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:windows /dll
/machine:I386
+# ADD LINK32 os\win32\ApacheOSR\ApacheOS.lib regex\release\regex.lib
ap\Release\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib shell32.lib ws2_32.lib /nologo /subsystem:windows /dll
/machine:I386
!ELSEIF "$(CFG)" == "ApacheCore - Win32 Debug"
@@ -70,7 +70,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D
"_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I ".\include" /D "WIN32" /D
"_DEBUG" /D "_WINDOWS" /FR /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I ".\include" /D "_DEBUG" /D
"WIN32" /D "_WINDOWS" /D "WIN32_LEAN_AND_MEAN" /FR /YX /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
@@ -80,7 +80,7 @@
# 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 /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 os\win32\ApacheOSD\ApacheOS.lib regex\debug\regex.lib
ap\Debug\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:windows /dll /debug
/machine:I386
+# ADD LINK32 os\win32\ApacheOSD\ApacheOS.lib regex\debug\regex.lib
ap\Debug\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib shell32.lib ws2_32.lib /nologo /subsystem:windows /dll /debug
/machine:I386
# SUBTRACT LINK32 /map
!ENDIF
1.2 +4 -303 apache-apr/pthreads/src/ApacheCore.mak
Index: ApacheCore.mak
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/ApacheCore.mak,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- ApacheCore.mak 1999/01/21 23:08:31 1.1
+++ ApacheCore.mak 1999/08/19 20:51:58 1.2
@@ -144,7 +144,7 @@
LINK32=link.exe
LINK32_FLAGS=os\win32\ApacheOSR\ApacheOS.lib regex\release\regex.lib\
ap\Release\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib
comdlg32.lib\
- advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:windows /dll\
+ advapi32.lib shell32.lib ws2_32.lib /nologo /subsystem:windows /dll\
/incremental:no /pdb:"$(OUTDIR)\ApacheCore.pdb" /machine:I386\
/def:".\ApacheCore.def" /out:"$(OUTDIR)\ApacheCore.dll"\
/implib:"$(OUTDIR)\ApacheCore.lib"
@@ -408,7 +408,7 @@
LINK32=link.exe
LINK32_FLAGS=os\win32\ApacheOSD\ApacheOS.lib regex\debug\regex.lib\
ap\Debug\ap.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
- advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:windows /dll\
+ advapi32.lib shell32.lib ws2_32.lib /nologo /subsystem:windows /dll\
/incremental:yes /pdb:"$(OUTDIR)\ApacheCore.pdb" /debug /machine:I386\
/def:".\ApacheCore.def" /out:"$(OUTDIR)\ApacheCore.dll"\
/implib:"$(OUTDIR)\ApacheCore.lib"
@@ -506,14 +506,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_ALLOC=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\alloc.obj" "$(INTDIR)\alloc.sbr" : $(SOURCE)
$(DEP_CPP_ALLOC)\
@@ -561,14 +553,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_BUFF_=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\buff.obj" "$(INTDIR)\buff.sbr" : $(SOURCE) $(DEP_CPP_BUFF_)\
@@ -611,14 +595,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_BUILD=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\buildmark.obj" "$(INTDIR)\buildmark.sbr" : $(SOURCE)\
@@ -693,15 +669,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_HTTP_=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\http_config.obj" "$(INTDIR)\http_config.sbr" : $(SOURCE)\
$(DEP_CPP_HTTP_) "$(INTDIR)"
@@ -770,15 +738,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_HTTP_C=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\http_core.obj" "$(INTDIR)\http_core.sbr" : $(SOURCE)\
$(DEP_CPP_HTTP_C) "$(INTDIR)"
@@ -829,15 +789,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_HTTP_L=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\http_log.obj" "$(INTDIR)\http_log.sbr" : $(SOURCE)
$(DEP_CPP_HTTP_L)\
"$(INTDIR)"
@@ -910,14 +862,6 @@
".\os\win32\readdir.h"\
".\os\win32\registry.h"\
".\os\win32\service.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_HTTP_M=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\http_main.obj" "$(INTDIR)\http_main.sbr" : $(SOURCE)\
@@ -979,14 +923,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_HTTP_P=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\http_protocol.obj" "$(INTDIR)\http_protocol.sbr" :
$(SOURCE)\
@@ -1046,15 +982,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_HTTP_R=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\http_request.obj" "$(INTDIR)\http_request.sbr" : $(SOURCE)\
$(DEP_CPP_HTTP_R) "$(INTDIR)"
@@ -1107,14 +1035,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_HTTP_V=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\http_vhost.obj" "$(INTDIR)\http_vhost.sbr" : $(SOURCE)\
@@ -1206,14 +1126,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_MOD_A=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\mod_access.obj" "$(INTDIR)\mod_access.sbr" : $(SOURCE)\
@@ -1271,15 +1183,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MOD_AC=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\mod_actions.obj" "$(INTDIR)\mod_actions.sbr" : $(SOURCE)\
$(DEP_CPP_MOD_AC) "$(INTDIR)"
@@ -1324,15 +1228,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MOD_AL=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\mod_alias.obj" "$(INTDIR)\mod_alias.sbr" : $(SOURCE)\
$(DEP_CPP_MOD_AL) "$(INTDIR)"
@@ -1387,14 +1283,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_MOD_AS=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\mod_asis.obj" "$(INTDIR)\mod_asis.sbr" : $(SOURCE)
$(DEP_CPP_MOD_AS)\
@@ -1446,14 +1334,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_MOD_AU=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\mod_auth.obj" "$(INTDIR)\mod_auth.sbr" : $(SOURCE)
$(DEP_CPP_MOD_AU)\
@@ -1473,6 +1353,7 @@
".\include\ap_config.h"\
".\include\ap_ctype.h"\
".\include\buff.h"\
+ ".\include\fnmatch.h"\
".\include\hsregex.h"\
".\include\http_config.h"\
".\include\http_core.h"\
@@ -1511,15 +1392,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MOD_AUT=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\mod_autoindex.obj" "$(INTDIR)\mod_autoindex.sbr" :
$(SOURCE)\
$(DEP_CPP_MOD_AUT) "$(INTDIR)"
@@ -1538,6 +1411,7 @@
".\include\ap_config.h"\
".\include\ap_ctype.h"\
".\include\buff.h"\
+ ".\include\fnmatch.h"\
".\include\hsregex.h"\
".\include\http_conf_globals.h"\
".\include\http_config.h"\
@@ -1578,14 +1452,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_MOD_C=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\mod_cgi.obj" "$(INTDIR)\mod_cgi.sbr" : $(SOURCE)
$(DEP_CPP_MOD_C)\
@@ -1643,15 +1509,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MOD_D=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\mod_dir.obj" "$(INTDIR)\mod_dir.sbr" : $(SOURCE)
$(DEP_CPP_MOD_D)\
"$(INTDIR)"
@@ -1696,15 +1554,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MOD_E=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\mod_env.obj" "$(INTDIR)\mod_env.sbr" : $(SOURCE)
$(DEP_CPP_MOD_E)\
"$(INTDIR)"
@@ -1761,14 +1611,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_MOD_I=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\mod_imap.obj" "$(INTDIR)\mod_imap.sbr" : $(SOURCE)
$(DEP_CPP_MOD_I)\
@@ -1826,17 +1668,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MOD_IN=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
- ".\modules\standard\config.h"\
- ".\modules\standard\modules\perl\mod_perl.h"\
-
"$(INTDIR)\mod_include.obj" "$(INTDIR)\mod_include.sbr" : $(SOURCE)\
$(DEP_CPP_MOD_IN) "$(INTDIR)"
@@ -1891,13 +1723,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_MOD_IS=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\sfio.h"\
"$(INTDIR)\mod_isapi.obj" "$(INTDIR)\mod_isapi.sbr" : $(SOURCE)\
@@ -1947,15 +1772,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MOD_L=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\mod_log_config.obj" "$(INTDIR)\mod_log_config.sbr" :
$(SOURCE)\
$(DEP_CPP_MOD_L) "$(INTDIR)"
@@ -2002,15 +1819,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MOD_M=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\mod_mime.obj" "$(INTDIR)\mod_mime.sbr" : $(SOURCE)
$(DEP_CPP_MOD_M)\
"$(INTDIR)"
@@ -2063,15 +1872,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MOD_N=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\mod_negotiation.obj" "$(INTDIR)\mod_negotiation.sbr" :
$(SOURCE)\
$(DEP_CPP_MOD_N) "$(INTDIR)"
@@ -2120,14 +1921,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_MOD_S=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\mod_setenvif.obj" "$(INTDIR)\mod_setenvif.sbr" : $(SOURCE)\
@@ -2175,15 +1968,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MOD_SO=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\mod_so.obj" "$(INTDIR)\mod_so.sbr" : $(SOURCE)
$(DEP_CPP_MOD_SO)\
"$(INTDIR)"
@@ -2228,14 +2013,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_MOD_U=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\mod_userdir.obj" "$(INTDIR)\mod_userdir.sbr" : $(SOURCE)\
@@ -2281,13 +2058,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_MODUL=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\sfio.h"\
"$(INTDIR)\modules.obj" "$(INTDIR)\modules.sbr" : $(SOURCE)
$(DEP_CPP_MODUL)\
@@ -2321,12 +2091,7 @@
".\include\hsregex.h"\
".\include\multithread.h"\
".\os\win32\os.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_MULTI=\
- ".\include\ap_config_auto.h"\
-
"$(INTDIR)\multithread.obj" "$(INTDIR)\multithread.sbr" : $(SOURCE)\
$(DEP_CPP_MULTI) "$(INTDIR)"
@@ -2393,13 +2158,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_REGIS=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\sfio.h"\
"$(INTDIR)\registry.obj" "$(INTDIR)\registry.sbr" : $(SOURCE)
$(DEP_CPP_REGIS)\
@@ -2449,14 +2207,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_RFC14=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\rfc1413.obj" "$(INTDIR)\rfc1413.sbr" : $(SOURCE)
$(DEP_CPP_RFC14)\
@@ -2512,14 +2262,7 @@
".\os\win32\readdir.h"\
".\os\win32\registry.h"\
".\os\win32\service.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_SERVI=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\service.obj" "$(INTDIR)\service.sbr" : $(SOURCE)
$(DEP_CPP_SERVI)\
"$(INTDIR)"
@@ -2568,14 +2311,6 @@
".\main\test_char.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_UTIL_=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\util.obj" "$(INTDIR)\util.sbr" : $(SOURCE) $(DEP_CPP_UTIL_)\
@@ -2586,9 +2321,6 @@
!ENDIF
SOURCE=.\main\util_date.c
-
-!IF "$(CFG)" == "ApacheCore - Win32 Release"
-
DEP_CPP_UTIL_D=\
".\include\ap_config.h"\
".\include\ap_ctype.h"\
@@ -2662,15 +2394,7 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_UTIL_M=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\util_md5.obj" "$(INTDIR)\util_md5.sbr" : $(SOURCE)
$(DEP_CPP_UTIL_M)\
"$(INTDIR)"
@@ -2731,14 +2455,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_UTIL_S=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
"$(INTDIR)\util_script.obj" "$(INTDIR)\util_script.sbr" : $(SOURCE)\
@@ -2788,15 +2504,7 @@
".\main\uri_delims.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-NODEP_CPP_UTIL_U=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\os.h"\
- ".\include\sfio.h"\
-
"$(INTDIR)\util_uri.obj" "$(INTDIR)\util_uri.sbr" : $(SOURCE)
$(DEP_CPP_UTIL_U)\
"$(INTDIR)"
@@ -2841,13 +2549,6 @@
".\include\util_uri.h"\
".\os\win32\os.h"\
".\os\win32\readdir.h"\
- {$(INCLUDE)}"sys\stat.h"\
- {$(INCLUDE)}"sys\types.h"\
-
-NODEP_CPP_UTIL_W=\
- ".\include\ap_config_auto.h"\
- ".\include\ebcdic.h"\
- ".\include\sfio.h"\
"$(INTDIR)\util_win32.obj" "$(INTDIR)\util_win32.sbr" : $(SOURCE)\
1.9 +217 -5 apache-apr/pthreads/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/CHANGES,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -u -r1.8 -r1.9
--- CHANGES 1999/06/10 06:25:40 1.8
+++ CHANGES 1999/08/19 20:51:59 1.9
@@ -20,8 +20,217 @@
*) Removed the ap_block_alarms and ap_unblock_alarm calls. These aren't
needed in a threaded server.
-Changes with Apache 1.3.7
+Changes with Apache 1.3.9
+
+ *) Remove bogus error message when a redirect doesn't set Location.
+ Instead, use an empty string to avoid coredump if the error message
+ was supposed to include a location. [Roy Fielding]
+
+ *) Don't allow configure to include mod_auth_digest unless it is
+ explicitly requested, even if the user asked for all modules.
+ [Roy Fielding]
+
+ *) Translate module names to dll names for OS/2 so that they are no more
+ than 8 characters long and have an extension of "dll" instead of "so".
+ [Brian Havard]
+
+ *) Print out pointer to Rule DEV_RANDOM when truerand lib not found.
+ Fix test-compile check to check for randbyte instead of trand32.
+ Use ap_base64encode_binary/decode instead of copy in mod_auth_digest.c
+ and tweak to make Amaya happier. [Ronald Tschal�r]
+
+ *) Ensure that the installed expat include files are world readable,
+ just like the other header files. [Martin Kraemer]
+
+ *) Fixed generated AddModule adjustments in APACI's `configure' script
+ in order to allow (new) modules like mod_vhost_alias to be handled
+ correctly (which was touched by the adjustments for mod_alias).
+ [Ralf S. Engelschall]
+
+ *) For binary builds, add -R flag to apachectl to work around the lack of
+ an absolute path to the ./libexec directory where the libhttp.ep file
+ is needed for SHARED_CORE architectures. [Randy Terbush]
+
+ *) WIN32: Create the CGI script process as DETACHED. This may solve the
+ problem observed by some Win95/98 users where they get CGI script
+ output sent to the console. [Bill Stoddard]
+
+ *) Fix (re)naming in the uuencode/decode section. The ap/ap_
+ routines are now called ap_base64* and are 'plain' (i.e., no
+ pool access or anything clever). Inside util.c the routines acting
+ like pstrdup are called ap_pbase64encode() and ap_pbase64decode().
+ The oddly named ap_uuencode(), ap_uudecode() are kept around for
+ now but deprecated. [dirkx]
+
+ *) Clean up the base64 and SHA1 additions and make sure they are
+ represented in the ApacheCore.def, ApacheCoreOS2.def, and httpd.exp
+ files. [Roy Fielding]
+
+ *) WIN32: Migrate to InstallShield 5.5 and provide a bit more error
+ checking. Allow compiling on VS 6.0. [Randy Terbush]
+
+ *) Fixed assumption of absolute paths in binbuild.sh. [Tony Finch]
+
+ *) Use TestCompile to search for the truerand library (rather than blindly
+ assuming its existence). If it is not found, complain (but do not
+ exit - yet). [Martin Kraemer]
+
+ *) We forgot to add the new exported function names to
+ src/support/httpd.exp. [Bill Stoddard, Randy Terbush]
+
+ *) Add description of -T command-line option to usage().
+ [Ralf S. Engelschall]
+
+ *) For "some" platforms (notably, EBCDIC based ones), libos needs to be
+ searched only AFTER libap has been searched, because libap needs
+ some symbols from libos. [Martin Kraemer]
+
+ *) Fix conflict with original mod_digest related to the symbol of the
+ module dispatch list (which has to be unique for DSO and follow the
+ usual conventions for the installation procedure).
+ [Ralf S. Engelschall]
+
+ *) Add a dbm-library check for the "usual places" (-ldbm, -lndbm, -ldb)
+ for other platforms as well. [Martin Kraemer]
+
+ *) Make ap_sha1.c compile for EBCDIC platforms: replace remaining LONG
+ types by AP_LONG and replace reference to renamed variable 'ubuf'
+ by 'buffer'. [Martin Kraemer]
+
+Changes with Apache 1.3.8 [not released]
+
+ *) Flush the output buffer immediately after sending an error or redirect
+ response, since the result may be needed by the client to abort a
+ long data transfer or restart a series of pipelined requests.
+ [Tom Vaughan <[EMAIL PROTECTED]>, Roy Fielding]
+
+ *) PORT: Improved compilation and DSO support on Sequent DYNIX/ptx.
+ [Ian Turner <[EMAIL PROTECTED]>] PR#4735
+
+ *) Local struct mmap in http_core.c conflicted with system structure
+ name on DYNIX -- changed to mmap_rec. [Roy Fielding] PR#4735
+
+ *) Added updated mod_digest as modules/experimental/mod_auth_digest.
+ [Ronald Tschal�r <[EMAIL PROTECTED]>]
+
+ *) Fix a memory leak where the module counts were getting messed
+ up across restarts. [David Harris <[EMAIL PROTECTED]>]
+
+ *) CIDR addresses such as a.b.c.d/24 where d != 0 weren't handled
+ properly in mod_access.
+ ["Paul J. Reder" <[EMAIL PROTECTED]>] PR#4770
+
+ *) RewriteLock/RewriteMap didn't work properly with virtual hosts.
+ [Dmitry Khrustalev <[EMAIL PROTECTED]>] PR#3874
+
+ *) PORT: Support for compaq/tandem/com.
+ [Michael Ottati <[EMAIL PROTECTED]>, dirkx]
+
+ *) Added SHA1 password encryption support to easy migration from
+ Netscape servers. See support/SHA1 for more information.
+ Caused the separation of ap_md5.c into md5, sha1 and a general
+ ap_checkpass.c with just a validate_passwd routine. Added a
+ couple of flags to support/htpasswd. Some reuse of the to64()
+ function; hence renamed to ap_to64().
+ [Dirk-Willem van Gulik, Clinton Wong <[EMAIL PROTECTED]>]
+
+ *) Change for EBCDIC platforms (TPF and BS2000) to correctly deal
+ with ASCII/EBCDIC conversions in "ident" query.
+ [David McCreedy <[EMAIL PROTECTED]>]
+
+ *) Get rid of redefinition warning on MAC_OS_X_SERVER platform.
+ Change "Power Macintosh" to Power* so if uname prints "Power Book"
+ we're still happy on Rhapsody platforms. [Wilfredo Sanchez]
+
+ *) Fix SIGSEGV on some systems because the Vary fix below included
+ a call to table_do with a variable argument list that was not
+ NULL terminated. Replaced with better implementation. [Roy Fielding]
+
+Changes with Apache 1.3.7 [not released]
+
+ *) The "Vary" response header field is now sanitised right before
+ the header is sent back to the client. Multiple "Vary" fields
+ are combined, and duplicate tokens (e.g., "Vary: host, host" or
+ "Vary: host, negotiate, host, accept-language") are reduced to
+ single instances. This is a better solution than the force-no-vary
+ one (which is still valid for clients that can't cope with Vary
+ at all). PR#3118 [Dean Gaudet, Roy Fielding, Ken Coar]
+
+ *) Portability changes for BeOS. [David Reid [EMAIL PROTECTED]
+
+ *) Link DSO's with "gcc -shared" instead of "ld -Bshareable" at
+ least on Linux and FreeBSD for now.
+ [Rasmus Lerdorf]
+
+ *) Win32: More apache -k restart work. Restarts are now honored
+ immediately and connections in the listen queue are -not- lost.
+ This is made possible by the use of the WSADuplicateSocket()
+ call. The listeners are opened in the parent, duplicated, then
+ the duplicates are passed to the child. The original listen sockets
+ are not closed by the parent across a restart, thus the listen queue
+ is preserved.
+ [Bill Stoddard <[EMAIL PROTECTED]>]
+
+ *) Fix handling of case when a client has sent "Expect: 100-continue"
+ and we are going to respond with an error, but get stuck waiting to
+ discard the body in the pointless hope of preserving the connection.
+ [Roy Fielding, Joe Orton <[EMAIL PROTECTED]>] PR#4499, PR#3806
+
+ *) Fix 'configure' to work correctly with SysV-based versions of
+ 'tr' (consistent with Configure's use as well). [Jim Jagielski]
+
+ *) apxs: Add "-S var=val" option which allows for override of CFG_*
+ built-in values. Add "-e" option which works like -i but doesn't
+ install the DSO; useful for editing httpd.conf with apxs. Fix
+ editing code so that multiple invocations of apxs -a will not
+ create duplicate LoadModule/AddModule entries; apxs can now be
+ used to re- enable/disable a module. [Wilfredo Sanchez]
+ *) Win32: Update the server to use Winsock 2. Specifically, link with
+ ws2_32.lib rather than wsock32.lib. This gives us access to
+ WSADuplcateSocket() in addition to some other enhanced comm APIs.
+ Win 95 users may need to update their TCP/IP stack to pick up
+ Winsock 2. (See http://www.microsoft.com/windows95/downloads/)
+ [Bill Stoddard [EMAIL PROTECTED]
+
+ *) Win32: Redirect CGI script stderr (script debug info) into the
+ error.log when CGI scripts fail. This makes Apache on Win32
+ behave more like Unix.
+ [Bill Stoddard [EMAIL PROTECTED]
+
+ *) Fixed `httpd' usage display: -D was missing.
+ [Ralf S. Engelschall] PR#4614
+
+ *) Fix `make r' test procedure in src/regex/: ap_isprint was not found.
+ [Ralf S. Engelschall] PR#4561, PR#4562
+
+ *) OS/2: Fix problem with accept lock semaphores where server would die
with
+ "OS2SEM: Error 105 getting accept lock. Exiting!"
+ [Brian Havard] PR#4505
+
+ *) Add DSO support for DGUX 4.x using gcc. Tested on x86 platforms.
+ [Randy Terbush <[EMAIL PROTECTED]>]
+
+ *) Add the new mass-vhost module (mod_vhost_alias.c) developed and
+ used by Demon Internet, Ltd. [Tony Finch <[EMAIL PROTECTED]>]
+
+ *) Better GCC detection for DSO flags under Solaris 2 where the `cc'
+ command potentially _is_ GCC. [Ralf S. Engelschall]
+
+ *) Fix apxs build issues on AIX
+ [Rasmus Lerdorf <[EMAIL PROTECTED]>]
+
+ *) DocumentRoot Checking: Under previous versions, when Apache
+ first started up, it used to do a stat of each DocumentRoot to
+ see if it existed and was a directory. If not, then an error
+ message was printed. THIS HAS BEEN DISABLED. If DocumentRoot
+ does not exist, you will get error messages in error_log. If
+ the '-t' command line option is used (to check the configuration)
+ the check of DocumentRoot IS performed. An additional command
+ line option, '-T', has been added if you want to avoid the
+ DocumentRoot check even when checking the configuration.
+ [Jim Jagielski]
+
*) Win32: The query switch "apache -S" didn't exit after showing the
vhost settings. That was inconsistent with the other query functions.
[Bill Stoddard - Fixed by Martin on Unix in 1.3.4]
@@ -32,7 +241,7 @@
could take hours. Now, a restart is honored almost immediately.
All connections in Apache's queues are handled but connections in
the stack's listen queue are discarded. Restart triggered by
- MaxRequestPerChild is unchanged.
+ MaxRequestPerChild is unchanged.
[Bill Stoddard <[EMAIL PROTECTED]>]
*) Win32: Eliminated unnecessary call to wait_for_multiple_objects in
@@ -63,6 +272,9 @@
never accepted into any standard, and it opens up certain DoS
attacks. [Koen Holtman <[EMAIL PROTECTED]>]
+ *) TestCompile updated. We can now run programs and output the
+ results during the Configure process. [ Jim Jagielski]
+
*) The source is now quad (long long) aware as needed. Specifically,
the Configure process determines the correct size of off_t and
*void. When the OS/platform/compiler supports quads, ap_snprintf()
@@ -187,7 +399,7 @@
[Graham Leggett <[EMAIL PROTECTED]>,
Tim Costello <[EMAIL PROTECTED]>] PR#3178
- *) Fix inconsistant error messages reported by mod_proxy.
+ *) Fix inconsistent error messages reported by mod_proxy.
[Graham Leggett <[EMAIL PROTECTED]>]
*) OS/2: Fix terminating CGIs that aren't compiled by EMX GCC when a
@@ -665,7 +877,7 @@
and check to see if the tar we wind up with supports '-h'.
[Jim Jagielski] PR#3671
- *) A consistant and conservative style for all shell scripts has been
+ *) A consistent and conservative style for all shell scripts has been
implemented. Basically, all shell string tests use the traditional
hack of 'if [ "x$var" != "x" ]' or 'if [ "x$var" = "xstring" ]'
to protect against bare null variable strings (ie: wrapping both
@@ -2651,7 +2863,7 @@
*) PORT: IRIX needs the -n32 flag iff using the 'cc' compiler
[Jim Jagielski] PR#1901
- *) BUG: Configure was using TCC and CC inconsistantly. Make sure
+ *) BUG: Configure was using TCC and CC inconsistently. Make sure
Configure knows which CC we are using. [Jim Jagielski]
*) "Options +Includes" wasn't correctly merged if "+IncludesNoExec"
1.4 +51 -13 apache-apr/pthreads/src/Configuration.tmpl
Index: Configuration.tmpl
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/Configuration.tmpl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- Configuration.tmpl 1999/06/10 06:25:41 1.3
+++ Configuration.tmpl 1999/08/19 20:52:00 1.4
@@ -124,12 +124,12 @@
# functions. The format is: Rule RULE=value
#
# At present, only the following RULES are known: WANTHSREGEX, SOCKS4,
-# SOCKS5, IRIXNIS, IRIXN32 and PARANOID.
+# SOCKS5, IRIXNIS, IRIXN32, PARANOID, and DEV_RANDOM.
#
-# For all Rules, if set to "yes", then Configure knows we want that
-# capability and does what is required to add it in. If set to "default"
-# then Configure makes a "best guess"; if set to anything else, or not
-# present, then nothing is done.
+# For all Rules except DEV_RANDOM, if set to "yes", then Configure knows
+# we want that capability and does what is required to add it in. If set
+# to "default" then Configure makes a "best guess"; if set to anything
+# else, or not present, then nothing is done.
#
# SOCKS4:
# If SOCKS4 is set to 'yes', be sure that you add the socks library
@@ -174,6 +174,19 @@
Rule PARANOID=no
Rule EXPAT=default
+# DEV_RANDOM:
+# Note: this rule is only used when compiling mod_auth_digest.
+# mod_auth_digest requires a cryptographically strong random seed for its
+# random number generator. It knows two ways of getting this: 1) from
+# a file or device (such as "/dev/random"), or 2) from the truerand
+# library. If this rule is set to 'default' then Configure will choose
+# to use /dev/random if it exists, else /dev/urandom if it exists,
+# else the truerand library. To override this behaviour set DEV_RANDOM
+# either to 'truerand' (to use the library) or to a device or file
+# (e.g. '/dev/urandom'). If the truerand library is selected, Configure
+# will assume "-L/usr/local/lib -lrand".
+Rule DEV_RANDOM=default
+
# The following rules should be set automatically by Configure. However, if
# they are not set by Configure (because we don't know the correct value for
# your platform), or are set incorrectly, you may override them here.
@@ -214,6 +227,13 @@
# AddModule modules/experimental/mod_mmap_static.o
+## mod_vhost_alias provides support for mass virtual hosting
+## by dynamically changing the document root and CGI directory
+## based on the host header or local IP address of the request.
+## See "../htdocs/manual/vhosts/mass.html".
+
+# AddModule modules/standard/mod_vhost_alias.o
+
##
## Config manipulation modules
##
@@ -302,13 +322,6 @@
AddModule modules/standard/mod_userdir.o
-## The proxy module enables the server to act as a proxy for outside
-## http and ftp services. It's not as complete as it could be yet.
-## NOTE: You do not want this module UNLESS you are running a proxy;
-## it is not needed for normal (origin server) operation.
-
-# AddModule modules/proxy/libproxy.a
-
## The Alias module provides simple URL translation and redirection.
AddModule modules/standard/mod_alias.o
@@ -339,9 +352,34 @@
# AddModule modules/standard/mod_auth_db.o
## "digest" implements HTTP Digest Authentication rather than the less
-## secure Basic Auth used by the other modules.
+## secure Basic Auth used by the other modules. This is the old version.
# AddModule modules/standard/mod_digest.o
+
+## "auth_digest" implements HTTP/1.1 Digest Authentication (RFC 2617)
+## rather than the less secure Basic Auth used by the other modules.
+## This is an updated version of mod_digest, but it is not as well tested
+## and is therefore marked experimental. Use either the one above, or
+## this one below, but not both digest modules.
+## Note: if you add this module in then you might also need the
+## truerand library (available for example from
+## ftp://research.att.com/dist/mab/librand.shar) - see the Rule
+## DEV_RANDOM above for more info.
+##
+## Must be added above (run later than) the proxy module because the
+## WWW-Authenticate and Proxy-Authenticate headers are parsed in the
+## post-read-request phase and it needs to know if this is a proxy request.
+
+# AddModule modules/experimental/mod_auth_digest.o
+
+## Optional Proxy
+##
+## The proxy module enables the server to act as a proxy for outside
+## http and ftp services. It's not as complete as it could be yet.
+## NOTE: You do not want this module UNLESS you are running a proxy;
+## it is not needed for normal (origin server) operation.
+
+# AddModule modules/proxy/libproxy.a
## Optional response header manipulation modules.
##
1.11 +142 -19 apache-apr/pthreads/src/Configure
Index: Configure
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/Configure,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -u -r1.10 -r1.11
--- Configure 1999/06/10 06:25:41 1.10
+++ Configure 1999/08/19 20:52:01 1.11
@@ -340,8 +340,8 @@
OSDIR="os/os2"
DEF_WANTHSREGEX=yes
OS='EMX OS/2'
- CFLAGS="$CFLAGS -DOS2 -Zbsd-signals -Zbin-files -Zcrtdll -DTCPIPV4 -g"
- LDFLAGS="$LDFLAGS -Zexe -Zcrtdll"
+ CFLAGS="$CFLAGS -DOS2 -DTCPIPV4 -g -Zmt"
+ LDFLAGS="$LDFLAGS -Zexe -Zmtd -Zsysv-signals -Zbin-files"
LIBS="$LIBS -lsocket -lufc -lbsd"
DBM_LIB="-lgdbm"
SHELL=sh
@@ -610,6 +610,7 @@
LIBS="$LIBS -lsocket -lnsl -lgen"
LD_SHLIB='cc'
LDFLAGS_SHLIB="-Zlink=so"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT="-Zlink=dynamic -Wl,-Bexport"
CFLAGS_SHLIB='-Zpic'
;;
@@ -625,10 +626,9 @@
BS2000*-siemens-sysv4*)
OS='BS2000'
OSDIR='os/bs2000'
- CC='c89 -XLLML -XLLMK'
+ CC='c89 -XLLML -XLLMK -XL'
CFLAGS="$CFLAGS -DCHARSET_EBCDIC -DSVR4 -D_XPG_IV"
DEF_WANTHSREGEX=yes
- LIBS="$LIBS -lsocket -lnsl -lc"
DBM_LIB=""
;;
*-siemens-sysv4*)
@@ -706,11 +706,42 @@
OS='Paragon OSF/1'
CFLAGS="$CFLAGS -DPARAGON"
;;
- *DYNIX*)
+ *-sequent-ptx2.*.*)
DEF_WANTHSREGEX=yes
- OS='SEQUENT'
- CFLAGS="$CFLAGS -DSEQUENT"
+ OS='SEQUENT DYNIX/ptx v2.*.*'
+ CFLAGS="$CFLAGS -DSEQUENT=20 -Wc,-pw"
+ LIBS="$LIBS -lsocket -linet -lnsl -lc -lseq"
+ ;;
+ *-sequent-ptx4.0.*)
+ DEF_WANTHSREGEX=yes
+ OS='SEQUENT DYNIX/ptx v4.0.*'
+ CFLAGS="$CFLAGS -DSEQUENT=40 -Wc,-pw"
+ LIBS="$LIBS -lsocket -linet -lnsl -lc"
;;
+ *-sequent-ptx4.[123].*)
+ DEF_WANTHSREGEX=yes
+ OS='SEQUENT DYNIX/ptx v4.1.*/v4.2.*'
+ CFLAGS="$CFLAGS -DSEQUENT=41 -Wc,-pw"
+ LIBS="$LIBS -lsocket -lnsl -lc"
+ ;;
+ *-sequent-ptx4.4.*)
+ DEF_WANTHSREGEX=yes
+ OS='SEQUENT DYNIX/ptx v4.4.*'
+ CFLAGS="$CFLAGS -DSEQUENT=44 -Wc,-pw"
+ LIBS="$LIBS -lsocket -lnsl -lc"
+ ;;
+ *-sequent-ptx4.5.*)
+ DEF_WANTHSREGEX=yes
+ OS='SEQUENT DYNIX/ptx v4.5.*'
+ CFLAGS="$CFLAGS -DSEQUENT=45 -Wc,-pw"
+ LIBS="$LIBS -lsocket -lnsl -lc"
+ ;;
+ *-sequent-ptx5.0.*)
+ DEF_WANTHSREGEX=yes
+ OS='SEQUENT DYNIX/ptx v5.0.*'
+ CFLAGS="$CFLAGS -DSEQUENT=50 -Wc,-pw"
+ LIBS="$LIBS -lsocket -lnsl -lc"
+ ;;
*NEWS-OS*)
DEF_WANTHSREGEX=yes
OS='SONY NEWS-OS'
@@ -747,6 +778,11 @@
CC='cc'
RANLIB='true'
;;
+ *-tandem-oss)
+ OS='Tandem OSS'
+ CFLAGS="-D_TANDEM_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
+ CC='c89'
+ ;;
*) # default: Catch systems we don't know about
OS='Unknown and unsupported OS'
echo Sorry, but we cannot grok \"$PLAT\"
@@ -925,6 +961,7 @@
##
TLD_SHLIB=`egrep '^LD_SHLIB=' Makefile.config | tail -1 | awk -F= '{print
$2}'`
TLDFLAGS_SHLIB=`egrep '^LDFLAGS_SHLIB=' Makefile.config | tail -1 | awk -F=
'{print $2}'`
+TLDFLAGS_MOD_SHLIB=`egrep '^LDFLAGS_MOD_SHLIB=' Makefile.config | tail -1 |
awk -F= '{print $2}'`
TLDFLAGS_SHLIB_EXPORT=`egrep '^LDFLAGS_SHLIB_EXPORT=' Makefile.config | tail
-1 | awk -F= '{print $2}'`
TCFLAGS_SHLIB=`egrep '^CFLAGS_SHLIB=' Makefile.config | tail -1 | awk -F=
'{print $2}'`
@@ -959,23 +996,30 @@
*-linux1)
CFLAGS_SHLIB="-fpic"
LDFLAGS_SHLIB="-Bshareable"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT="-rdynamic"
;;
*-linux2)
+ LD_SHLIB="gcc"
CFLAGS_SHLIB="-fpic"
- LDFLAGS_SHLIB="-Bshareable"
+ LDFLAGS_SHLIB="-shared"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT="-rdynamic"
SHLIB_SUFFIX_DEPTH=0
;;
*-freebsd2*)
+ LD_SHLIB="gcc"
CFLAGS_SHLIB="-fpic"
- LDFLAGS_SHLIB="-Bshareable"
+ LDFLAGS_SHLIB="-shared"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
SHLIB_SUFFIX_DEPTH=2
;;
*-freebsd3*|*-freebsd4*)
+ LD_SHLIB="gcc"
CFLAGS_SHLIB="-fpic"
- LDFLAGS_SHLIB="-Bshareable"
+ LDFLAGS_SHLIB="-shared"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo
aout`
if [ "x$OBJFORMAT" = "xelf" ]; then
LDFLAGS_SHLIB_EXPORT="-Wl,-E"
@@ -988,6 +1032,7 @@
*-openbsd*)
CFLAGS_SHLIB="-fPIC"
LDFLAGS_SHLIB="-Bforcearchive -Bshareable"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
SHLIB_SUFFIX_DEPTH=2
;;
@@ -1000,21 +1045,25 @@
LDFLAGS_SHLIB="-shared"
LDFLAGS_SHLIB_EXPORT="-Wl,-E"
fi
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
SHLIB_SUFFIX_DEPTH=2
;;
*-bsdi3)
LD_SHLIB="shlicc2"
LDFLAGS_SHLIB="-r"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
;;
*-bsdi)
CFLAGS_SHLIB="-fPIC"
LDFLAGS_SHLIB="-shared"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT="-rdynamic"
;;
*-next-openstep*)
LD_SHLIB='cc'
CFLAGS_SHLIB='-dynamic -fno-common'
LDFLAGS_SHLIB='-bundle -undefined warning'
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=''
SHLIB_SUFFIX_DEPTH=0
;;
@@ -1022,15 +1071,18 @@
LD_SHLIB="cc"
CFLAGS_SHLIB=""
LDFLAGS_SHLIB='$(EXTRA_LDFLAGS) -bundle -undefined suppress'
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
SHLIB_SUFFIX_DEPTH=0
;;
*-solaris2*)
- case $CC in
- */gcc|gcc ) CFLAGS_SHLIB="-fPIC" ;;
- */cc|cc ) CFLAGS_SHLIB="-KPIC" ;;
- esac
+ if [ "x`$CC -v 2>&1 | grep gcc`" != "x" ]; then
+ CFLAGS_SHLIB="-fPIC"
+ else
+ CFLAGS_SHLIB="-KPIC"
+ fi
LDFLAGS_SHLIB="-G"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
SHLIB_SUFFIX_DEPTH=1
;;
@@ -1040,6 +1092,7 @@
*/acc|acc ) CFLAGS_SHLIB="-pic" ;;
esac
LDFLAGS_SHLIB="-assert pure-text"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
;;
*-sgi-irix32)
@@ -1058,6 +1111,7 @@
else
LDFLAGS_SHLIB="-shared"
fi
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
;;
*-sgi-irix64)
@@ -1076,6 +1130,7 @@
else
LDFLAGS_SHLIB="-shared"
fi
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
;;
*-sgi-irix)
@@ -1084,6 +1139,7 @@
*/cc|cc ) CFLAGS_SHLIB="-KPIC" ;;
esac
LDFLAGS_SHLIB="-shared"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
;;
*-dec-osf*)
@@ -1092,6 +1148,7 @@
*/cc|cc ) CFLAGS_SHLIB="" ;;
esac
LDFLAGS_SHLIB="-shared -expect_unresolved '*' -s"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
;;
*-unixware*)
@@ -1100,6 +1157,7 @@
*/cc|cc ) CFLAGS_SHLIB="-KPIC" ;;
esac
LDFLAGS_SHLIB="-Bdynamic -G"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT="-Wl,-Bexport"
;;
*-sco5*)
@@ -1109,8 +1167,23 @@
esac
LDFLAGS_SHLIB="-G"
LDFLAGS_SHLIB_EXPORT="-Wl,-Bexport"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
SHLIB_SUFFIX_DEPTH=1
;;
+ *-sequent-ptx*)
+ case $PLAT in
+ *-sequent-ptx2*)
+ ;;
+ *-sequent-ptx4.0*)
+ ;;
+ *-sequent-ptx*)
+ CFLAGS_SHLIB="-KPIC"
+ LDFLAGS_SHLIB="-G"
+ LDFLAGS_SHLIB_EXPORT="-Wl,-Bexport"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
+ ;;
+ esac
+ ;;
RM*-siemens-sysv4*)
# MIPS hosts can take advantage of the LDFLAGS_SHLIB_EXPORT switch
case $CC in
@@ -1118,6 +1191,7 @@
*/cc|cc ) CFLAGS_SHLIB="-KPIC" ;;
esac
LDFLAGS_SHLIB="-G"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT="-Wl,-Blargedynsym"
;;
*-siemens-sysv4*)
@@ -1127,6 +1201,7 @@
*/cc|cc ) CFLAGS_SHLIB="-KPIC" ;;
esac
LDFLAGS_SHLIB="-G"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
SHLIB_SUFFIX_DEPTH=0
DEF_SHARED_CORE=yes
@@ -1137,6 +1212,7 @@
*/cc|cc ) CFLAGS_SHLIB="-KPIC" ;;
esac
LDFLAGS_SHLIB="-G"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT=""
DEF_SHARED_CORE=yes
;;
@@ -1146,8 +1222,8 @@
*/cc|cc ) CFLAGS_SHLIB="+z" ;;
esac
LDFLAGS_SHLIB="-b"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT="-Wl,-E -Wl,-B,deferred"
- SHLIB_SUFFIX_NAME=sl
;;
*-hp-hpux10.*|*-hp-hpux11.*)
case $CC in
@@ -1155,8 +1231,8 @@
*/cc|cc ) CFLAGS_SHLIB="+z" ;;
esac
LDFLAGS_SHLIB="-b"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT="-Wl,-E -Wl,-B,deferred -Wl,+s"
- SHLIB_SUFFIX_NAME=sl
;;
*-ibm-aix*)
case $CC in
@@ -1171,6 +1247,7 @@
LDFLAGS_SHLIB="-H512 -T512 -bhalt:4 -bM:SRE -e _nostart"
;;
esac
+ LDFLAGS_MOD_SHLIB="$LDFLAGS_SHLIB -bI:@libexecdir@/httpd.exp -lc"
LDFLAGS_SHLIB="$LDFLAGS_SHLIB -bI:\$(SRCDIR)/support/httpd.exp "
LDFLAGS_SHLIB="$LDFLAGS_SHLIB -bE:\`echo \$@|sed -e
's:\.so\$\$:.exp:'\`"
LDFLAGS_SHLIB="$LDFLAGS_SHLIB -lc"
@@ -1180,12 +1257,14 @@
*-*-powermax*)
LD_SHLIB='cc'
LDFLAGS_SHLIB="-Zlink=so"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT="-Zlink=dynamic -Wl,-Bexport"
CFLAGS_SHLIB='-Zpic'
;;
*-OS/2*)
DEF_SHARED_CORE=yes
LDFLAGS_SHLIB="`echo $LDFLAGS|sed -e s/-Zexe//` -Zdll"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
SHLIB_SUFFIX_NAME=dll
SHLIB_SUFFIX_DEPTH=0
LD_SHLIB=$CC
@@ -1196,6 +1275,15 @@
SHCORE_IMPLIB='ApacheCoreOS2.a'
OS_MODULE_INCLUDE='Makefile.OS2'
;;
+ *-dgux)
+ case $CC in
+ */gcc|gcc ) CFLAGS_SHLIB="-fpic" ;;
+ esac
+ DEF_SHARED_CORE=yes
+ LDFLAGS_SHLIB="-G"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
+ LDFLAGS_SHLIB_EXPORT=""
+ ;;
*)
## ok, no known explict support for shared objects
## on this platform, but we give not up immediately.
@@ -1221,6 +1309,7 @@
# so we can guess the flags from its knowledge
CFLAGS_SHLIB="`$PERL -V:cccdlflags | cut -d\' -f2`"
LDFLAGS_SHLIB="`$PERL -V:lddlflags | cut -d\' -f2`"
+ LDFLAGS_MOD_SHLIB=$LDFLAGS_SHLIB
LDFLAGS_SHLIB_EXPORT="`$PERL -V:ccdlflags | cut -d\' -f2`"
# but additionally we have to inform the
# user that we are just guessing the flags
@@ -1364,11 +1453,30 @@
*-dg-dgux*)
# R4.11MU02 requires -lsocket -lnsl ... no idea if it's earlier or
# later than what we already knew about. PR#732
- if ./helpers/TestCompile lib socket; then
- LIBS="$LIBS -lsocket"
+ if ./helpers/TestCompile lib nsl; then
+ LIBS="$LIBS -lnsl"
+ TLIB='-lnsl'
fi
+ if TLIB=$TLIB ./helpers/TestCompile lib socket; then
+ LIBS="-lsocket $LIBS"
+ fi
+ ;;
+ BS2000*-siemens-sysv4*)
+ # Depending on the BS2000 OS and compiler/crte release,
+ # -lnsl may be available (or may be not).
+ # In standard SVR4 systems, -lsocket relies on some symbols
+ # from -lnsl, so the test for -lnsl must appear first.
if ./helpers/TestCompile lib nsl; then
LIBS="$LIBS -lnsl"
+ TLIB='-lnsl'
+ fi
+ if TLIB=$TLIB ./helpers/TestCompile lib socket; then
+ LIBS="-lsocket $LIBS"
+ fi
+ if ./helpers/TestCompile func initgroups; then
+ :
+ else
+ CFLAGS="$CFLAGS -DNEED_INITGROUPS"
fi
;;
esac
@@ -1634,7 +1742,7 @@
# select the special subtarget for shared core generation
SUBTARGET=target_shared
# determine additional suffixes for libhttpd.so
- V=1 R=3 P=7
+ V=1 R=3 P=9
if [ "x$SHLIB_SUFFIX_DEPTH" = "x0" ]; then
SHLIB_SUFFIX_LIST=""
fi
@@ -1670,6 +1778,9 @@
if [ "x$TLDFLAGS_SHLIB_EXPORT" = "x" ]; then
echo "LDFLAGS_SHLIB_EXPORT=$LDFLAGS_SHLIB_EXPORT" >> Makefile.config
fi
+ if [ "x$TLDFLAGS_MOD_SHLIB" = "x" ]; then
+ echo "LDFLAGS_MOD_SHLIB=$LDFLAGS_MOD_SHLIB" >> Makefile.config
+ fi
echo "LD_SHCORE_DEF=$LD_SHCORE_DEF" >> Makefile.config
echo "LD_SHCORE_LIBS=$LD_SHCORE_LIBS" >> Makefile.config
echo "SHARED_CORE_EP=$SHARED_CORE_EP" >> Makefile.config
@@ -1818,6 +1929,7 @@
echo "SUBTARGET=$SUBTARGET" >> Makefile
echo "SHLIB_SUFFIX_NAME=$SHLIB_SUFFIX_NAME" >> Makefile
echo "SHLIB_SUFFIX_LIST=$SHLIB_SUFFIX_LIST" >> Makefile
+echo "SHLIB_EXPORT_FILES=$SHLIB_EXPORT_FILES" >> Makefile
echo "" >> Makefile
####################################################################
@@ -1854,6 +1966,17 @@
case $PLAT in
*-ibm-aix* )
DL_LIB="-lld"
+ ;;
+ *-sequent-ptx* )
+ case $PLAT in
+ *-sequent-ptx2*)
+ ;;
+ *-sequent-ptx4.0*)
+ ;;
+ *-sequent-ptx*)
+ DL_LIB="-ldl"
+ ;;
+ esac
;;
*-hp-hpux*)
if ./helpers/TestCompile func shl_load; then
1.4 +3 -1 apache-apr/pthreads/src/ap/Makefile.tmpl
Index: Makefile.tmpl
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/ap/Makefile.tmpl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- Makefile.tmpl 1999/06/10 06:25:46 1.3
+++ Makefile.tmpl 1999/08/19 20:52:17 1.4
@@ -6,7 +6,7 @@
LIB=libap.a
OBJS=ap_cpystrn.o ap_execve.o ap_fnmatch.o ap_getpass.o ap_md5c.o
ap_signal.o \
- ap_slack.o ap_snprintf.o
+ ap_slack.o ap_snprintf.o ap_sha1.o ap_checkpass.o ap_base64.o
.c.o:
$(CC) -c $(INCLUDES) $(CFLAGS) $<
@@ -59,6 +59,8 @@
$(INCDIR)/ap_config_auto.h $(OSDIR)/os.h $(OSDIR)/os-inline.c \
$(INCDIR)/ap_ctype.h $(INCDIR)/hsregex.h $(INCDIR)/ap_md5.h \
$(INCDIR)/ap.h
+ap_sha1.o: ap_sha1.c $(INCDIR)/ap_config.h $(INCDIR)/ap_sha1.h \
+ $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h $(OSDIR)/os-inline.c
ap_signal.o: ap_signal.c $(INCDIR)/httpd.h $(INCDIR)/ap_config.h \
$(INCDIR)/ap_mmn.h $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h \
$(OSDIR)/os-inline.c $(INCDIR)/ap_ctype.h $(INCDIR)/hsregex.h \
1.3 +12 -0 apache-apr/pthreads/src/ap/ap.dsp
Index: ap.dsp
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/ap/ap.dsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- ap.dsp 1999/02/07 06:29:13 1.2
+++ ap.dsp 1999/08/19 20:52:18 1.3
@@ -106,5 +106,17 @@
SOURCE=.\ap_md5c.c
# End Source File
+# Begin Source File
+
+SOURCE=.\ap_sha1.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ap_checkpass.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ap_base64.c
+# End Source File
# End Target
# End Project
1.3 +147 -22 apache-apr/pthreads/src/ap/ap.mak
Index: ap.mak
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/ap/ap.mak,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- ap.mak 1999/02/07 06:29:13 1.2
+++ ap.mak 1999/08/19 20:52:18 1.3
@@ -50,6 +50,9 @@
[EMAIL PROTECTED] "$(INTDIR)\ap_signal.obj"
[EMAIL PROTECTED] "$(INTDIR)\ap_slack.obj"
[EMAIL PROTECTED] "$(INTDIR)\ap_snprintf.obj"
+ [EMAIL PROTECTED] "$(INTDIR)\ap_sha1.obj"
+ [EMAIL PROTECTED] "$(INTDIR)\ap_base64.obj"
+ [EMAIL PROTECTED] "$(INTDIR)\ap_checkpass.obj"
[EMAIL PROTECTED] "$(INTDIR)\vc50.idb"
[EMAIL PROTECTED] "$(OUTDIR)\ap.lib"
@@ -95,7 +98,7 @@
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\ap.bsc"
BSC32_SBRS= \
-
+
LIB32=link.exe -lib
LIB32_FLAGS=/nologo /out:"$(OUTDIR)\ap.lib"
LIB32_OBJS= \
@@ -104,7 +107,10 @@
"$(INTDIR)\ap_md5c.obj" \
"$(INTDIR)\ap_signal.obj" \
"$(INTDIR)\ap_slack.obj" \
- "$(INTDIR)\ap_snprintf.obj"
+ "$(INTDIR)\ap_snprintf.obj" \
+ "$(INTDIR)\ap_sha1.obj" \
+ "$(INTDIR)\ap_base64.obj" \
+ "$(INTDIR)\ap_checkpass.obj"
"$(OUTDIR)\ap.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
$(LIB32) @<<
@@ -136,6 +142,9 @@
[EMAIL PROTECTED] "$(INTDIR)\ap_signal.obj"
[EMAIL PROTECTED] "$(INTDIR)\ap_slack.obj"
[EMAIL PROTECTED] "$(INTDIR)\ap_snprintf.obj"
+ [EMAIL PROTECTED] "$(INTDIR)\ap_sha1.obj"
+ [EMAIL PROTECTED] "$(INTDIR)\ap_base64.obj"
+ [EMAIL PROTECTED] "$(INTDIR)\ap_checkpass.obj"
[EMAIL PROTECTED] "$(INTDIR)\vc50.idb"
[EMAIL PROTECTED] "$(OUTDIR)\ap.lib"
@@ -181,7 +190,7 @@
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\ap.bsc"
BSC32_SBRS= \
-
+
LIB32=link.exe -lib
LIB32_FLAGS=/nologo /out:"$(OUTDIR)\ap.lib"
LIB32_OBJS= \
@@ -190,7 +199,10 @@
"$(INTDIR)\ap_md5c.obj" \
"$(INTDIR)\ap_signal.obj" \
"$(INTDIR)\ap_slack.obj" \
- "$(INTDIR)\ap_snprintf.obj"
+ "$(INTDIR)\ap_snprintf.obj" \
+ "$(INTDIR)\ap_sha1.obj" \
+ "$(INTDIR)\ap_base64.obj" \
+ "$(INTDIR)\ap_checkpass.obj"
"$(OUTDIR)\ap.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
$(LIB32) @<<
@@ -219,13 +231,13 @@
"..\os\win32\readdir.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
-
+
NODEP_CPP_AP_CP=\
"..\include\ap_config_auto.h"\
"..\include\ebcdic.h"\
"..\include\os.h"\
"..\include\sfio.h"\
-
+
"$(INTDIR)\ap_cpystrn.obj" : $(SOURCE) $(DEP_CPP_AP_CP) "$(INTDIR)"
@@ -244,8 +256,8 @@
"..\include\util_uri.h"\
"..\os\win32\os.h"\
"..\os\win32\readdir.h"\
-
+
"$(INTDIR)\ap_cpystrn.obj" : $(SOURCE) $(DEP_CPP_AP_CP) "$(INTDIR)"
@@ -264,11 +276,11 @@
"..\os\win32\os.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
-
+
NODEP_CPP_AP_FN=\
"..\include\ap_config_auto.h"\
"..\include\os.h"\
-
+
"$(INTDIR)\ap_fnmatch.obj" : $(SOURCE) $(DEP_CPP_AP_FN) "$(INTDIR)"
@@ -282,8 +294,8 @@
"..\include\fnmatch.h"\
"..\include\hsregex.h"\
"..\os\win32\os.h"\
-
+
"$(INTDIR)\ap_fnmatch.obj" : $(SOURCE) $(DEP_CPP_AP_FN) "$(INTDIR)"
@@ -307,13 +319,13 @@
"..\os\win32\readdir.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
-
+
NODEP_CPP_AP_SI=\
"..\include\ap_config_auto.h"\
"..\include\ebcdic.h"\
"..\include\os.h"\
"..\include\sfio.h"\
-
+
"$(INTDIR)\ap_signal.obj" : $(SOURCE) $(DEP_CPP_AP_SI) "$(INTDIR)"
@@ -332,7 +344,7 @@
"..\include\util_uri.h"\
"..\os\win32\os.h"\
"..\os\win32\readdir.h"\
-
+
"$(INTDIR)\ap_signal.obj" : $(SOURCE) $(DEP_CPP_AP_SI) "$(INTDIR)"
@@ -358,14 +370,14 @@
"..\os\win32\readdir.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
-
+
NODEP_CPP_AP_SL=\
"..\include\ap_config_auto.h"\
"..\include\ebcdic.h"\
"..\include\os.h"\
"..\include\sfio.h"\
-
+
"$(INTDIR)\ap_slack.obj" : $(SOURCE) $(DEP_CPP_AP_SL) "$(INTDIR)"
@@ -384,8 +396,8 @@
"..\include\util_uri.h"\
"..\os\win32\os.h"\
"..\os\win32\readdir.h"\
-
+
"$(INTDIR)\ap_slack.obj" : $(SOURCE) $(DEP_CPP_AP_SL) "$(INTDIR)"
@@ -409,13 +421,13 @@
"..\os\win32\readdir.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
-
+
NODEP_CPP_AP_SN=\
"..\include\ap_config_auto.h"\
"..\include\ebcdic.h"\
"..\include\os.h"\
"..\include\sfio.h"\
-
+
"$(INTDIR)\ap_snprintf.obj" : $(SOURCE) $(DEP_CPP_AP_SN) "$(INTDIR)"
@@ -434,8 +446,8 @@
"..\include\util_uri.h"\
"..\os\win32\os.h"\
"..\os\win32\readdir.h"\
-
+
"$(INTDIR)\ap_snprintf.obj" : $(SOURCE) $(DEP_CPP_AP_SN) "$(INTDIR)"
@@ -454,12 +466,12 @@
"..\os\win32\os.h"\
{$(INCLUDE)}"sys\stat.h"\
{$(INCLUDE)}"sys\types.h"\
-
+
NODEP_CPP_AP_MD=\
"..\include\ap_config_auto.h"\
"..\include\os.h"\
".\ebcdic.h"\
-
+
"$(INTDIR)\ap_md5c.obj" : $(SOURCE) $(DEP_CPP_AP_MD) "$(INTDIR)"
@@ -473,13 +485,126 @@
"..\include\ap_mmn.h"\
"..\include\hsregex.h"\
"..\os\win32\os.h"\
-
+
"$(INTDIR)\ap_md5c.obj" : $(SOURCE) $(DEP_CPP_AP_MD) "$(INTDIR)"
!ENDIF
+
+SOURCE=.\ap_checkpass.c
+
+!IF "$(CFG)" == "ap - Win32 Release"
+
+DEP_CPP_AP_CH=\
+ "..\include\ap_config.h"\
+ "..\include\ap_ctype.h"\
+ "..\include\ap_mmn.h"\
+ "..\include\hsregex.h"\
+ "..\os\win32\os.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
+
+NODEP_CPP_AP_CH=\
+ "..\include\ap_config_auto.h"\
+ "..\include\os.h"\
+ ".\ebcdic.h"\
+
+
+"$(INTDIR)\ap_checkpass.obj" : $(SOURCE) $(DEP_CPP_AP_CH) "$(INTDIR)"
+
+
+!ELSEIF "$(CFG)" == "ap - Win32 Debug"
+
+DEP_CPP_AP_CH=\
+ "..\include\ap_config.h"\
+ "..\include\ap_ctype.h"\
+ "..\include\ap_mmn.h"\
+ "..\include\hsregex.h"\
+ "..\os\win32\os.h"\
+
+
+"$(INTDIR)\ap_checkpass.obj" : $(SOURCE) $(DEP_CPP_AP_CH) "$(INTDIR)"
+
+
+!ENDIF
+
+SOURCE=.\ap_sha1.c
+
+!IF "$(CFG)" == "ap - Win32 Release"
+
+DEP_CPP_AP_SH=\
+ "..\include\ap_config.h"\
+ "..\include\ap_ctype.h"\
+ "..\include\ap_sha1.h"\
+ "..\include\ap_mmn.h"\
+ "..\include\hsregex.h"\
+ "..\os\win32\os.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
+
+NODEP_CPP_AP_SH=\
+ "..\include\ap_config_auto.h"\
+ "..\include\os.h"\
+ ".\ebcdic.h"\
+
+
+"$(INTDIR)\ap_sha1.obj" : $(SOURCE) $(DEP_CPP_AP_SH) "$(INTDIR)"
+
+
+!ELSEIF "$(CFG)" == "ap - Win32 Debug"
+
+DEP_CPP_AP_SH=\
+ "..\include\ap_config.h"\
+ "..\include\ap_ctype.h"\
+ "..\include\ap_sha1.h"\
+ "..\include\ap_mmn.h"\
+ "..\include\hsregex.h"\
+ "..\os\win32\os.h"\
+
+
+"$(INTDIR)\ap_sha1.obj" : $(SOURCE) $(DEP_CPP_AP_SH) "$(INTDIR)"
+
+
+!ENDIF
+
+SOURCE=.\ap_base64.c
+
+!IF "$(CFG)" == "ap - Win32 Release"
+
+DEP_CPP_AP_BA=\
+ "..\include\ap_config.h"\
+ "..\include\ap_ctype.h"\
+ "..\include\ap_mmn.h"\
+ "..\include\hsregex.h"\
+ "..\os\win32\os.h"\
+ {$(INCLUDE)}"sys\stat.h"\
+ {$(INCLUDE)}"sys\types.h"\
+
+NODEP_CPP_AP_BA=\
+ "..\include\ap_config_auto.h"\
+ "..\include\os.h"\
+ ".\ebcdic.h"\
+
+
+"$(INTDIR)\ap_base64.obj" : $(SOURCE) $(DEP_CPP_AP_BA) "$(INTDIR)"
+
+
+!ELSEIF "$(CFG)" == "ap - Win32 Debug"
+
+DEP_CPP_AP_BA=\
+ "..\include\ap_config.h"\
+ "..\include\ap_ctype.h"\
+ "..\include\ap_mmn.h"\
+ "..\include\hsregex.h"\
+ "..\os\win32\os.h"\
+
+
+"$(INTDIR)\ap_base64.obj" : $(SOURCE) $(DEP_CPP_AP_BA) "$(INTDIR)"
+
+
+!ENDIF
!ENDIF
1.4 +14 -57 apache-apr/pthreads/src/ap/ap_md5c.c
Index: ap_md5c.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/ap/ap_md5c.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- ap_md5c.c 1999/06/10 06:25:47 1.3
+++ ap_md5c.c 1999/08/19 20:52:18 1.4
@@ -412,18 +412,11 @@
}
/*
- * Define the Magic String prefix that identifies a password as being
- * hashed using our algorithm.
- */
-static const char *apr1_id = "$apr1$";
-
-/*
* The following MD5 password encryption code was largely borrowed from
* the FreeBSD 3.0 /usr/src/lib/libcrypt/crypt.c file, which is
* licenced as stated at the top of this file.
*/
-
-static void to64(char *s, unsigned long v, int n)
+API_EXPORT(void) ap_to64(char *s, unsigned long v, int n)
{
static unsigned char itoa64[] = /* 0 ... 63 => ASCII - 64 */
"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
@@ -464,8 +457,8 @@
/*
* If it starts with the magic string, then skip that.
*/
- if (!strncmp((char *)sp, apr1_id, strlen(apr1_id))) {
- sp += strlen(apr1_id);
+ if (strncmp((char *)sp, AP_MD5PW_ID, AP_MD5PW_IDLEN) == 0) {
+ sp += AP_MD5PW_IDLEN;
}
/*
@@ -494,7 +487,7 @@
/*
* Then our magic string
*/
- ap_MD5Update(&ctx, (const unsigned char *)apr1_id, strlen(apr1_id));
+ ap_MD5Update(&ctx, (const unsigned char *) AP_MD5PW_ID, AP_MD5PW_IDLEN);
/*
* Then the raw salt
@@ -534,9 +527,10 @@
* Now make the output string. We know our limitations, so we
* can use the string routines without bounds checking.
*/
- strcpy(passwd, apr1_id);
- strncat(passwd, (char *)sp, sl);
- strcat(passwd, "$");
+ ap_cpystrn(passwd, AP_MD5PW_ID, AP_MD5PW_IDLEN + 1);
+ ap_cpystrn(passwd + AP_MD5PW_IDLEN, (char *)sp, sl + 1);
+ passwd[AP_MD5PW_IDLEN + sl] = '$';
+ passwd[AP_MD5PW_IDLEN + sl + 1] = '\0';
ap_MD5Final(final, &ctx);
@@ -572,12 +566,12 @@
p = passwd + strlen(passwd);
- l = (final[ 0]<<16) | (final[ 6]<<8) | final[12]; to64(p, l, 4); p += 4;
- l = (final[ 1]<<16) | (final[ 7]<<8) | final[13]; to64(p, l, 4); p += 4;
- l = (final[ 2]<<16) | (final[ 8]<<8) | final[14]; to64(p, l, 4); p += 4;
- l = (final[ 3]<<16) | (final[ 9]<<8) | final[15]; to64(p, l, 4); p += 4;
- l = (final[ 4]<<16) | (final[10]<<8) | final[ 5]; to64(p, l, 4); p += 4;
- l = final[11] ; to64(p, l, 2); p += 2;
+ l = (final[ 0]<<16) | (final[ 6]<<8) | final[12]; ap_to64(p, l, 4); p +=
4;
+ l = (final[ 1]<<16) | (final[ 7]<<8) | final[13]; ap_to64(p, l, 4); p +=
4;
+ l = (final[ 2]<<16) | (final[ 8]<<8) | final[14]; ap_to64(p, l, 4); p +=
4;
+ l = (final[ 3]<<16) | (final[ 9]<<8) | final[15]; ap_to64(p, l, 4); p +=
4;
+ l = (final[ 4]<<16) | (final[10]<<8) | final[ 5]; ap_to64(p, l, 4); p +=
4;
+ l = final[11] ; ap_to64(p, l, 2); p +=
2;
*p = '\0';
/*
@@ -588,40 +582,3 @@
ap_cpystrn(result, passwd, nbytes - 1);
}
-/*
- * Validate a plaintext password against a smashed one. Use either
- * crypt() (if available) or ap_MD5Encode(), depending upon the format
- * of the smashed input password. Return NULL if they match, or
- * an explanatory text string if they don't.
- */
-
-API_EXPORT(char *) ap_validate_password(const char *passwd, const char *hash)
-{
- char sample[120];
- char *crypt_pw;
-
- if (!strncmp(hash, apr1_id, strlen(apr1_id))) {
- /*
- * The hash was created using our custom algorithm.
- */
- ap_MD5Encode((const unsigned char *)passwd,
- (const unsigned char *)hash, sample, sizeof(sample));
- }
- else {
- /*
- * It's not our algorithm, so feed it to crypt() if possible.
- */
-#if defined(WIN32) || defined(TPF)
- /*
- * On Windows, the only alternative to our MD5 algorithm is plain
- * text.
- */
- ap_cpystrn(sample, passwd, sizeof(sample) - 1);
-#else
- crypt_pw = crypt(passwd, hash);
- ap_cpystrn(sample, crypt_pw, sizeof(sample) - 1);
-#endif
- }
-
- return (strcmp(sample, hash) == 0) ? NULL : "password mismatch";
-}
1.4 +5 -0 apache-apr/pthreads/src/ap/ap_snprintf.c
Index: ap_snprintf.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/ap/ap_snprintf.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- ap_snprintf.c 1999/06/10 06:25:48 1.3
+++ ap_snprintf.c 1999/08/19 20:52:18 1.4
@@ -89,7 +89,12 @@
typedef WIDE_INT wide_int;
typedef unsigned WIDE_INT u_wide_int;
typedef WIDEST_INT widest_int;
+#ifdef __TANDEM
+/* Although Tandem supports "long long" there is no unsigned variant. */
+typedef unsigned long u_widest_int;
+#else
typedef unsigned WIDEST_INT u_widest_int;
+#endif
typedef int bool_int;
#define S_NULL "(null)"
1.5 +14 -3 apache-apr/pthreads/src/helpers/GuessOS
Index: GuessOS
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/helpers/GuessOS,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- GuessOS 1999/06/10 06:25:49 1.4
+++ GuessOS 1999/08/19 20:52:21 1.5
@@ -150,6 +150,10 @@
echo "${MACHINE}-dec-osf"; exit 0
;;
+ NONSTOP_KERNEL:*:*:*)
+ echo "${MACHINE}-tandem-oss"; exit 0;
+ ;;
+
QNX:*)
if [ "$VERSION" -gt 422 ]; then
echo "${MACHINE}-qssl-qnx32"
@@ -194,10 +198,17 @@
echo "${MACHINE}-whatever-unixware212"; exit 0
;;
- DYNIX/ptx:4*:*)
- echo "${MACHINE}-whatever-sysv4"; exit 0
+ DYNIX/ptx:4*:*:i386)
+ PTXVER=`echo ${VERSION}|sed -e 's/[^.]//'`
+ echo "${MACHINE}-sequent-ptx${PTXVER}"; exit 0
;;
+ *:3.2.0:*:i386)
+ # uname on DYNIX/ptx below V4.0.0 is brain dead
+ PTXVER=`echo ${VERSION}|sed -e 's/[^.]//'`
+ echo "${MACHINE}-sequent-ptx${PTXVER}"; exit 0
+ ;;
+
*:4.0:3.0:[345][0-9]?? | *:4.0:3.0:3[34]??[/,]* | library:*)
echo "x86-ncr-sysv4"; exit 0
;;
@@ -243,7 +254,7 @@
Rhapsody:*:*:*)
case "${MACHINE}" in
- "Power Macintosh") MACHINE=powerpc ;;
+ Power*) MACHINE=powerpc ;;
esac
echo "${MACHINE}-apple-rhapsody${RELEASE}"; exit 0
;;
1.5 +11 -6 apache-apr/pthreads/src/helpers/TestCompile
Index: TestCompile
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/helpers/TestCompile,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- TestCompile 1999/06/10 06:25:49 1.4
+++ TestCompile 1999/08/19 20:52:22 1.5
@@ -49,10 +49,15 @@
cd ./helpers
#
-# Handle "verbose", "silent" and "runit" flags
+# Handle "verbose", "silent" and "runit" flags. Allow for them
+# to be set via the environment
#
-VERBOSE=no
-RUNIT="no"
+if [ "x$VERBOSE" = "x" ]; then
+ VERBOSE="no"
+fi
+if [ "x$TCRUNIT" = "x" ]; then
+ TCRUNIT="no";
+fi
case "$1" in
"-v")
VERBOSE="yes"
@@ -63,7 +68,7 @@
shift
;;
"-r")
- RUNIT="yes"
+ TCRUNIT="yes"
shift
;;
esac
@@ -77,7 +82,7 @@
if [ "x$2" = "x" ]; then
exit
fi
- TLIB="-l$2"
+ TLIB="-l$2 $TLIB"
if [ "x$VERBOSE" = "xyes" ]; then
ERRDIR=""
else
@@ -211,7 +216,7 @@
# have PrintPath just search this directory.
if ./PrintPath -s -p`pwd` $TARGET ; then
- if [ "x$RUNIT" = "xyes" ]; then
+ if [ "x$TCRUNIT" = "xyes" ]; then
`pwd`/$TARGET
fi
exstat=0
1.4 +6 -5 apache-apr/pthreads/src/helpers/binbuild.sh
Index: binbuild.sh
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/helpers/binbuild.sh,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- binbuild.sh 1999/06/10 06:25:49 1.3
+++ binbuild.sh 1999/08/19 20:52:22 1.4
@@ -222,8 +222,8 @@
echo " -e \"s;[EMAIL PROTECTED]@;\$SR/libexec;\" -e \"s;[EMAIL
PROTECTED]@;\$SR/include;\" \\" && \
echo " -e \"s;[EMAIL PROTECTED]@;\$SR/conf;\" bindist/bin/apxs >
\$SR/bin/apxs" && \
echo "sed -e \"s;^#!/.*;#!\$PERL;\" bindist/bin/dbmmanage >
\$SR/bin/dbmmanage" && \
- echo "sed -e \"s%/usr/local/apache%\$SR/%\" \$SR/conf/httpd.conf.default >
\$SR/conf/httpd.conf" && \
- echo "sed -e \"s%PIDFILE=%PIDFILE=\$SR/%\" -e
\"s%HTTPD=%HTTPD=\\\"\$SR/%\" -e \"s%httpd\$%httpd -d \$SR\\\"%\"
bindist/bin/apachectl > \$SR/bin/apachectl" && \
+ echo "sed -e \"s%/usr/local/apache%\$SR%\" \$SR/conf/httpd.conf.default >
\$SR/conf/httpd.conf" && \
+ echo "sed -e \"s%PIDFILE=%PIDFILE=\$SR/%\" -e
\"s%HTTPD=%HTTPD=\\\"\$SR/%\" -e \"s%httpd\$%httpd -d \$SR -R
\$SR/libexec\\\"%\" bindist/bin/apachectl > \$SR/bin/apachectl" && \
echo " " && \
echo "echo \"Ready.\"" && \
echo "echo \"
+--------------------------------------------------------+\"" && \
@@ -246,9 +246,10 @@
) > install-bindist.sh
chmod 755 install-bindist.sh
-sed -e "s%\"/htdocs%\"/usr/local/apache/htdocs%" \
- -e "s%\"/icons%\"/usr/local/apache/icons%" \
- -e "s%\"/cgi-bin%\"/usr/local/apache/cgi-bin%" \
+sed -e "s%\"htdocs%\"/usr/local/apache/htdocs%" \
+ -e "s%\"icons%\"/usr/local/apache/icons%" \
+ -e "s%\"cgi-bin%\"/usr/local/apache/cgi-bin%" \
+ -e "s%\"proxy%\"/usr/local/apache/proxy%" \
-e "s%^ServerAdmin.*%ServerAdmin [EMAIL PROTECTED]" \
-e "s%#ServerName.*%#ServerName localhost%" \
-e "s%Port 8080%Port 80%" \
1.5 +6 -6 apache-apr/pthreads/src/helpers/buildinfo.sh
Index: buildinfo.sh
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/helpers/buildinfo.sh,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- buildinfo.sh 1999/06/10 06:25:49 1.4
+++ buildinfo.sh 1999/08/19 20:52:22 1.5
@@ -58,10 +58,10 @@
if [ "x$username" = "x" ]; then
username="$USER"
if [ "x$username" = "x" ]; then
- username="`whoami 2>/dev/null |\
+ username="`(whoami) 2>/dev/null |\
awk '{ printf("%s", $1); }'`"
if [ "x$username" = "x" ]; then
- username="`who am i 2>/dev/null |\
+ username="`(who am i) 2>/dev/null |\
awk '{ printf("%s", $1); }'`"
if [ "x$username" = "x" ]; then
username='unknown'
@@ -73,10 +73,10 @@
#
# determine hostname and domainname
#
-hostname="`uname -n 2>/dev/null |\
+hostname="`(uname -n) 2>/dev/null |\
awk '{ printf("%s", $1); }'`"
if [ "x$hostname" = "x" ]; then
- hostname="`hostname 2>/dev/null |\
+ hostname="`(hostname) 2>/dev/null |\
awk '{ printf("%s", $1); }'`"
if [ "x$hostname" = "x" ]; then
hostname='unknown'
@@ -115,8 +115,8 @@
if [ "x$time_year" = "x" ]; then
time_year="`date '+%y' | awk '{ printf("%s", $1); }'`"
case $time_year in
- 9[0-9]*) time_year="19$time_year" ;;
- *) time_year="20$time_year" ;;
+ [5-9][0-9]) time_year="19$time_year" ;;
+ [0-4][0-9]) time_year="20$time_year" ;;
esac
fi
case $time_month in
1.3 +11 -0 apache-apr/pthreads/src/helpers/find-dbm-lib
Index: find-dbm-lib
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/helpers/find-dbm-lib,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- find-dbm-lib 1999/03/17 17:00:59 1.2
+++ find-dbm-lib 1999/08/19 20:52:22 1.3
@@ -33,6 +33,17 @@
found_dbm=0
LIBS="$oldLIBS"
fi
+ else
+ for dblib in dbm ndbm db
+ do
+ DBM_LIB=""
+ if ./helpers/TestCompile lib $dblib dbm_open; then
+ DBM_LIB="-l${dblib}"
+ LIBS="$LIBS $DBM_LIB"
+ found_dbm=1
+ break
+ fi
+ done
fi
;;
esac
1.4 +3 -3 apache-apr/pthreads/src/helpers/mkshadow.sh
Index: mkshadow.sh
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/helpers/mkshadow.sh,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- mkshadow.sh 1999/06/10 06:25:50 1.3
+++ mkshadow.sh 1999/08/19 20:52:23 1.4
@@ -52,7 +52,7 @@
if [ ! -d $dst ]; then
mkdir $dst
fi
-DIRS="`cd $src
+DIRS="`cd $src; \
find . -type d -print |\
sed -e '/\/CVS/d' \
-e '/^\.$/d' \
@@ -64,7 +64,7 @@
IFS="$OIFS"
# fill directory tree with symlinks to files
-FILES="`cd $src
+FILES="`cd $src; \
find . -depth -print |\
sed -e '/\.o$/d' \
-e '/\.a$/d' \
@@ -81,7 +81,7 @@
OIFS="$IFS" IFS="$DIFS"
for file in $FILES; do
# don't use `-type f' above for find because of symlinks
- if [ -d $file ]; then
+ if [ -d "$src/$file" ]; then
continue
fi
basename=`echo $file | sed -e 's:^.*/::'`
1.4 +25 -0 apache-apr/pthreads/src/include/ap.h
Index: ap.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/ap.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- ap.h 1999/06/10 06:25:54 1.3
+++ ap.h 1999/08/19 20:52:27 1.4
@@ -161,6 +161,31 @@
__attribute__((format(printf,3,4)));
API_EXPORT(int) ap_vsnprintf(char *buf, size_t len, const char *format,
va_list ap);
+/* Simple BASE64 encode/decode functions.
+ *
+ * As we might encode binary strings, hence we require the length of
+ * the incoming plain source. And return the length of what we decoded.
+ *
+ * The decoding function takes any non valid char (i.e. whitespace, \0
+ * or anything non A-Z,0-9 etc as terminal.
+ *
+ * plain strings/binary sequences are not assumed '\0' terminated. Encoded
+ * strings are neither. But propably should.
+ *
+ */
+API_EXPORT(int) ap_base64encode_len(int len);
+API_EXPORT(int) ap_base64encode(char * coded_dst, const char *plain_src,int
len_plain_src);
+API_EXPORT(int) ap_base64encode_binary(char * coded_dst, const unsigned char
*plain_src,int len_plain_src);
+
+API_EXPORT(int) ap_base64decode_len(const char * coded_src);
+API_EXPORT(int) ap_base64decode(char * plain_dst, const char *coded_src);
+API_EXPORT(int) ap_base64decode_binary(unsigned char * plain_dst, const char
*coded_src);
+
+/* Password validation, as used in AuthType Basic which is able to cope
+ * (based on the prexix) with the SHA1, Apache's internal MD5 and (depending
+ * on your platform either plain or crypt(3) passwords.
+ */
+API_EXPORT(char *) ap_validate_password(const char *passwd, const char
*hash);
#ifdef __cplusplus
}
1.8 +41 -10 apache-apr/pthreads/src/include/ap_config.h
Index: ap_config.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/ap_config.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -u -r1.7 -r1.8
--- ap_config.h 1999/08/12 07:23:20 1.7
+++ ap_config.h 1999/08/19 20:52:27 1.8
@@ -327,11 +327,34 @@
typedef int rlim_t;
#elif defined(SEQUENT)
-#define HAVE_GMTOFF 1
-#undef NO_KILLPG
-#define NO_SETSID
-#define NEED_STRDUP
+#define DEFAULT_USER "nobody"
+#define DEFAULT_GROUP "nobody"
+#define NO_SHMGET 1
+#define HAVE_MMAP 1
#define HAVE_SYSLOG 1
+#define USE_MMAP_FILES 1
+#define USE_MMAP_SCOREBOARD 1
+#define USE_FCNTL_SERIALIZED_ACCEPT 1
+#define JMP_BUF sigjmp_buf
+#undef NO_SETSID
+#if SEQUENT < 40
+typedef int rlim_t;
+#define NO_GETTIMEOFDAY
+#undef HAVE_SYS_RESOURCE_H /* exists but does not provide *rlimit funcs */
+#include <sys/times.h>
+#endif
+#if SEQUENT < 42
+#define NEED_STRCASECMP
+#define NEED_STRNCASECMP
+#endif
+#if SEQUENT < 44
+#define NO_KILLPG 1
+#define NET_SIZE_T int
+#endif
+#if SEQUENT >= 44
+#undef NO_KILLPG
+#define NET_SIZE_T size_t
+#endif
#elif defined(NEXT)
typedef unsigned short mode_t;
@@ -399,6 +422,7 @@
#endif
#elif defined(MAC_OS) || defined(MAC_OS_X_SERVER) /* Mac OS (>= 10.0) and
Mac OS X Server (<= 5.x) */
+#undef PLATFORM
#ifdef MAC_OS_X_SERVER
#define PLATFORM "Mac OS X Server"
#else
@@ -614,12 +638,10 @@
#define HAVE_SHMGET 1
#define USE_SHMGET_SCOREBOARD
#ifdef _OSD_POSIX /* BS2000-POSIX mainframe needs initgroups */
-#define NEED_INITGROUPS
#define NEED_HASHBANG_EMUL /* execve() doesn't start shell scripts by
default */
-#undef HAVE_SHMGET
+#define _KMEMUSER /* Enable SHM_R/SHM_W defines in <shm.h> */
#undef NEED_STRCASECMP
#undef NEED_STRNCASECMP
-#undef USE_SHMGET_SCOREBOARD
#undef bzero
#endif /*_OSD_POSIX*/
@@ -932,6 +954,12 @@
#undef offsetof
#define offsetof(s_type,field) ((size_t)&(((s_type*)0)->field))
+#elif defined(__TANDEM)
+#define NO_WRITEV
+#define NO_KILLPG
+#define NEED_INITGROUPS
+#define NO_SLACK
+
#else
/* Unknown system - Edit these to match */
#ifdef BSD
@@ -985,7 +1013,7 @@
* __private_extern__.
* For other systems, make that a no-op.
*/
-#if defined(MAC_OS) || defined(MAC_OS_X_SERVER)
+#if (defined(MAC_OS) || defined(MAC_OS_X_SERVER)) && defined(__DYNAMIC__)
#define ap_private_extern __private_extern__
#else
#define ap_private_extern
@@ -1015,8 +1043,11 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#ifdef __TANDEM
+#include <strings.h>
+#endif
#include "ap_ctype.h"
-#if !defined(MPE) && !defined(WIN32) && !defined(TPF)
+#if !defined(MPE) && !defined(WIN32) && !defined(TPF) && !defined(__TANDEM)
#include <sys/file.h>
#endif
#ifndef WIN32
@@ -1042,7 +1073,7 @@
#endif
#else /* WIN32 */
-#include <winsock.h>
+#include <winsock2.h>
#include <malloc.h>
#include <io.h>
#include <fcntl.h>
1.4 +8 -1 apache-apr/pthreads/src/include/ap_md5.h
Index: ap_md5.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/ap_md5.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- ap_md5.h 1999/06/10 06:25:55 1.3
+++ ap_md5.h 1999/08/19 20:52:27 1.4
@@ -104,6 +104,13 @@
unsigned char buffer[64]; /* input buffer */
} AP_MD5_CTX;
+/*
+ * Define the Magic String prefix that identifies a password as being
+ * hashed using our algorithm.
+ */
+#define AP_MD5PW_ID "$apr1$"
+#define AP_MD5PW_IDLEN 6
+
API_EXPORT(void) ap_MD5Init(AP_MD5_CTX *context);
API_EXPORT(void) ap_MD5Update(AP_MD5_CTX *context, const unsigned char
*input,
unsigned int inputLen);
@@ -111,7 +118,7 @@
API_EXPORT(void) ap_MD5Encode(const unsigned char *password,
const unsigned char *salt,
char *result, size_t nbytes);
-API_EXPORT(char *) ap_validate_password(const char *passwd, const char
*hash);
+API_EXPORT(void) ap_to64(char *s, unsigned long v, int n);
#ifdef __cplusplus
}
1.5 +10 -3 apache-apr/pthreads/src/include/ap_mmn.h
Index: ap_mmn.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/ap_mmn.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- ap_mmn.h 1999/06/10 06:25:55 1.4
+++ ap_mmn.h 1999/08/19 20:52:27 1.5
@@ -217,8 +217,15 @@
* 19990320.1 - add ap_vrprintf()
* 19990320.2 - add cmd_parms.context, ap_set_config_vectors,
* export ap_add_file_conf
- * 19990320.3 - add ap_regexec()
- * 19990604.4 - add ap_field_noparam()
+ * 19990320.3 - add ap_regexec() and ap_regerror()
+ * 19990320.4 - add ap_field_noparam()
+ * 19990320.5 - add local_ip/host to conn_rec for mass-vhost
+ * 19990320.6 - add ap_SHA1Final(), ap_SHA1Init(),
+ * ap_SHA1Update_binary(), ap_SHA1Update(),
+ * ap_base64encode(), ap_base64encode_binary(),
+ * ap_base64encode_len(), ap_base64decode(),
+ * ap_base64decode_binary(), ap_base64decode_len(),
+ * ap_pbase64decode(), ap_pbase64encode()
*/
#define MODULE_MAGIC_COOKIE 0x41503133UL /* "AP13" */
@@ -226,7 +233,7 @@
#ifndef MODULE_MAGIC_NUMBER_MAJOR
#define MODULE_MAGIC_NUMBER_MAJOR 19990320
#endif
-#define MODULE_MAGIC_NUMBER_MINOR 4 /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 6 /* 0...n */
#define MODULE_MAGIC_NUMBER MODULE_MAGIC_NUMBER_MAJOR /* backward
compat */
/* Useful for testing for features. */
1.10 +2 -0 apache-apr/pthreads/src/include/http_conf_globals.h
Index: http_conf_globals.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/http_conf_globals.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -u -r1.9 -r1.10
--- http_conf_globals.h 1999/06/09 03:14:57 1.9
+++ http_conf_globals.h 1999/08/19 20:52:28 1.10
@@ -67,6 +67,8 @@
*/
extern int ap_standalone;
+extern int ap_configtestonly;
+extern int ap_docrootcheck;
extern uid_t ap_user_id;
extern char *ap_user_name;
extern gid_t ap_group_id;
1.4 +10 -5 apache-apr/pthreads/src/include/http_core.h
Index: http_core.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/http_core.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- http_core.h 1999/06/10 06:25:56 1.3
+++ http_core.h 1999/08/19 20:52:28 1.4
@@ -128,8 +128,8 @@
/* Used for constructing self-referencing URLs, and things like SERVER_PORT,
* and SERVER_NAME.
*/
-API_EXPORT(char *) ap_construct_url(pool *p, const char *uri, const
request_rec *r);
-API_EXPORT(const char *) ap_get_server_name(const request_rec *r);
+API_EXPORT(char *) ap_construct_url(pool *p, const char *uri, request_rec
*r);
+API_EXPORT(const char *) ap_get_server_name(request_rec *r);
API_EXPORT(unsigned) ap_get_server_port(const request_rec *r);
API_EXPORT(unsigned long) ap_get_limit_req_body(const request_rec *r);
API_EXPORT(void) ap_custom_response(request_rec *r, int status, char
*string);
@@ -156,10 +156,11 @@
/*
* CGI Script stuff for Win32...
*/
-typedef enum { FileTypeUNKNOWN, FileTypeBIN, FileTypeEXE, FileTypeSCRIPT }
file_type_e;
+typedef enum { eFileTypeUNKNOWN, eFileTypeBIN, eFileTypeEXE16,
eFileTypeEXE32,
+ eFileTypeSCRIPT } file_type_e;
typedef enum { INTERPRETER_SOURCE_UNSET, INTERPRETER_SOURCE_REGISTRY,
INTERPRETER_SOURCE_SHEBANG } interpreter_source_e;
-API_EXPORT(file_type_e) ap_get_win32_interpreter(const request_rec *, char*,
char **);
+API_EXPORT(file_type_e) ap_get_win32_interpreter(const request_rec *, char
**);
#endif
#ifdef CORE_PRIVATE
@@ -230,7 +231,11 @@
signed int content_md5 : 2; /* calculate Content-MD5? */
- unsigned use_canonical_name : 2; /* bit 0 = on/off, bit 1 = unset/set */
+#define USE_CANONICAL_NAME_OFF (0)
+#define USE_CANONICAL_NAME_ON (1)
+#define USE_CANONICAL_NAME_DNS (2)
+#define USE_CANONICAL_NAME_UNSET (3)
+ unsigned use_canonical_name : 2;
/* since is_fnmatch(conf->d) was being called so frequently in
* directory_walk() and its relatives, this field was created and
1.20 +13 -3 apache-apr/pthreads/src/include/httpd.h
Index: httpd.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/include/httpd.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -u -r1.19 -r1.20
--- httpd.h 1999/07/29 20:11:41 1.19
+++ httpd.h 1999/08/19 20:52:29 1.20
@@ -86,6 +86,8 @@
#elif defined(WIN32)
/* Set default for Windows file system */
#define HTTPD_ROOT "/apache"
+#elif defined(BEOS)
+#define HTTPD_ROOT "/boot/home/apache"
#else
#define HTTPD_ROOT "/usr/local/apache"
#endif
@@ -307,7 +309,7 @@
* the overhead.
*/
#ifdef NO_THREADS
-#define HARD_SERVER_LIMIT 256
+#define HARD_SERVER_LIMIT 1024
#endif
#ifndef HARD_SERVER_LIMIT
#define HARD_SERVER_LIMIT 8
@@ -451,7 +453,7 @@
* Always increases along the same track as the source branch.
* For example, Apache 1.4.2 would be '10402100', 2.5b7 would be '20500007'.
*/
-#define APACHE_RELEASE 10307000
+#define APACHE_RELEASE 10309100
#define SERVER_PROTOCOL "HTTP/1.1"
#ifndef SERVER_SUPPORT
@@ -862,6 +864,10 @@
signed int double_reverse:2;/* have we done double-reverse DNS?
* -1 yes/failure, 0 not yet, 1 yes/success */
int keepalives; /* How many times have we used it? */
+ char *local_ip; /* server IP address */
+ char *local_host; /* used for ap_get_server_name when
+ * UseCanonicalName is set to DNS
+ * (ignores setting of HostnameLookups) */
};
/* Per-vhost config... */
@@ -1003,10 +1009,14 @@
API_EXPORT(int) ap_is_matchexp(const char *str);
API_EXPORT(int) ap_strcmp_match(const char *str, const char *exp);
API_EXPORT(int) ap_strcasecmp_match(const char *str, const char *exp);
-API_EXPORT(char *) ap_uudecode(pool *, const char *);
+API_EXPORT(char *) ap_pbase64decode(pool *p, const char *bufcoded);
+API_EXPORT(char *) ap_pbase64encode(pool *p, char *string);
+API_EXPORT(char *) ap_uudecode(pool *p, const char *bufcoded);
API_EXPORT(char *) ap_uuencode(pool *p, char *string);
+
#ifdef OS2
void os2pathname(char *path);
+char *ap_double_quotes(pool *p, char *str);
#endif
API_EXPORT(int) ap_regexec(const regex_t *preg, const char *string,
1.14 +2 -0 apache-apr/pthreads/src/main/acceptlock.c
Index: acceptlock.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/acceptlock.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -u -r1.13 -r1.14
--- acceptlock.c 1999/07/19 03:51:55 1.13
+++ acceptlock.c 1999/08/19 20:52:33 1.14
@@ -660,6 +660,8 @@
"Child cannot open lock semaphore, rc=%d", rc);
clean_child_exit(APEXIT_CHILDINIT);
}
+ } else {
+ ap_register_cleanup(p, NULL, accept_mutex_cleanup, ap_null_cleanup);
}
}
/*
1.14 +1 -0 apache-apr/pthreads/src/main/buff.c
Index: buff.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/buff.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -u -r1.13 -r1.14
--- buff.c 1999/06/10 03:38:32 1.13
+++ buff.c 1999/08/19 20:52:33 1.14
@@ -566,6 +566,7 @@
return rv;
}
+
/*
* Read up to nbyte bytes into buf.
* If fewer than byte bytes are currently available, then return those.
1.15 +1 -0 apache-apr/pthreads/src/main/http_config.c
Index: http_config.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/http_config.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -u -r1.14 -r1.15
--- http_config.c 1999/07/19 00:59:33 1.14
+++ http_config.c 1999/08/19 20:52:34 1.15
@@ -625,6 +625,7 @@
m->module_index = -1; /* simulate being unloaded, should
* be unnecessary */
dynamic_modules--;
+ total_modules--;
}
API_EXPORT(void) ap_add_loaded_module(module *mod)
1.15 +114 -72 apache-apr/pthreads/src/main/http_core.c
Index: http_core.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/http_core.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -u -r1.14 -r1.15
--- http_core.c 1999/06/10 06:26:08 1.14
+++ http_core.c 1999/08/19 20:52:34 1.15
@@ -130,7 +130,7 @@
conf->content_md5 = 2;
- conf->use_canonical_name = 1 | 2; /* 2 = unset, default on */
+ conf->use_canonical_name = USE_CANONICAL_NAME_UNSET;
conf->hostname_lookups = HOSTNAME_LOOKUP_UNSET;
conf->do_rfc1413 = DEFAULT_RFC1413 | 2; /* set bit 1 to indicate default
*/
@@ -242,7 +242,7 @@
if ((new->content_md5 & 2) == 0) {
conf->content_md5 = new->content_md5;
}
- if ((new->use_canonical_name & 2) == 0) {
+ if (new->use_canonical_name != USE_CANONICAL_NAME_UNSET) {
conf->use_canonical_name = new->use_canonical_name;
}
@@ -675,17 +675,51 @@
* name" as supplied by a possible Host: header or full URI. We never
* trust the port passed in the client's headers, we always use the
* port of the actual socket.
+ *
+ * The DNS option to UseCanonicalName causes this routine to do a
+ * reverse lookup on the local IP address of the connectiona and use
+ * that for the ServerName. This makes its value more reliable while
+ * at the same time allowing Demon's magic virtual hosting to work.
+ * The assumption is that DNS lookups are sufficiently quick...
+ * -- fanf 1998-10-03
*/
-API_EXPORT(const char *) ap_get_server_name(const request_rec *r)
+API_EXPORT(const char *) ap_get_server_name(request_rec *r)
{
+ conn_rec *conn = r->connection;
core_dir_config *d;
d = (core_dir_config *)ap_get_module_config(r->per_dir_config,
&core_module);
- if (d->use_canonical_name & 1) {
- return r->server->server_hostname;
+
+ if (d->use_canonical_name == USE_CANONICAL_NAME_OFF) {
+ return r->hostname ? r->hostname : r->server->server_hostname;
}
- return r->hostname ? r->hostname : r->server->server_hostname;
+ if (d->use_canonical_name == USE_CANONICAL_NAME_DNS) {
+ if (conn->local_host == NULL) {
+ struct in_addr *iaddr;
+ struct hostent *hptr;
+ int old_stat;
+ old_stat = ap_update_child_status(conn->child_num, conn->thread_num,
+ SERVER_BUSY_DNS, r);
+ iaddr = &(conn->local_addr.sin_addr);
+ hptr = gethostbyaddr((char *)iaddr, sizeof(struct in_addr),
+ AF_INET);
+ if (hptr != NULL) {
+ conn->local_host = ap_pstrdup(conn->pool,
+ (void *)hptr->h_name);
+ ap_str_tolower(conn->local_host);
+ }
+ else {
+ conn->local_host = ap_pstrdup(conn->pool,
+ r->server->server_hostname);
+ }
+ (void) ap_update_child_status(conn->child_num, conn->thread_num,
+ old_stat, r);
+ }
+ return conn->local_host;
+ }
+ /* default */
+ return r->server->server_hostname;
}
API_EXPORT(unsigned) ap_get_server_port(const request_rec *r)
@@ -696,40 +730,21 @@
port = r->server->port ? r->server->port : ap_default_port(r);
- if (d->use_canonical_name & 1) {
- return port;
+ if (d->use_canonical_name == USE_CANONICAL_NAME_OFF
+ || d->use_canonical_name == USE_CANONICAL_NAME_DNS) {
+ return r->hostname ? ntohs(r->connection->local_addr.sin_port)
+ : port;
}
- /* ZZZ change to AP function, and make sure AP func can deal with IPv6.
*/
- return r->hostname ? ntohs(r->connection->local_addr.sin_port)
- : port;
+ /* default */
+ return port;
}
API_EXPORT(char *) ap_construct_url(pool *p, const char *uri,
- const request_rec *r)
+ request_rec *r)
{
- unsigned port;
- const char *host;
- core_dir_config *d =
- (core_dir_config *)ap_get_module_config(r->per_dir_config,
&core_module);
-
- if (d->use_canonical_name & 1) {
- port = r->server->port ? r->server->port : ap_default_port(r);
- host = r->server->server_hostname;
- }
- else {
- if (r->hostname) {
- /* ZZZ change to AP function. IPv6 */
- port = ntohs(r->connection->local_addr.sin_port);
- }
- else if (r->server->port) {
- port = r->server->port;
- }
- else {
- port = ap_default_port(r);
- }
+ unsigned port = ap_get_server_port(r);
+ const char *host = ap_get_server_name(r);
- host = r->hostname ? r->hostname : r->server->server_hostname;
- }
if (ap_is_default_port(port, r)) {
return ap_pstrcat(p, ap_http_method(r), "://", host, uri, NULL);
}
@@ -837,7 +852,6 @@
}
API_EXPORT (file_type_e) ap_get_win32_interpreter(const request_rec *r,
- char* ext,
char** interpreter )
{
HANDLE hFile;
@@ -845,50 +859,68 @@
BOOLEAN bResult;
char buffer[1024];
core_dir_config *d;
- file_type_e fileType = FileTypeUNKNOWN;
int i;
+ file_type_e fileType = eFileTypeUNKNOWN;
+ char *ext = NULL;
+ char *exename = NULL;
d = (core_dir_config *)ap_get_module_config(r->per_dir_config,
&core_module);
- if (d->script_interpreter_source == INTERPRETER_SOURCE_REGISTRY) {
- /*
- * Check the registry
- */
+ /* Find the file extension */
+ exename = strrchr(r->filename, '/');
+ if (!exename) {
+ exename = strrchr(r->filename, '\\');
+ }
+ if (!exename) {
+ exename = r->filename;
+ }
+ else {
+ exename++;
+ }
+ ext = strrchr(exename, '.');
+
+ if (ext && (!strcasecmp(ext,".bat") || !strcasecmp(ext,".cmd"))) {
+ return eFileTypeEXE32;
+ }
+
+ /* If the file has an extension and it is not .com and not .exe and
+ * we've been instructed to search the registry, then do it!
+ */
+ if (ext && strcasecmp(ext,".exe") && strcasecmp(ext,".com") &&
+ d->script_interpreter_source == INTERPRETER_SOURCE_REGISTRY) {
+ /* Check the registry */
*interpreter = get_interpreter_from_win32_registry(r->pool, ext);
if (*interpreter)
- return FileTypeSCRIPT;
+ return eFileTypeSCRIPT;
else {
ap_log_error(APLOG_MARK, APLOG_NOERRNO|APLOG_INFO, r->server,
"ScriptInterpreterSource config directive set to
\"registry\".\n\t"
"Registry was searched but interpreter not found. Trying the
shebang line.");
}
- }
+ }
- /*
- * Look for a #! line in the script
- */
+ /* Need to peek into the file figure out what it really is... */
hFile = CreateFile(r->filename, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
-
if (hFile == INVALID_HANDLE_VALUE) {
- return FileTypeUNKNOWN;
+ return eFileTypeUNKNOWN;
}
-
bResult = ReadFile(hFile, (void*) &buffer, sizeof(buffer) - 1,
&nBytesRead, NULL);
if (!bResult || (nBytesRead == 0)) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, r,
"ReadFile(%s) failed", r->filename);
CloseHandle(hFile);
- return (FileTypeUNKNOWN);
+ return eFileTypeUNKNOWN;
}
CloseHandle(hFile);
-
buffer[nBytesRead] = '\0';
-
+
+ /* Script or executable, that is the question... */
if ((buffer[0] == '#') && (buffer[1] == '!')) {
- fileType = FileTypeSCRIPT;
+ /* Assuming file is a script since it starts with a shebang */
+ fileType = eFileTypeSCRIPT;
for (i = 2; i < sizeof(buffer); i++) {
if ((buffer[i] == '\r')
|| (buffer[i] == '\n')) {
@@ -896,16 +928,21 @@
}
}
buffer[i] = '\0';
- for (i = 2; buffer[i] == ' '; ++i)
+ for (i = 2; buffer[i] == ' ' ; ++i)
;
*interpreter = ap_pstrdup(r->pool, buffer + i );
}
else {
- /* Check to see if it's a executable */
- IMAGE_DOS_HEADER *hdr = (IMAGE_DOS_HEADER*)buffer;
- if (hdr->e_magic == IMAGE_DOS_SIGNATURE && hdr->e_cblp < 512) {
- fileType = FileTypeEXE;
+ /* Not a script, is it an executable? */
+ IMAGE_DOS_HEADER *hdr = (IMAGE_DOS_HEADER*)buffer;
+ if ((nBytesRead >= sizeof(IMAGE_DOS_HEADER)) && (hdr->e_magic ==
IMAGE_DOS_SIGNATURE)) {
+ if (hdr->e_lfarlc < 0x40)
+ fileType = eFileTypeEXE16;
+ else
+ fileType = eFileTypeEXE32;
}
+ else
+ fileType = eFileTypeUNKNOWN;
}
return fileType;
@@ -1014,7 +1051,7 @@
}
arg = ap_os_canonical_filename(cmd->pool, arg);
- if (!ap_is_directory(arg)) {
+ if (ap_configtestonly && ap_docrootcheck && !ap_is_directory(arg)) {
if (cmd->server->is_virtual) {
fprintf(stderr, "Warning: DocumentRoot [%s] does not exist\n",
arg);
@@ -1376,10 +1413,6 @@
*endp = '\0';
cmd->path = ap_getword_conf(cmd->pool, &arg);
-#ifdef OS2
- /* Fix OS/2 HPFS filename case problem. */
- cmd->path = strlwr(cmd->path);
-#endif
cmd->override = OR_ALL|ACCESS_CONF;
if (thiscmd->cmd_data) { /* <DirectoryMatch> */
@@ -2116,15 +2149,25 @@
}
static const char *set_use_canonical_name(cmd_parms *cmd, core_dir_config
*d,
- int arg)
+ char *arg)
{
const char *err = ap_check_cmd_context(cmd, NOT_IN_LIMIT);
-
if (err != NULL) {
return err;
}
-
- d->use_canonical_name = arg != 0;
+
+ if (strcasecmp(arg, "on") == 0) {
+ d->use_canonical_name = USE_CANONICAL_NAME_ON;
+ }
+ else if (strcasecmp(arg, "off") == 0) {
+ d->use_canonical_name = USE_CANONICAL_NAME_OFF;
+ }
+ else if (strcasecmp(arg, "dns") == 0) {
+ d->use_canonical_name = USE_CANONICAL_NAME_DNS;
+ }
+ else {
+ return "parameter must be 'on', 'off', or 'dns'";
+ }
return NULL;
}
@@ -2802,9 +2845,8 @@
{ "ContentDigest", set_content_md5, NULL, OR_OPTIONS,
FLAG, "whether or not to send a Content-MD5 header with each request" },
{ "UseCanonicalName", set_use_canonical_name, NULL,
- OR_OPTIONS, FLAG,
- "Whether or not to always use the canonical ServerName : Port when "
- "constructing URLs" },
+ RSRC_CONF, TAKE1,
+ "How to work out the ServerName : Port when constructing URLs" },
{ "StartServers", set_daemons_to_start, NULL, RSRC_CONF, TAKE1,
"Number of child processes launched at server startup" },
{ "MinSpareServers", set_min_free_servers, NULL, RSRC_CONF, TAKE1,
@@ -2935,14 +2977,14 @@
static int do_nothing(request_rec *r) { return OK; }
#ifdef USE_MMAP_FILES
-struct mmap {
+struct mmap_rec {
void *mm;
size_t length;
};
static void mmap_cleanup(void *mmv)
{
- struct mmap *mmd = mmv;
+ struct mmap_rec *mmd = mmv;
if (munmap(mmd->mm, mmd->length) == -1) {
ap_log_error(APLOG_MARK, APLOG_ERR, NULL,
@@ -3099,7 +3141,7 @@
#ifdef USE_MMAP_FILES
}
else {
- struct mmap *mmd;
+ struct mmap_rec *mmd;
mmd = ap_palloc(r->pool, sizeof(*mmd));
mmd->mm = mm;
1.97 +34 -10 apache-apr/pthreads/src/main/http_main.c
Index: http_main.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/http_main.c,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -d -u -r1.96 -r1.97
--- http_main.c 1999/07/29 20:11:42 1.96
+++ http_main.c 1999/08/19 20:52:35 1.97
@@ -149,6 +149,8 @@
*/
int ap_standalone=0;
+int ap_configtestonly=0;
+int ap_docrootcheck=1;
uid_t ap_user_id=0;
char *ap_user_name=NULL;
gid_t ap_group_id=0;
@@ -373,12 +375,12 @@
pad[i] = ' ';
pad[i] = '\0';
#ifdef SHARED_CORE
- fprintf(stderr, "Usage: %s [-R directory] [-d directory] [-f file]\n",
bin);
+ fprintf(stderr, "Usage: %s [-R directory] [-D name] [-d directory] [-f
file]\n", bin);
#else
- fprintf(stderr, "Usage: %s [-d directory] [-f file]\n", bin);
+ fprintf(stderr, "Usage: %s [-D name] [-d directory] [-f file]\n", bin);
#endif
fprintf(stderr, " %s [-C \"directive\"] [-c \"directive\"]\n",
pad);
- fprintf(stderr, " %s [-v] [-V] [-h] [-l] [-L] [-S] [-t]\n", pad);
+ fprintf(stderr, " %s [-v] [-V] [-h] [-l] [-L] [-S] [-t] [-T]\n",
pad);
fprintf(stderr, "Options:\n");
#ifdef SHARED_CORE
fprintf(stderr, " -R directory : specify an alternate location for
shared object files\n");
@@ -394,7 +396,8 @@
fprintf(stderr, " -l : list compiled-in modules\n");
fprintf(stderr, " -L : list available configuration
directives\n");
fprintf(stderr, " -S : show parsed settings (currently
only vhost settings)\n");
- fprintf(stderr, " -t : run syntax test for configuration
files only\n");
+ fprintf(stderr, " -t : run syntax check for config files
(with docroot check)\n");
+ fprintf(stderr, " -T : run syntax check for config files
(without docroot check)\n");
#ifdef WIN32
fprintf(stderr, " -k shutdown : tell running Apache to
shutdown\n");
fprintf(stderr, " -k restart : tell running Apache to do a
graceful restart\n");
@@ -1138,6 +1141,8 @@
conn->pool = p;
conn->local_addr = *saddr;
+ conn->local_ip = ap_pstrdup(conn->pool,
+ inet_ntoa(conn->local_addr.sin_addr));
conn->server = server; /* just a guess for now */
ap_update_vhost_given_ip(conn);
conn->base_server = conn->server;
@@ -1211,7 +1216,9 @@
#endif
#ifndef WORKAROUND_SOLARIS_BUG
+#ifndef BEOS /* this won't work for BeOS sockets!! */
s = ap_slack(s, AP_SLACK_HIGH);
+#endif
ap_note_cleanups_for_socket(p, s); /* arrange to close on exec or
restart */
#endif
@@ -1278,6 +1285,7 @@
if (ntohs(server->sin_port) < 1024)
GETPRIVMODE();
#endif
+
if (bind(s, (struct sockaddr *) server, sizeof(struct sockaddr_in)) ==
-1) {
ap_log_error(APLOG_MARK, APLOG_CRIT, server_conf,
"make_sock: could not bind to %s", addr);
@@ -1522,7 +1530,7 @@
#ifdef SUEXEC_BIN
printf(" -D SUEXEC_BIN=\"" SUEXEC_BIN "\"\n");
#endif
-#ifdef SHARED_CORE_DIR
+#if defined(SHARED_CORE) && defined(SHARED_CORE_DIR)
printf(" -D SHARED_CORE_DIR=\"" SHARED_CORE_DIR "\"\n");
#endif
#ifdef DEFAULT_PIDLOG
@@ -1847,7 +1855,7 @@
if (!geteuid() && (setuid(ap_user_id) == -1)) {
ap_log_error(APLOG_MARK, APLOG_ALERT, server_conf,
- "setuid: unable to change uid");
+ "setuid: unable to change to uid: %d", ap_user_id);
clean_child_exit(APEXIT_CHILDFATAL);
}
@@ -2392,7 +2400,6 @@
int main(int argc, char **argv)
{
int c;
- int configtestonly = 0;
char *s;
MONCONTROL(0);
@@ -2411,7 +2418,7 @@
ap_setup_prelinked_modules();
- while ((c = getopt(argc, argv, "D:C:c:Xd:f:vVlLR:Sth"
+ while ((c = getopt(argc, argv, "D:C:c:Xd:f:vVlLR:StTh"
#ifdef DEBUG_STOP
"Z:"
#endif
@@ -2478,8 +2485,13 @@
ap_dump_settings = 1;
break;
case 't':
- configtestonly = 1;
+ ap_configtestonly = 1;
+ ap_docrootcheck = 1;
break;
+ case 'T':
+ ap_configtestonly = 1;
+ ap_docrootcheck = 0;
+ break;
case 'h':
usage(argv[0]);
case '?':
@@ -2494,7 +2506,7 @@
ap_suexec_enabled = init_suexec();
server_conf = ap_read_config(pconf, ptemp, ap_server_confname);
- if (configtestonly) {
+ if (ap_configtestonly) {
fprintf(stderr, "Syntax OK\n");
exit(0);
}
@@ -2512,6 +2524,18 @@
standalone_main(argc, argv);
exit(0);
}
+
+#ifndef SHARED_CORE_BOOTSTRAP
+/*
+ * Force ap_validate_password() into the image so that modules like
+ * mod_auth can use it even if they're dynamically loaded.
+ */
+void suck_in_ap_validate_password(void);
+void suck_in_ap_validate_password(void)
+{
+ ap_validate_password("a", "b");
+}
+#endif
/* force Expat to be linked into the server executable */
#if defined(USE_EXPAT) && !defined(SHARED_CORE_BOOTSTRAP)
1.20 +107 -33 apache-apr/pthreads/src/main/http_protocol.c
Index: http_protocol.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/http_protocol.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -u -r1.19 -r1.20
--- http_protocol.c 1999/07/19 00:59:33 1.19
+++ http_protocol.c 1999/08/19 20:52:36 1.20
@@ -759,10 +759,6 @@
for (x = r->uri; (x = strchr(x, '\\')) != NULL; )
*x = '/';
-#ifndef WIN32 /* for OS/2 only: */
- /* Fix OS/2 HPFS filename case problem. */
- ap_str_tolower(r->uri);
-#endif
}
#endif /* OS2 || WIN32 */
}
@@ -961,7 +957,6 @@
ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r,
"request failed: URI too long");
ap_send_error_response(r, 0);
- ap_rflush(r);
ap_log_transaction(r);
return r;
}
@@ -977,7 +972,6 @@
ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r,
"request failed: error reading the headers");
ap_send_error_response(r, 0);
- ap_rflush(r);
ap_log_transaction(r);
return r;
}
@@ -995,7 +989,6 @@
r->header_only = 0;
r->status = HTTP_BAD_REQUEST;
ap_send_error_response(r, 0);
- ap_rflush(r);
ap_log_transaction(r);
return r;
}
@@ -1028,7 +1021,6 @@
"client sent HTTP/1.1 request without hostname "
"(see RFC2068 section 9, and 14.23): %s", r->uri);
ap_send_error_response(r, 0);
- ap_rflush(r);
ap_log_transaction(r);
return r;
}
@@ -1049,7 +1041,6 @@
"client sent an unrecognized expectation value of "
"Expect: %s", expect);
ap_send_error_response(r, 0);
- ap_rflush(r);
(void) ap_discard_request_body(r);
ap_log_transaction(r);
return r;
@@ -1163,7 +1154,13 @@
return AUTH_REQUIRED;
}
- t = ap_uudecode(r->pool, auth_line);
+ /* CHARSET_EBCDIC Issue's here ?!? Compare with 32/9 instead
+ * as we are operating on an octed stream ?
+ */
+ while (*auth_line== ' ' || *auth_line== '\t')
+ auth_line++;
+
+ t = ap_pbase64decode(r->pool, auth_line);
/* Note that this allocation has to be made from r->connection->pool
* because it has the lifetime of the connection. The other allocations
* are temporary and can be tossed away any time.
@@ -1452,6 +1449,84 @@
&& strstr(ua, "MSIE 3")));
}
+/* This routine is called by ap_table_do and merges all instances of
+ * the passed field values into a single array that will be further
+ * processed by some later routine. Originally intended to help split
+ * and recombine multiple Vary fields, though it is generic to any field
+ * consisting of comma/space-separated tokens.
+ */
+static int uniq_field_values(void *d, const char *key, const char *val)
+{
+ array_header *values;
+ char *start;
+ char *e;
+ char **strpp;
+ int i;
+
+ values = (array_header *)d;
+
+ e = ap_pstrdup(values->pool, val);
+
+ do {
+ /* Find a non-empty fieldname */
+
+ while (*e == ',' || ap_isspace(*e)) {
+ ++e;
+ }
+ if (*e == '\0') {
+ break;
+ }
+ start = e;
+ while (*e != '\0' && *e != ',' && !ap_isspace(*e)) {
+ ++e;
+ }
+ if (*e != '\0') {
+ *e++ = '\0';
+ }
+
+ /* Now add it to values if it isn't already represented.
+ * Could be replaced by a ap_array_strcasecmp() if we had one.
+ */
+ for (i = 0, strpp = (char **) values->elts; i < values->nelts;
+ ++i, ++strpp) {
+ if (*strpp && strcasecmp(*strpp, start) == 0) {
+ break;
+ }
+ }
+ if (i == values->nelts) { /* if not found */
+ *(char **)ap_push_array(values) = start;
+ }
+ } while (*e != '\0');
+
+ return 1;
+}
+
+/*
+ * Since some clients choke violently on multiple Vary fields, or
+ * Vary fields with duplicate tokens, combine any multiples and remove
+ * any duplicates.
+ */
+static void fixup_vary(request_rec *r)
+{
+ array_header *varies;
+
+ varies = ap_make_array(r->pool, 5, sizeof(char *));
+
+ /* Extract all Vary fields from the headers_out, separate each into
+ * its comma-separated fieldname values, and then add them to varies
+ * if not already present in the array.
+ */
+ ap_table_do((int (*)(void *, const char *, const char
*))uniq_field_values,
+ (void *) varies, r->headers_out, "Vary", NULL);
+
+ /* If we found any, replace old Vary fields with unique-ified value */
+
+ if (varies->nelts > 0) {
+ ap_table_setn(r->headers_out, "Vary",
+ ap_array_pstrcat(r->pool, varies, ','));
+ }
+}
+
API_EXPORT(void) ap_send_http_header(request_rec *r)
{
int i;
@@ -1466,6 +1541,9 @@
r->sent_bodyct = 1;
return;
}
+ else {
+ fixup_vary(r);
+ }
/*
* Now that we are ready to send a response, we need to combine the two
@@ -1882,14 +1960,18 @@
if ((rv = ap_setup_client_block(r, REQUEST_CHUNKED_PASS)))
return rv;
- /* If we are discarding the request body, then we must already know
- * the final status code, therefore disable the sending of 100 continue.
+ /* In order to avoid sending 100 Continue when we already know the
+ * final response status, and yet not kill the connection if there is
+ * no request body to be read, we need to duplicate the test from
+ * ap_should_client_block() here negated rather than call it directly.
*/
- r->expecting_100 = 0;
-
- if (ap_should_client_block(r)) {
+ if ((r->read_length == 0) && (r->read_chunked || (r->remaining > 0))) {
char dumpbuf[HUGE_STRING_LEN];
+ if (r->expecting_100) {
+ r->connection->keepalive = -1;
+ return OK;
+ }
while ((rv = ap_get_client_block(r, dumpbuf, HUGE_STRING_LEN)) > 0)
continue;
@@ -2354,24 +2436,13 @@
ap_clear_table(r->err_headers_out);
if (ap_is_HTTP_REDIRECT(status) || (status == HTTP_CREATED)) {
- if ((location != NULL) && *location) {
- ap_table_setn(r->headers_out, "Location", location);
- }
- else {
- /*
- * We're supposed to tell the client to go somewhere,
- * but the destination was omitted. Turn this into
- * a 500 status with an explanatory note in the error log.
- */
- ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r,
- "resource created or redirection requested "
- "(status=%03d) but no Location field set "
- "(URI=%s)",
- r->status, r->unparsed_uri);
- r->status = status = HTTP_INTERNAL_SERVER_ERROR;
- r->status_line = NULL;
- }
- }
+ if ((location != NULL) && *location) {
+ ap_table_setn(r->headers_out, "Location", location);
+ }
+ else {
+ location = ""; /* avoids coredump when printing, below */
+ }
+ }
r->content_language = NULL;
r->content_languages = NULL;
@@ -2386,6 +2457,7 @@
if (r->header_only) {
ap_finalize_request_protocol(r);
+ ap_rflush(r);
return;
}
}
@@ -2406,6 +2478,7 @@
if (custom_response[0] == '\"') {
ap_rputs(custom_response + 1, r);
ap_finalize_request_protocol(r);
+ ap_rflush(r);
return;
}
/*
@@ -2668,4 +2741,5 @@
ap_rputs("</BODY></HTML>\n", r);
}
ap_finalize_request_protocol(r);
+ ap_rflush(r);
}
1.3 +12 -2 apache-apr/pthreads/src/main/rfc1413.c
Index: rfc1413.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/rfc1413.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- rfc1413.c 1999/02/07 06:29:32 1.2
+++ rfc1413.c 1999/08/19 20:52:37 1.3
@@ -147,6 +147,9 @@
ntohs(our_sin->sin_port));
/* send query to server. Handle short write. */
+#ifdef CHARSET_EBCDIC
+ ebcdic2ascii(&buffer, &buffer, buflen);
+#endif
i = 0;
while(i < strlen(buffer)) {
int j;
@@ -168,8 +171,12 @@
*/
i = 0;
- memset(buffer, 0, sizeof(buffer));
- while((cp = strchr(buffer, '\n')) == NULL && i < sizeof(buffer) - 1) {
+ memset(buffer, '\0', sizeof(buffer));
+ /*
+ * Note that the strchr function below checks for 10 instead of '\n'
+ * this allows it to work on both ASCII and EBCDIC machines.
+ */
+ while((cp = strchr(buffer, '\012')) == NULL && i < sizeof(buffer) - 1) {
int j;
j = read(sock, buffer+i, (sizeof(buffer) - 1) - i);
if (j < 0 && errno != EINTR) {
@@ -183,6 +190,9 @@
}
/* RFC1413_USERLEN = 512 */
+#ifdef CHARSET_EBCDIC
+ ascii2ebcdic(&buffer, &buffer, (size_t)i);
+#endif
if (sscanf(buffer, "%u , %u : USERID :%*[^:]:%512s", &rmt_port,
&our_port,
user) != 3 || ntohs(rmt_sin->sin_port) != rmt_port
|| ntohs(our_sin->sin_port) != our_port)
1.6 +59 -154 apache-apr/pthreads/src/main/util.c
Index: util.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/util.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -u -r1.5 -r1.6
--- util.c 1999/06/10 06:26:10 1.5
+++ util.c 1999/08/19 20:52:38 1.6
@@ -130,12 +130,15 @@
const char *semi;
semi = strchr(intype, ';');
- if (semi != NULL) {
+ if (semi == NULL) {
+ return ap_pstrdup(p, intype);
+ }
+ else {
while ((semi > intype) && ap_isspace(semi[-1])) {
semi--;
}
+ return ap_pstrndup(p, intype, semi - intype);
}
- return ap_pstrndup(p, intype, semi - intype);
}
API_EXPORT(char *) ap_ht_time(pool *p, time_t t, const char *fmt, int gmt)
@@ -1794,7 +1797,7 @@
#ifdef NEED_INITGROUPS
int initgroups(const char *name, gid_t basegid)
{
-#if defined(QNX) || defined(MPE) || defined(BEOS) || defined(_OSD_POSIX) ||
defined(TPF)
+#if defined(QNX) || defined(MPE) || defined(BEOS) || defined(_OSD_POSIX) ||
defined(TPF) || defined(__TANDEM)
/* QNX, MPE and BeOS do not appear to support supplementary groups. */
return 0;
#else /* ndef QNX */
@@ -2002,168 +2005,44 @@
return server_hostname;
}
-
-/* aaaack but it's fast and const should make it shared text page. */
-static const unsigned char pr2six[256] =
-{
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 62, 64, 64, 64, 63, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 64, 64, 64, 64, 64, 64, 64, 0, 1, 2, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 64, 64, 64, 64, 64, 64, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64
-};
-API_EXPORT(char *) ap_uudecode(pool *p, const char *bufcoded)
+/* simple 'pool' alloc()ing glue to ap_base64.c
+ */
+API_EXPORT(char *) ap_pbase64decode(pool *p, const char *bufcoded)
{
- int nbytesdecoded;
- register const unsigned char *bufin;
- register char *bufplain;
- register unsigned char *bufout;
- register int nprbytes;
-
- /* Strip leading whitespace. */
-
- while (*bufcoded == ' ' || *bufcoded == '\t')
- bufcoded++;
-
- /* Figure out how many characters are in the input buffer.
- * Allocate this many from the per-transaction pool for the result.
- */
-#ifndef CHARSET_EBCDIC
- bufin = (const unsigned char *) bufcoded;
- while (pr2six[*(bufin++)] <= 63);
- nprbytes = (bufin - (const unsigned char *) bufcoded) - 1;
- nbytesdecoded = ((nprbytes + 3) / 4) * 3;
-
- bufplain = ap_palloc(p, nbytesdecoded + 1);
- bufout = (unsigned char *) bufplain;
-
- bufin = (const unsigned char *) bufcoded;
-
- while (nprbytes > 4) {
- *(bufout++) =
- (unsigned char) (pr2six[*bufin] << 2 | pr2six[bufin[1]] >> 4);
- *(bufout++) =
- (unsigned char) (pr2six[bufin[1]] << 4 | pr2six[bufin[2]] >> 2);
- *(bufout++) =
- (unsigned char) (pr2six[bufin[2]] << 6 | pr2six[bufin[3]]);
- bufin += 4;
- nprbytes -= 4;
- }
-
- /* Note: (nprbytes == 1) would be an error, so just ingore that case */
- if (nprbytes > 1) {
- *(bufout++) =
- (unsigned char) (pr2six[*bufin] << 2 | pr2six[bufin[1]] >> 4);
- }
- if (nprbytes > 2) {
- *(bufout++) =
- (unsigned char) (pr2six[bufin[1]] << 4 | pr2six[bufin[2]] >> 2);
- }
- if (nprbytes > 3) {
- *(bufout++) =
- (unsigned char) (pr2six[bufin[2]] << 6 | pr2six[bufin[3]]);
- }
-#else /*CHARSET_EBCDIC*/
- bufin = (const unsigned char *) bufcoded;
- while (pr2six[os_toascii[(unsigned char)*(bufin++)]] <= 63);
- nprbytes = (bufin - (const unsigned char *) bufcoded) - 1;
- nbytesdecoded = ((nprbytes + 3) / 4) * 3;
+ char *decoded;
+ int l;
- bufplain = ap_palloc(p, nbytesdecoded + 1);
- bufout = (unsigned char *) bufplain;
+ decoded = (char *) ap_palloc(p, 1 + ap_base64decode_len(bufcoded));
+ l = ap_base64decode(decoded, bufcoded);
+ decoded[l] = '\0'; /* make binary sequence into string */
- bufin = (const unsigned char *) bufcoded;
+ return decoded;
+}
- while (nprbytes > 4) {
- *(bufout++) = os_toebcdic[
- (unsigned char) (pr2six[os_toascii[*bufin]] << 2 |
pr2six[os_toascii[bufin[1]]] >> 4)];
- *(bufout++) = os_toebcdic[
- (unsigned char) (pr2six[os_toascii[bufin[1]]] << 4 |
pr2six[os_toascii[bufin[2]]] >> 2)];
- *(bufout++) = os_toebcdic[
- (unsigned char) (pr2six[os_toascii[bufin[2]]] << 6 |
pr2six[os_toascii[bufin[3]]])];
- bufin += 4;
- nprbytes -= 4;
- }
+API_EXPORT(char *) ap_pbase64encode(pool *p, char *string)
+{
+ char *encoded;
+ int l = strlen(string);
- /* Note: (nprbytes == 1) would be an error, so just ingore that case */
- if (nprbytes > 1) {
- *(bufout++) = os_toebcdic[
- (unsigned char) (pr2six[os_toascii[*bufin]] << 2 |
pr2six[os_toascii[bufin[1]]] >> 4)];
- }
- if (nprbytes > 2) {
- *(bufout++) = os_toebcdic[
- (unsigned char) (pr2six[os_toascii[bufin[1]]] << 4 |
pr2six[os_toascii[bufin[2]]] >> 2)];
- }
- if (nprbytes > 3) {
- *(bufout++) = os_toebcdic[
- (unsigned char) (pr2six[os_toascii[bufin[2]]] << 6 |
pr2six[os_toascii[bufin[3]]])];
- }
-#endif /*CHARSET_EBCDIC*/
+ encoded = (char *) ap_palloc(p, 1 + ap_base64encode_len(l));
+ l = ap_base64encode(encoded, string, l);
+ encoded[l] = '\0'; /* make binary sequence into string */
- nbytesdecoded -= (4 - nprbytes) & 3;
- bufplain[nbytesdecoded] = '\0';
+ return encoded;
+}
- return bufplain;
+/* deprecated names for the above two functions, here for compatibility
+ */
+API_EXPORT(char *) ap_uudecode(pool *p, const char *bufcoded)
+{
+ return ap_pbase64decode(p, bufcoded);
}
-static const char basis_64[] =
-"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-API_EXPORT(char *) ap_uuencode(pool *a, char *string)
+API_EXPORT(char *) ap_uuencode(pool *p, char *string)
{
- int i, len = strlen(string);
- char *p;
- char *encoded = (char *) ap_palloc(a, ((len+2) / 3 * 4) + 1);
-
- p = encoded;
-#ifndef CHARSET_EBCDIC
- for (i = 0; i < len-2; i += 3) {
- *p++ = basis_64[(string[i] >> 2) & 0x3F];
- *p++ = basis_64[((string[i] & 0x3) << 4) | ((int) (string[i + 1] &
0xF0) >> 4)];
- *p++ = basis_64[((string[i + 1] & 0xF) << 2) | ((int) (string[i + 2]
& 0xC0) >> 6)];
- *p++ = basis_64[string[i + 2] & 0x3F];
- }
- if (i < len) {
- *p++ = basis_64[(string[i] >> 2) & 0x3F];
- *p++ = basis_64[((string[i] & 0x3) << 4) | ((int) (string[i + 1] &
0xF0) >> 4)];
- if (i == (len-2))
- *p++ = basis_64[((string[i + 1] & 0xF) << 2)];
- else
- *p++ = '=';
- *p++ = '=';
- }
-#else /*CHARSET_EBCDIC*/
- for (i = 0; i < len-2; i += 3) {
- *p++ = basis_64[(os_toascii[string[i]] >> 2) & 0x3F];
- *p++ = basis_64[((os_toascii[string[i]] & 0x3) << 4) | ((int)
(os_toascii[string[i + 1]] & 0xF0) >> 4)];
- *p++ = basis_64[((os_toascii[string[i + 1]] & 0xF) << 2) | ((int)
(os_toascii[string[i + 2]] & 0xC0) >> 6)];
- *p++ = basis_64[os_toascii[string[i + 2]] & 0x3F];
- }
- if (i < len) {
- *p++ = basis_64[(os_toascii[string[i]] >> 2) & 0x3F];
- *p++ = basis_64[((os_toascii[string[i]] & 0x3) << 4) | ((int)
(os_toascii[string[i + 1]] & 0xF0) >> 4)];
- if (i == (len-2))
- *p++ = basis_64[((os_toascii[string[i + 1]] & 0xF) << 2)];
- else
- *p++ = '=';
- *p++ = '=';
- }
-#endif /*CHARSET_EBCDIC*/
-
- *p = '\0';
- return encoded;
-}
+ return ap_pbase64encode(p, string);
+}
#ifdef OS2
void os2pathname(char *path)
@@ -2190,6 +2069,32 @@
strcpy(path, newpath);
};
+
+/* quotes in the string are doubled up.
+ * Used to escape quotes in args passed to OS/2's cmd.exe
+ */
+char *ap_double_quotes(pool *p, char *str)
+{
+ int num_quotes = 0;
+ int len = 0;
+ char *quote_doubled_str, *dest;
+
+ while (str[len]) {
+ num_quotes += str[len++] == '\"';
+ }
+
+ quote_doubled_str = ap_palloc(p, len + num_quotes + 1);
+ dest = quote_doubled_str;
+
+ while (*str) {
+ if (*str == '\"')
+ *(dest++) = '\"';
+ *(dest++) = *(str++);
+ }
+
+ *dest = 0;
+ return quote_doubled_str;
+}
#endif
1.8 +130 -65 apache-apr/pthreads/src/main/util_script.c
Index: util_script.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/util_script.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -u -r1.7 -r1.8
--- util_script.c 1999/06/10 06:26:11 1.7
+++ util_script.c 1999/08/19 20:52:39 1.8
@@ -67,6 +67,11 @@
#include "util_script.h"
#include "util_date.h" /* For parseHTTPdate() */
+#ifdef OS2
+#define INCL_DOS
+#include <os2.h>
+#endif
+
/*
* Various utility functions which are common to a whole lot of
* script-type extensions mechanisms, and might as well be gathered
@@ -265,6 +270,7 @@
ap_table_addn(e, "SERVER_SIGNATURE", ap_psignature("", r));
ap_table_addn(e, "SERVER_SOFTWARE", ap_get_server_version());
ap_table_addn(e, "SERVER_NAME", ap_get_server_name(r));
+ ap_table_addn(e, "SERVER_ADDR", r->connection->local_ip); /*
Apache */
ap_table_addn(e, "SERVER_PORT",
ap_psprintf(r->pool, "%u", ap_get_server_port(r)));
host = ap_get_remote_host(c, r->per_dir_config, REMOTE_HOST);
@@ -747,54 +753,126 @@
#ifdef OS2
{
/* Additions by Alec Kloss, to allow exec'ing of scripts under OS/2 */
- int is_script;
+ int is_script = 0;
char interpreter[2048]; /* hope it's enough for the interpreter path */
+ char error_object[260];
FILE *program;
+ char *cmdline = r->filename, *cmdline_pos;
+ int cmdlen;
+ char *args = "", *args_end;
+ ULONG rc;
+ RESULTCODES rescodes;
+ int env_len, e;
+ char *env_block, *env_block_pos;
+ if (r->args && r->args[0] && !strchr(r->args, '='))
+ args = r->args;
+
program = fopen(r->filename, "rt");
+
if (!program) {
ap_log_rerror(APLOG_MARK, APLOG_ERR, r, "fopen(%s) failed",
r->filename);
return (pid);
}
+
fgets(interpreter, sizeof(interpreter), program);
fclose(program);
+
if (!strncmp(interpreter, "#!", 2)) {
is_script = 1;
- interpreter[strlen(interpreter) - 1] = '\0';
+ interpreter[strlen(interpreter) - 1] = '\0';
+ if (interpreter[2] != '/' && interpreter[2] != '\\' &&
interpreter[3] != ':') {
+ char buffer[300];
+ if (DosSearchPath(SEARCH_ENVIRONMENT, "PATH", interpreter+2,
buffer, sizeof(buffer)) == 0) {
+ strcpy(interpreter+2, buffer);
+ } else {
+ strcat(interpreter, ".exe");
+ if (DosSearchPath(SEARCH_ENVIRONMENT, "PATH",
interpreter+2, buffer, sizeof(buffer)) == 0) {
+ strcpy(interpreter+2, buffer);
+ }
+ }
+ }
}
- else {
- is_script = 0;
+
+ if (is_script) {
+ cmdline = ap_pstrcat(r->pool, interpreter+2, " ", r->filename,
NULL);
+ }
+ else if (strstr(strupr(r->filename), ".CMD") > 0) {
+ /* Special case to allow use of REXX commands as scripts. */
+ os2pathname(r->filename);
+ cmdline = ap_pstrcat(r->pool, SHELL_PATH, " /C ", r->filename,
NULL);
+ }
+ else {
+ cmdline = r->filename;
}
+
+ args = ap_pstrdup(r->pool, args);
+ ap_unescape_url(args);
+ args = ap_double_quotes(r->pool, args);
+ args_end = args + strlen(args);
- if ((!r->args) || (!r->args[0]) || strchr(r->args, '=')) {
- /* More additions by Alec Kloss for OS/2 */
- if (is_script) {
- /* here's the stuff to run the interpreter */
- pid = spawnle(P_NOWAIT, interpreter + 2, interpreter + 2,
r->filename, NULL, env);
- }
- else if (strstr(strupr(r->filename), ".CMD") > 0) {
- /* Special case to allow use of REXX commands as scripts. */
- os2pathname(r->filename);
- pid = spawnle(P_NOWAIT, SHELL_PATH, SHELL_PATH, "/C",
r->filename, NULL, env);
- }
- else {
- pid = spawnle(P_NOWAIT, r->filename, argv0, NULL, env);
- }
+ if (args_end - args > 4000) { /* cmd.exe won't handle lines longer
than 4k */
+ args_end = args + 4000;
+ *args_end = 0;
+ }
+
+ /* +4 = 1 space between progname and args, 2 for double null at end,
2 for possible quote on first arg */
+ cmdlen = strlen(cmdline) + strlen(args) + 4;
+ cmdline_pos = cmdline;
+
+ while (*cmdline_pos) {
+ cmdlen += 2 * (*cmdline_pos == '+'); /* Allow space for each
arg to be quoted */
+ cmdline_pos++;
+ }
+
+ cmdline = ap_pstrndup(r->pool, cmdline, cmdlen);
+ cmdline_pos = cmdline + strlen(cmdline);
+
+ while (args < args_end) {
+ char *arg;
+
+ arg = ap_getword_nc(r->pool, &args, '+');
+
+ if (strpbrk(arg, "&|<> "))
+ arg = ap_pstrcat(r->pool, "\"", arg, "\"", NULL);
+
+ *(cmdline_pos++) = ' ';
+ strcpy(cmdline_pos, arg);
+ cmdline_pos += strlen(cmdline_pos);
+ }
+
+ *(++cmdline_pos) = 0; /* Add required second terminator */
+ args = strchr(cmdline, ' ');
+
+ if (args) {
+ *args = 0;
+ args++;
}
- else {
- if (strstr(strupr(r->filename), ".CMD") > 0) {
- /* Special case to allow use of REXX commands as scripts. */
- os2pathname(r->filename);
- pid = spawnve(P_NOWAIT, SHELL_PATH, create_argv_cmd(r->pool,
argv0, r->args,
- r->filename), env);
- }
- else {
- pid = spawnve(P_NOWAIT, r->filename,
- create_argv(r->pool, NULL, NULL, NULL, argv0, r->args),
env);
- }
+
+ /* Create environment block from list of envariables */
+ for (env_len=1, e=0; env[e]; e++)
+ env_len += strlen(env[e]) + 1;
+
+ env_block = ap_palloc(r->pool, env_len);
+ env_block_pos = env_block;
+
+ for (e=0; env[e]; e++) {
+ strcpy(env_block_pos, env[e]);
+ env_block_pos += strlen(env_block_pos) + 1;
+ }
+
+ *env_block_pos = 0; /* environment block is terminated by a double
null */
+
+ rc = DosExecPgm(error_object, sizeof(error_object), EXEC_ASYNC,
cmdline, env_block, &rescodes, cmdline);
+
+ if (rc) {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, r, "DosExecPgm(%s %s)
failed, %s - %s",
+ cmdline, args ? args : "",
ap_os_error_message(rc), error_object );
+ return -1;
}
- return (pid);
+
+ return rescodes.codeTerminate;
}
#elif defined(WIN32)
{
@@ -822,34 +900,10 @@
pid = -1;
if (!shellcmd) {
- /* Find the file name */
- exename = strrchr(r->filename, '/');
- if (!exename) {
- exename = strrchr(r->filename, '\\');
- }
- if (!exename) {
- exename = r->filename;
- }
- else {
- exename++;
- }
- ext = strrchr(exename, '.');
- if ((ext) && (!strcasecmp(ext,".bat") ||
- !strcasecmp(ext,".cmd"))) {
- fileType = FileTypeEXE;
- }
- else if ((ext) && (!strcasecmp(ext,".exe") ||
- !strcasecmp(ext,".com"))) {
- /* 16 bit or 32 bit? */
- fileType = FileTypeEXE;
- }
- else {
- /* Maybe a script or maybe a binary.. */
- fileType = ap_get_win32_interpreter(r, ext, &interpreter);
- }
+ fileType = ap_get_win32_interpreter(r, &interpreter);
- if (fileType == FileTypeUNKNOWN) {
+ if (fileType == eFileTypeUNKNOWN) {
ap_log_rerror(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, r,
"%s is not executable; ensure interpreted
scripts have "
"\"#!\" first line",
@@ -963,16 +1017,27 @@
i++;
}
- if (CreateProcess(NULL, pCommand, NULL, NULL, TRUE, 0, pEnvBlock,
+ if (CreateProcess(NULL, pCommand, NULL, NULL, TRUE,
DETACHED_PROCESS, pEnvBlock,
ap_make_dirstr_parent(r->pool, r->filename),
&si, &pi)) {
- pid = pi.dwProcessId;
- /*
- * We must close the handles to the new process and its main
thread
- * to prevent handle and memory leaks.
- */
- CloseHandle(pi.hProcess);
- CloseHandle(pi.hThread);
+ if (fileType == eFileTypeEXE16) {
+ /* Hack to get 16-bit CGI's working. It works for all the
+ * standard modules shipped with Apache. pi.dwProcessId is 0
+ * for 16-bit CGIs and all the Unix specific code that calls
+ * ap_call_exec interprets this as a failure case. And we
can't
+ * use -1 either because it is mapped to 0 by the caller.
+ */
+ pid = -2;
+ }
+ else {
+ pid = pi.dwProcessId;
+ /*
+ * We must close the handles to the new process and its main
thread
+ * to prevent handle and memory leaks.
+ */
+ CloseHandle(pi.hProcess);
+ CloseHandle(pi.hThread);
+ }
}
return (pid);
}
1.4 +15 -8 apache-apr/pthreads/src/main/util_uri.c
Index: util_uri.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/main/util_uri.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- util_uri.c 1999/06/10 06:26:11 1.3
+++ util_uri.c 1999/08/19 20:52:39 1.4
@@ -186,11 +186,18 @@
/* Construct scheme://site string */
if (uptr->hostname) {
+ int is_default_port;
+
+ is_default_port =
+ (uptr->port_str == NULL ||
+ uptr->port == 0 ||
+ uptr->port == ap_default_port_for_scheme(uptr->scheme));
+
ret = ap_pstrcat (p,
uptr->scheme, "://", ret,
uptr->hostname ? uptr->hostname : "",
- uptr->port_str ? ":" : "",
- uptr->port_str ? uptr->port_str : "",
+ is_default_port ? "" : ":",
+ is_default_port ? "" : uptr->port_str,
NULL);
}
}
@@ -266,8 +273,8 @@
/* This is a sub-RE which will break down the hostinfo part,
* i.e., user, password, hostname and port.
* $ 12 3 4 5 6 7 */
- re_str = "^(([^:]*)(:(.*))?@)?([^@:]*)(:(.*))?$";
- /* ^^user^ :pw ^host^ port */
+ re_str = "^(([^:]*)(:(.*))?@)?([^@:]*)(:([0-9]*))?$";
+ /* ^^user^ :pw ^host^ ^:[port]^ */
if ((ret = regcomp(&re_hostpart, re_str, REG_EXTENDED)) != 0) {
char line[1024];
@@ -345,9 +352,9 @@
return HTTP_BAD_REQUEST;
}
- /* $ 12 3 4 5 6 7 */
- /* = "^(([^:]*)(:(.*))?@)?([^@:]*)(:(.*))?$" */
- /* ^^user^ :pw ^host^ port */
+ /* $ 12 3 4 5 6 7 */
+ /* "^(([^:]*)(:(.*))?@)?([^@:]*)(:([0-9]*))?$" */
+ /* ^^user^ :pw ^host^ ^:[port]^ */
/* empty user is valid, that's why we test $1 but use $2 */
if (match[1].rm_so != match[1].rm_eo)
@@ -371,7 +378,7 @@
port = strtol(uptr->port_str, &endstr, 10);
uptr->port = port;
- if (*endstr != '\0' || uptr->port != port) {
+ if (*endstr != '\0') {
/* Invalid characters after ':' found */
return HTTP_BAD_REQUEST;
}
1.2 +9 -0
apache-apr/pthreads/src/modules/experimental/Makefile.tmpl
Index: Makefile.tmpl
===================================================================
RCS file:
/home/cvs/apache-apr/pthreads/src/modules/experimental/Makefile.tmpl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- Makefile.tmpl 1999/01/21 23:08:35 1.1
+++ Makefile.tmpl 1999/08/19 20:52:54 1.2
@@ -12,3 +12,12 @@
$(INCDIR)/util_uri.h $(INCDIR)/http_config.h \
$(INCDIR)/http_log.h $(INCDIR)/http_protocol.h \
$(INCDIR)/http_request.h $(INCDIR)/http_core.h
+mod_digest.o: mod_digest.c $(INCDIR)/httpd.h \
+ $(INCDIR)/ap_config.h $(INCDIR)/ap_mmn.h \
+ $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h \
+ $(INCDIR)/ap_ctype.h $(INCDIR)/hsregex.h \
+ $(INCDIR)/alloc.h $(INCDIR)/buff.h $(INCDIR)/ap.h \
+ $(INCDIR)/util_uri.h $(INCDIR)/http_config.h \
+ $(INCDIR)/http_core.h $(INCDIR)/http_log.h \
+ $(INCDIR)/http_protocol.h $(INCDIR)/util_md5.h \
+ $(INCDIR)/ap_md5.h
1.2 +4 -4
apache-apr/pthreads/src/modules/proxy/ApacheModuleProxy.dsp
Index: ApacheModuleProxy.dsp
===================================================================
RCS file:
/home/cvs/apache-apr/pthreads/src/modules/proxy/ApacheModuleProxy.dsp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- ApacheModuleProxy.dsp 1999/01/21 23:08:35 1.1
+++ ApacheModuleProxy.dsp 1999/08/19 20:52:56 1.2
@@ -45,7 +45,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS"
/YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /D "NDEBUG" /D "WIN32"
/D "_WINDOWS" /D "SHARED_MODULE" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /D "NDEBUG" /D "WIN32"
/D "_WINDOWS" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
@@ -55,7 +55,7 @@
# 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 /subsystem:windows /dll /machine:I386
-# ADD LINK32 ..\..\CoreR\ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib wsock32.lib /nologo
/subsystem:windows /dll /machine:I386
+# ADD LINK32 ..\..\CoreR\ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib /nologo
/subsystem:windows /dll /machine:I386
!ELSEIF "$(CFG)" == "ApacheModuleProxy - Win32 Debug"
@@ -71,7 +71,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D
"_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "_DEBUG" /D
"WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "_DEBUG" /D
"WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN" /YX /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
@@ -81,7 +81,7 @@
# 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 /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 ..\..\CoreD\ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib wsock32.lib /nologo
/subsystem:windows /dll /debug /machine:I386
+# ADD LINK32 ..\..\CoreD\ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib /nologo
/subsystem:windows /dll /debug /machine:I386
!ENDIF
1.2 +55 -68
apache-apr/pthreads/src/modules/proxy/ApacheModuleProxy.mak
Index: ApacheModuleProxy.mak
===================================================================
RCS file:
/home/cvs/apache-apr/pthreads/src/modules/proxy/ApacheModuleProxy.mak,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- ApacheModuleProxy.mak 1999/01/21 23:08:35 1.1
+++ ApacheModuleProxy.mak 1999/08/19 20:52:57 1.2
@@ -30,6 +30,10 @@
NULL=nul
!ENDIF
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
!IF "$(CFG)" == "ApacheModuleProxy - Win32 Release"
OUTDIR=.\Release
@@ -63,53 +67,20 @@
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-CPP=cl.exe
CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\..\include" /D "NDEBUG" /D "WIN32"
/D\
- "_WINDOWS" /D "SHARED_MODULE" /Fp"$(INTDIR)\ApacheModuleProxy.pch" /YX\
- /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+ "_WINDOWS" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN"\
+ /Fp"$(INTDIR)\ApacheModuleProxy.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\"
/FD\
+ /c
CPP_OBJS=.\Release/
CPP_SBRS=.
-
-.c{$(CPP_OBJS)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(CPP_OBJS)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(CPP_OBJS)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(CPP_SBRS)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(CPP_SBRS)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(CPP_SBRS)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-MTL=midl.exe
MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\ApacheModuleProxy.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=..\..\CoreR\ApacheCore.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib wsock32.lib /nologo\
+ winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib /nologo\
/subsystem:windows /dll /incremental:no
/pdb:"$(OUTDIR)\ApacheModuleProxy.pdb"\
/machine:I386 /out:"$(OUTDIR)\ApacheModuleProxy.dll"\
/implib:"$(OUTDIR)\ApacheModuleProxy.lib"
@@ -162,13 +133,38 @@
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-CPP=cl.exe
CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "_DEBUG" /D\
- "WIN32" /D "_WINDOWS" /D "SHARED_MODULE"
/Fp"$(INTDIR)\ApacheModuleProxy.pch"\
- /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+ "WIN32" /D "_WINDOWS" /D "SHARED_MODULE" /D "WIN32_LEAN_AND_MEAN"\
+ /Fp"$(INTDIR)\ApacheModuleProxy.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\"
/FD\
+ /c
CPP_OBJS=.\Debug/
CPP_SBRS=.
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\ApacheModuleProxy.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=..\..\CoreD\ApacheCore.lib kernel32.lib user32.lib gdi32.lib\
+ winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib /nologo\
+ /subsystem:windows /dll /incremental:yes
/pdb:"$(OUTDIR)\ApacheModuleProxy.pdb"\
+ /debug /machine:I386 /out:"$(OUTDIR)\ApacheModuleProxy.dll"\
+ /implib:"$(OUTDIR)\ApacheModuleProxy.lib"
+LINK32_OBJS= \
+ "$(INTDIR)\mod_proxy.obj" \
+ "$(INTDIR)\proxy_cache.obj" \
+ "$(INTDIR)\proxy_connect.obj" \
+ "$(INTDIR)\proxy_ftp.obj" \
+ "$(INTDIR)\proxy_http.obj" \
+ "$(INTDIR)\proxy_util.obj"
+
+"$(OUTDIR)\ApacheModuleProxy.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+!ENDIF
+
.c{$(CPP_OBJS)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
@@ -199,35 +195,7 @@
$(CPP_PROJ) $<
<<
-MTL=midl.exe
-MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\ApacheModuleProxy.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=..\..\CoreD\ApacheCore.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib wsock32.lib /nologo\
- /subsystem:windows /dll /incremental:yes
/pdb:"$(OUTDIR)\ApacheModuleProxy.pdb"\
- /debug /machine:I386 /out:"$(OUTDIR)\ApacheModuleProxy.dll"\
- /implib:"$(OUTDIR)\ApacheModuleProxy.lib"
-LINK32_OBJS= \
- "$(INTDIR)\mod_proxy.obj" \
- "$(INTDIR)\proxy_cache.obj" \
- "$(INTDIR)\proxy_connect.obj" \
- "$(INTDIR)\proxy_ftp.obj" \
- "$(INTDIR)\proxy_http.obj" \
- "$(INTDIR)\proxy_util.obj"
-
-"$(OUTDIR)\ApacheModuleProxy.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
-!ENDIF
-
-
!IF "$(CFG)" == "ApacheModuleProxy - Win32 Release" || "$(CFG)" ==\
"ApacheModuleProxy - Win32 Debug"
SOURCE=.\mod_proxy.c
@@ -239,6 +207,7 @@
"..\..\include\ap.h"\
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
@@ -264,12 +233,14 @@
"..\..\include\ap.h"\
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
"..\..\include\http_config.h"\
"..\..\include\http_log.h"\
"..\..\include\http_protocol.h"\
+ "..\..\include\http_request.h"\
"..\..\include\http_vhost.h"\
"..\..\include\httpd.h"\
"..\..\include\util_uri.h"\
@@ -293,9 +264,11 @@
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
"..\..\include\ap_md5.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
+ "..\..\include\http_conf_globals.h"\
"..\..\include\http_config.h"\
"..\..\include\http_log.h"\
"..\..\include\http_main.h"\
@@ -320,9 +293,11 @@
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
"..\..\include\ap_md5.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
+ "..\..\include\http_conf_globals.h"\
"..\..\include\http_config.h"\
"..\..\include\http_log.h"\
"..\..\include\http_main.h"\
@@ -350,6 +325,7 @@
"..\..\include\ap.h"\
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
@@ -374,6 +350,7 @@
"..\..\include\ap.h"\
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
@@ -402,10 +379,12 @@
"..\..\include\ap.h"\
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
"..\..\include\http_config.h"\
+ "..\..\include\http_core.h"\
"..\..\include\http_log.h"\
"..\..\include\http_main.h"\
"..\..\include\http_protocol.h"\
@@ -426,10 +405,12 @@
"..\..\include\ap.h"\
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
"..\..\include\http_config.h"\
+ "..\..\include\http_core.h"\
"..\..\include\http_log.h"\
"..\..\include\http_main.h"\
"..\..\include\http_protocol.h"\
@@ -454,6 +435,7 @@
"..\..\include\ap.h"\
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
@@ -480,6 +462,7 @@
"..\..\include\ap.h"\
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
@@ -511,6 +494,7 @@
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
"..\..\include\ap_md5.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
@@ -520,6 +504,7 @@
"..\..\include\http_protocol.h"\
"..\..\include\httpd.h"\
"..\..\include\multithread.h"\
+ "..\..\include\util_date.h"\
"..\..\include\util_uri.h"\
"..\..\os\win32\os.h"\
"..\..\os\win32\readdir.h"\
@@ -537,6 +522,7 @@
"..\..\include\ap_config.h"\
"..\..\include\ap_ctype.h"\
"..\..\include\ap_md5.h"\
+ "..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
"..\..\include\explain.h"\
"..\..\include\hsregex.h"\
@@ -546,6 +532,7 @@
"..\..\include\http_protocol.h"\
"..\..\include\httpd.h"\
"..\..\include\multithread.h"\
+ "..\..\include\util_date.h"\
"..\..\include\util_uri.h"\
"..\..\os\win32\os.h"\
"..\..\os\win32\readdir.h"\
1.11 +2 -0 apache-apr/pthreads/src/modules/proxy/proxy_cache.c
Index: proxy_cache.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/proxy/proxy_cache.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -u -r1.10 -r1.11
--- proxy_cache.c 1999/06/10 06:26:22 1.10
+++ proxy_cache.c 1999/08/19 20:52:57 1.11
@@ -1129,6 +1129,8 @@
*p = '\0';
#ifdef WIN32
if (mkdir(c->filename) < 0 && errno != EEXIST)
+#elif defined(__TANDEM)
+ if (mkdir(c->filename, S_IRWXU | S_IRWXG | S_IRWXO) < 0 && errno !=
EEXIST)
#else
if (mkdir(c->filename, S_IREAD | S_IWRITE | S_IEXEC) < 0 && errno
!= EEXIST)
#endif /* WIN32 */
1.10 +1 -1 apache-apr/pthreads/src/modules/proxy/proxy_ftp.c
Index: proxy_ftp.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/proxy/proxy_ftp.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -u -r1.9 -r1.10
--- proxy_ftp.c 1999/06/10 06:26:22 1.9
+++ proxy_ftp.c 1999/08/19 20:52:58 1.10
@@ -509,7 +509,7 @@
*/
if ((password = ap_table_get(r->headers_in, "Authorization")) != NULL
&& strcasecmp(ap_getword(r->pool, &password, ' '), "Basic") == 0
- && (password = ap_uudecode(r->pool, password))[0] != ':') {
+ && (password = ap_pbase64decode(r->pool, password))[0] != ':') {
/* Note that this allocation has to be made from r->connection->pool
* because it has the lifetime of the connection. The other allocations
* are temporary and can be tossed away any time.
1.3 +1 -0 apache-apr/pthreads/src/modules/standard/.cvsignore
Index: .cvsignore
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/standard/.cvsignore,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- .cvsignore 1999/06/10 06:26:24 1.2
+++ .cvsignore 1999/08/19 20:53:05 1.3
@@ -3,3 +3,4 @@
*.so
*.dll
*.def
+*.exp
1.3 +1 -1 apache-apr/pthreads/src/modules/standard/mod_access.c
Index: mod_access.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/standard/mod_access.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- mod_access.c 1999/02/07 06:29:50 1.2
+++ mod_access.c 1999/08/19 20:53:06 1.3
@@ -202,7 +202,7 @@
mask = htonl(mask);
}
a->x.ip.mask = mask;
-
+ a->x.ip.net = (a->x.ip.net & mask); /* pjr - This fixes PR 4770 */
}
else if (ap_isdigit(*where) && is_ip(where)) {
/* legacy syntax for ip addrs: a.b.c. ==> a.b.c.0/24 for example */
1.5 +0 -1 apache-apr/pthreads/src/modules/standard/mod_auth.c
Index: mod_auth.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/standard/mod_auth.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- mod_auth.c 1999/04/09 04:10:39 1.4
+++ mod_auth.c 1999/08/19 20:53:07 1.5
@@ -74,7 +74,6 @@
#include "http_core.h"
#include "http_log.h"
#include "http_protocol.h"
-#include "ap_md5.h"
typedef struct auth_config_struct {
char *auth_pwfile;
1.5 +0 -1 apache-apr/pthreads/src/modules/standard/mod_auth_db.c
Index: mod_auth_db.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/standard/mod_auth_db.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- mod_auth_db.c 1999/04/09 04:10:40 1.4
+++ mod_auth_db.c 1999/08/19 20:53:07 1.5
@@ -96,7 +96,6 @@
#include "http_log.h"
#include "http_protocol.h"
#include <db.h>
-#include "ap_md5.h"
#if defined(DB_VERSION_MAJOR) && (DB_VERSION_MAJOR == 2)
#define DB2
1.6 +0 -1 apache-apr/pthreads/src/modules/standard/mod_auth_dbm.c
Index: mod_auth_dbm.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/standard/mod_auth_dbm.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -u -r1.5 -r1.6
--- mod_auth_dbm.c 1999/06/10 06:26:25 1.5
+++ mod_auth_dbm.c 1999/08/19 20:53:07 1.6
@@ -80,7 +80,6 @@
#else
#include <ndbm.h>
#endif
-#include "ap_md5.h"
/*
* Module definition information - the part between the -START and -END
1.7 +11 -0 apache-apr/pthreads/src/modules/standard/mod_cgi.c
Index: mod_cgi.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/standard/mod_cgi.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -u -r1.6 -r1.7
--- mod_cgi.c 1999/06/10 06:26:25 1.6
+++ mod_cgi.c 1999/08/19 20:53:08 1.7
@@ -210,8 +210,19 @@
/* Soak up script output */
while (ap_bgets(argsbuffer, HUGE_STRING_LEN, script_in) > 0)
continue;
+#ifdef WIN32
+ /* Soak up stderr and redirect it to the error log.
+ * Script output to stderr is already directed to the error log
+ * on Unix, thanks to the magic of fork().
+ */
+ while (ap_bgets(argsbuffer, HUGE_STRING_LEN, script_err) > 0) {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, r,
+ "%s", argsbuffer);
+ }
+#else
while (ap_bgets(argsbuffer, HUGE_STRING_LEN, script_err) > 0)
continue;
+#endif
return ret;
}
1.6 +9 -0 apache-apr/pthreads/src/modules/standard/mod_log_config.c
Index: mod_log_config.c
===================================================================
RCS file:
/home/cvs/apache-apr/pthreads/src/modules/standard/mod_log_config.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -u -r1.5 -r1.6
--- mod_log_config.c 1999/06/10 06:26:26 1.5
+++ mod_log_config.c 1999/08/19 20:53:08 1.6
@@ -122,6 +122,7 @@
* %...f: filename
* %...h: remote host
* %...a: remote IP-address
+ * %...A: local IP-address
* %...{Foobar}i: The contents of Foobar: header line(s) in the request
* sent to the client.
* %...l: remote logname (from identd, if supplied)
@@ -289,6 +290,11 @@
return r->connection->remote_ip;
}
+static const char *log_local_address(request_rec *r, char *a)
+{
+ return r->connection->local_ip;
+}
+
static const char *log_remote_logname(request_rec *r, char *a)
{
return ap_get_remote_logname(r);
@@ -445,6 +451,9 @@
},
{
'a', log_remote_address, 0
+ },
+ {
+ 'A', log_local_address, 0
},
{
'l', log_remote_logname, 0
1.6 +40 -51 apache-apr/pthreads/src/modules/standard/mod_rewrite.c
Index: mod_rewrite.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/standard/mod_rewrite.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -u -r1.5 -r1.6
--- mod_rewrite.c 1999/06/10 06:26:27 1.5
+++ mod_rewrite.c 1999/08/19 20:53:09 1.6
@@ -91,6 +91,10 @@
#include "mod_rewrite.h"
+#ifndef NO_WRITEV
+#include <sys/types.h>
+#include <sys/uio.h>
+#endif
/*
** +-------------------------------------------------------+
@@ -158,9 +162,9 @@
{ "RewriteBase", cmd_rewritebase, NULL, OR_FILEINFO, TAKE1,
"the base URL of the per-directory context" },
{ "RewriteCond", cmd_rewritecond, NULL, OR_FILEINFO, RAW_ARGS,
- "a input string and a to be applied regexp-pattern" },
+ "an input string and a to be applied regexp-pattern" },
{ "RewriteRule", cmd_rewriterule, NULL, OR_FILEINFO, RAW_ARGS,
- "a URL-applied regexp-pattern and a substitution URL" },
+ "an URL-applied regexp-pattern and a substitution URL" },
{ "RewriteMap", cmd_rewritemap, NULL, RSRC_CONF, TAKE2,
"a mapname and a filename" },
{ "RewriteLock", cmd_rewritelock, NULL, RSRC_CONF, TAKE1,
@@ -208,6 +212,8 @@
/* whether proxy module is available or not */
static int proxy_available;
+static char *lockname;
+static int lockfd = -1;
/*
** +-------------------------------------------------------+
@@ -234,8 +240,6 @@
a->rewritelogfile = NULL;
a->rewritelogfp = -1;
a->rewriteloglevel = 0;
- a->rewritelockfile = NULL;
- a->rewritelockfp = -1;
a->rewritemaps = ap_make_array(p, 2, sizeof(rewritemap_entry));
a->rewriteconds = ap_make_array(p, 2, sizeof(rewritecond_entry));
a->rewriterules = ap_make_array(p, 2, sizeof(rewriterule_entry));
@@ -270,12 +274,6 @@
a->rewritelogfp = overrides->rewritelogfp != -1
? overrides->rewritelogfp
: base->rewritelogfp;
- a->rewritelockfile = overrides->rewritelockfile != NULL
- ? overrides->rewritelockfile
- : base->rewritelockfile;
- a->rewritelockfp = overrides->rewritelockfp != -1
- ? overrides->rewritelockfp
- : base->rewritelockfp;
a->rewritemaps = ap_append_arrays(p, overrides->rewritemaps,
base->rewritemaps);
a->rewriteconds = ap_append_arrays(p, overrides->rewriteconds,
@@ -291,8 +289,6 @@
a->rewriteloglevel = overrides->rewriteloglevel;
a->rewritelogfile = overrides->rewritelogfile;
a->rewritelogfp = overrides->rewritelogfp;
- a->rewritelockfile = overrides->rewritelockfile;
- a->rewritelockfp = overrides->rewritelockfp;
a->rewritemaps = overrides->rewritemaps;
a->rewriteconds = overrides->rewriteconds;
a->rewriterules = overrides->rewriterules;
@@ -528,15 +524,12 @@
static const char *cmd_rewritelock(cmd_parms *cmd, void *dconf, char *a1)
{
- rewrite_server_conf *sconf;
const char *error;
if ((error = ap_check_cmd_context(cmd, GLOBAL_ONLY)) != NULL)
return error;
- sconf = (rewrite_server_conf *)
- ap_get_module_config(cmd->server->module_config,
&rewrite_module);
- sconf->rewritelockfile = a1;
+ lockname = a1;
return NULL;
}
@@ -2920,6 +2913,9 @@
char buf[LONG_STRING_LEN];
char c;
int i;
+#ifndef NO_WRITEV
+ struct iovec iov[2];
+#endif
/* when `RewriteEngine off' was used in the per-server
* context then the rewritemap-programs were not spawned.
@@ -2934,8 +2930,16 @@
rewritelock_alloc(r);
/* write out the request key */
+#ifdef NO_WRITEV
write(fpin, key, strlen(key));
write(fpin, "\n", 1);
+#else
+ iov[0].iov_base = key;
+ iov[0].iov_len = strlen(key);
+ iov[1].iov_base = "\n";
+ iov[1].iov_len = 1;
+ writev(fpin, iov, 2);
+#endif
/* read in the response value */
i = 0;
@@ -3254,28 +3258,26 @@
conf = ap_get_module_config(s->module_config, &rewrite_module);
/* only operate if a lockfile is used */
- if (conf->rewritelockfile == NULL
- || *(conf->rewritelockfile) == '\0') {
+ if (lockname == NULL || *(lockname) == '\0') {
return;
}
/* fixup the path, especially for rewritelock_remove() */
- conf->rewritelockfile = ap_server_root_relative(p,
conf->rewritelockfile);
+ lockname = ap_server_root_relative(p, lockname);
/* create the lockfile */
- unlink(conf->rewritelockfile);
- if ((conf->rewritelockfp = ap_popenf(p, conf->rewritelockfile,
- O_WRONLY|O_CREAT,
+ unlink(lockname);
+ if ((lockfd = ap_popenf(p, lockname, O_WRONLY|O_CREAT,
REWRITELOCK_MODE)) < 0) {
ap_log_error(APLOG_MARK, APLOG_ERR, s,
"mod_rewrite: Parent could not create RewriteLock "
- "file %s", conf->rewritelockfile);
+ "file %s", lockname);
exit(1);
}
#if !defined(OS2) && !defined(WIN32)
/* make sure the childs have access to this file */
if (geteuid() == 0 /* is superuser */)
- chown(conf->rewritelockfile, ap_user_id, -1 /* no gid change */);
+ chown(lockname, ap_user_id, -1 /* no gid change */);
#endif
return;
@@ -3288,18 +3290,16 @@
conf = ap_get_module_config(s->module_config, &rewrite_module);
/* only operate if a lockfile is used */
- if (conf->rewritelockfile == NULL
- || *(conf->rewritelockfile) == '\0') {
+ if (lockname == NULL || *(lockname) == '\0') {
return;
}
/* open the lockfile (once per child) to get a unique fd */
- if ((conf->rewritelockfp = ap_popenf(p, conf->rewritelockfile,
- O_WRONLY,
+ if ((lockfd = ap_popenf(p, lockname, O_WRONLY,
REWRITELOCK_MODE)) < 0) {
ap_log_error(APLOG_MARK, APLOG_ERR, s,
"mod_rewrite: Child could not open RewriteLock "
- "file %s", conf->rewritelockfile);
+ "file %s", lockname);
exit(1);
}
return;
@@ -3307,43 +3307,29 @@
static void rewritelock_remove(void *data)
{
- server_rec *s;
- rewrite_server_conf *conf;
-
- /* the data is really the server_rec */
- s = (server_rec *)data;
- conf = ap_get_module_config(s->module_config, &rewrite_module);
-
/* only operate if a lockfile is used */
- if (conf->rewritelockfile == NULL
- || *(conf->rewritelockfile) == '\0') {
+ if (lockname == NULL || *(lockname) == '\0') {
return;
}
/* remove the lockfile */
- unlink(conf->rewritelockfile);
+ unlink(lockname);
+ lockname = NULL;
+ lockfd = -1;
}
static void rewritelock_alloc(request_rec *r)
{
- rewrite_server_conf *conf;
-
- conf = ap_get_module_config(r->server->module_config, &rewrite_module);
-
- if (conf->rewritelockfp != -1) {
- fd_lock(r, conf->rewritelockfp);
+ if (lockfd != -1) {
+ fd_lock(r, lockfd);
}
return;
}
static void rewritelock_free(request_rec *r)
{
- rewrite_server_conf *conf;
-
- conf = ap_get_module_config(r->server->module_config, &rewrite_module);
-
- if (conf->rewritelockfp != -1) {
- fd_unlock(r, conf->rewritelockfp);
+ if (lockfd != -1) {
+ fd_unlock(r, lockfd);
}
return;
}
@@ -3613,6 +3599,9 @@
}
else if (strcasecmp(var, "SERVER_NAME") == 0) {
result = ap_get_server_name(r);
+ }
+ else if (strcasecmp(var, "SERVER_ADDR") == 0) { /* non-standard */
+ result = r->connection->local_ip;
}
else if (strcasecmp(var, "SERVER_PORT") == 0) {
ap_snprintf(resultbuf, sizeof(resultbuf), "%u",
ap_get_server_port(r));
1.5 +1 -3 apache-apr/pthreads/src/modules/standard/mod_rewrite.h
Index: mod_rewrite.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/standard/mod_rewrite.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- mod_rewrite.h 1999/06/10 06:26:28 1.4
+++ mod_rewrite.h 1999/08/19 20:53:10 1.5
@@ -157,7 +157,7 @@
#endif
#if !defined(USE_FCNTL) && !defined(USE_FLOCK)
#define USE_FLOCK 1
-#if !defined(MPE) && !defined(WIN32)
+#if !defined(MPE) && !defined(WIN32) && !defined(__TANDEM)
#include <sys/file.h>
#endif
#ifndef LOCK_UN
@@ -302,8 +302,6 @@
char *rewritelogfile; /* the RewriteLog filename */
int rewritelogfp; /* the RewriteLog open filepointer */
int rewriteloglevel; /* the RewriteLog level of verbosity */
- char *rewritelockfile; /* the RewriteLock filename */
- int rewritelockfp; /* the RewriteLock open filepointer */
array_header *rewritemaps; /* the RewriteMap entries */
array_header *rewriteconds; /* the RewriteCond entries (temporary) */
array_header *rewriterules; /* the RewriteRule entries */
1.5 +3 -3 apache-apr/pthreads/src/modules/standard/mod_unique_id.c
Index: mod_unique_id.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/modules/standard/mod_unique_id.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- mod_unique_id.c 1999/05/30 23:49:01 1.4
+++ mod_unique_id.c 1999/08/19 20:53:10 1.5
@@ -110,7 +110,7 @@
* saving cpu cycles. The counter is never reset, and is used to permit up
to
* 64k requests in a single second by a single child.
*
- * The 112-bits of unique_id_rec are uuencoded using the alphabet
+ * The 112-bits of unique_id_rec are encoded using the alphabet
* [EMAIL PROTECTED], resulting in 19 bytes of printable characters. That
is then
* stuffed into the environment variable UNIQUE_ID so that it is available to
* other modules. The alphabet choice differs from normal base64 encoding
@@ -190,7 +190,7 @@
unique_id_rec_size[4];
/*
- * Calculate the size of the structure when uuencoded.
+ * Calculate the size of the structure when encoded.
*/
unique_id_rec_size_uu = (unique_id_rec_total_size*8+5)/6;
@@ -305,7 +305,7 @@
cur_unique_id.counter = htons(cur_unique_id.counter);
}
-/* NOTE: This is *NOT* the same encoding used by uuencode ... the last two
+/* NOTE: This is *NOT* the same encoding used by base64encode ... the last
two
* characters should be + and /. But those two characters have very special
* meanings in URLs, and we want to make it easy to use identifiers in
* URLs. So we replace them with @ and -.
1.2 +45 -3 apache-apr/pthreads/src/os/bs2000/Makefile.tmpl
Index: Makefile.tmpl
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/bs2000/Makefile.tmpl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- Makefile.tmpl 1999/01/21 23:08:39 1.1
+++ Makefile.tmpl 1999/08/19 20:53:20 1.2
@@ -36,7 +36,49 @@
&& rm Makefile.new
$(OBJS): Makefile
-os.o: os.c os-inline.c
-ebcdic.o: ebcdic.c
+
# DO NOT REMOVE
-os.o: os.c
+bs2login.o: bs2login.c
+bs2login.o: $(INCDIR)/httpd.h
+bs2login.o: $(INCDIR)/ap_config.h
+bs2login.o: $(INCDIR)/ap_mmn.h
+bs2login.o: $(INCDIR)/ap_config_auto.h
+bs2login.o: os.h
+bs2login.o: $(INCDIR)/ap_ctype.h
+bs2login.o: $(INCDIR)/hsregex.h
+bs2login.o: $(INCDIR)/alloc.h
+bs2login.o: $(INCDIR)/buff.h
+bs2login.o: $(INCDIR)/ap.h
+bs2login.o: ebcdic.h
+bs2login.o: $(INCDIR)/util_uri.h
+bs2login.o: $(INCDIR)/http_config.h
+bs2login.o: $(INCDIR)/http_log.h
+ebcdic.o: ebcdic.c
+ebcdic.o: $(INCDIR)/ap_config.h
+ebcdic.o: $(INCDIR)/ap_mmn.h
+ebcdic.o: $(INCDIR)/ap_config_auto.h
+ebcdic.o: os.h
+ebcdic.o: $(INCDIR)/ap_ctype.h
+ebcdic.o: $(INCDIR)/hsregex.h
+ebcdic.o: ebcdic.h
+os-inline.o: os-inline.c
+os-inline.o: $(INCDIR)/ap_config.h
+os-inline.o: $(INCDIR)/ap_mmn.h
+os-inline.o: $(INCDIR)/ap_config_auto.h
+os-inline.o: os.h
+os-inline.o: $(INCDIR)/ap_ctype.h
+os-inline.o: $(INCDIR)/hsregex.h
+os.o: os.c
+os.o: $(INCDIR)/httpd.h
+os.o: $(INCDIR)/ap_config.h
+os.o: $(INCDIR)/ap_mmn.h
+os.o: $(INCDIR)/ap_config_auto.h
+os.o: os.h
+os.o: $(INCDIR)/ap_ctype.h
+os.o: $(INCDIR)/hsregex.h
+os.o: $(INCDIR)/alloc.h
+os.o: $(INCDIR)/buff.h
+os.o: $(INCDIR)/ap.h
+os.o: ebcdic.h
+os.o: $(INCDIR)/util_uri.h
+os.o: $(INCDIR)/http_core.h
1.3 +13 -1 apache-apr/pthreads/src/os/bs2000/bs2login.c
Index: bs2login.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/bs2000/bs2login.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- bs2login.c 1999/02/07 06:30:10 1.2
+++ bs2login.c 1999/08/19 20:53:21 1.3
@@ -255,6 +255,7 @@
pid_t os_fork(const char *user)
{
pid_t pid;
+ char username[USER_LEN+1];
switch (os_forktype()) {
case bs2_FORK:
@@ -267,7 +268,18 @@
break;
case bs2_UFORK:
- pid = ufork(user);
+ ap_cpystrn(username, user, sizeof username);
+
+ /* Make user name all upper case - for some versions of ufork() */
+ ap_str_toupper(username);
+
+ pid = ufork(username);
+ if (pid == -1 && errno == EPERM) {
+ ap_log_error(APLOG_MARK, APLOG_EMERG,
+ NULL, "ufork: Possible mis-configuration "
+ "for user %s - Aborting.", user);
+ exit(1);
+ }
break;
default:
1.5 +10 -2 apache-apr/pthreads/src/os/bs2000/os.h
Index: os.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/bs2000/os.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- os.h 1999/06/10 06:26:36 1.4
+++ os.h 1999/08/19 20:53:21 1.5
@@ -9,8 +9,6 @@
* and prototypes of OS specific functions defined in os.c or os-inline.c
*/
-#include "ap_config.h"
-
#if !defined(INLINE) && defined(USE_GNU_INLINE)
/* Compiler supports inline, so include the inlineable functions as
* part of the header
@@ -33,6 +31,16 @@
#define ap_os_is_filename_valid(f) (1)
#define ap_os_kill(pid, sig) kill(pid, sig)
+
+#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
+typedef struct {
+ char *username;
+ char *account;
+ char *processor_name;
+} _rini_struct;
+
+extern int _rini(_rini_struct *);
+#endif /* !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE) */
/* Sorry if this is ugly, but the include order doesn't allow me
* to use request_rec here... */
1.4 +1 -2 apache-apr/pthreads/src/os/os2/util_os2.c
Index: util_os2.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/os2/util_os2.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- util_os2.c 1999/06/10 06:26:37 1.3
+++ util_os2.c 1999/08/19 20:53:22 1.4
@@ -1,6 +1,5 @@
-#define INCL_DOSFILEMGR
+#define INCL_DOS
#define INCL_DOSERRORS
-#define INCL_DOSEXCEPTIONS
#include <os2.h>
#include "httpd.h"
#include "http_log.h"
1.4 +7 -0 apache-apr/pthreads/src/os/tpf/os.c
Index: os.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/tpf/os.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- os.c 1999/06/10 06:26:39 1.3
+++ os.c 1999/08/19 20:53:23 1.4
@@ -161,6 +161,13 @@
return rv;
}
+/* the getpass function is not usable on TPF */
+char *getpass(const char* prompt)
+{
+ errno = EIO;
+ return((char *)NULL);
+}
+
#ifndef __PIPE_
int pipe(int fildes[2])
{
1.4 +1 -0 apache-apr/pthreads/src/os/tpf/os.h
Index: os.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/tpf/os.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- os.h 1999/06/10 06:26:39 1.3
+++ os.h 1999/08/19 20:53:23 1.4
@@ -95,6 +95,7 @@
struct server_rec;
pid_t os_fork(struct server_rec *s, int slot);
int os_check_server(char *server);
+char *getpass(const char *prompt);
extern char *ap_server_argv0;
extern int scoreboard_fd;
#include <signal.h>
1.3 +4 -1 apache-apr/pthreads/src/os/unix/os.c
Index: os.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/unix/os.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- os.c 1999/06/10 06:26:40 1.2
+++ os.c 1999/08/19 20:53:24 1.3
@@ -109,7 +109,7 @@
return NULL;
return NSLinkModule(image, path, TRUE);
-#elif defined(OSF1) ||\
+#elif defined(OSF1) || defined(SEQUENT) ||\
(defined(__FreeBSD_version) && (__FreeBSD_version >= 220000))
return dlopen((char *)path, RTLD_NOW | RTLD_GLOBAL);
@@ -160,6 +160,9 @@
retval = dlsym(handle, symbol);
free(symbol);
return retval;
+
+#elif defined(SEQUENT)
+ return dlsym(handle, (char *)symname);
#else
return dlsym(handle, symname);
1.2 +4 -4 apache-apr/pthreads/src/os/win32/ApacheModuleRewrite.dsp
Index: ApacheModuleRewrite.dsp
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/win32/ApacheModuleRewrite.dsp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- ApacheModuleRewrite.dsp 1999/01/21 23:08:40 1.1
+++ ApacheModuleRewrite.dsp 1999/08/19 20:53:25 1.2
@@ -45,7 +45,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS"
/YX /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /D "NDEBUG" /D "WIN32"
/D "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\include" /D "NDEBUG" /D "WIN32"
/D "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE" /D
"WIN32_LEAN_AND_MEAN" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
@@ -55,7 +55,7 @@
# 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 /subsystem:windows /dll /machine:I386
-# ADD LINK32 ..\..\CoreR\ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib wsock32.lib /nologo
/subsystem:windows /dll /machine:I386
+# ADD LINK32 ..\..\CoreR\ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib /nologo
/subsystem:windows /dll /machine:I386
!ELSEIF "$(CFG)" == "ApacheModuleRewrite - Win32 Debug"
@@ -71,7 +71,7 @@
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D
"_WINDOWS" /YX /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "_DEBUG" /D
"WIN32" /D "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "_DEBUG" /D
"WIN32" /D "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE" /D
"WIN32_LEAN_AND_MEAN" /YX /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
@@ -81,7 +81,7 @@
# 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 /subsystem:windows /dll /debug /machine:I386
-# ADD LINK32 ..\..\CoreD\ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib wsock32.lib /nologo
/subsystem:windows /dll /debug /machine:I386
+# ADD LINK32 ..\..\CoreD\ApacheCore.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib /nologo
/subsystem:windows /dll /debug /machine:I386
!ENDIF
1.2 +14 -9 apache-apr/pthreads/src/os/win32/ApacheModuleRewrite.mak
Index: ApacheModuleRewrite.mak
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/win32/ApacheModuleRewrite.mak,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- ApacheModuleRewrite.mak 1999/01/21 23:08:40 1.1
+++ ApacheModuleRewrite.mak 1999/08/19 20:53:25 1.2
@@ -64,7 +64,7 @@
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\..\include" /D "NDEBUG" /D "WIN32"
/D\
- "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE"\
+ "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE" /D
"WIN32_LEAN_AND_MEAN"\
/Fp"$(INTDIR)\ApacheModuleRewrite.pch" /YX /Fo"$(INTDIR)\\"
/Fd"$(INTDIR)\\"\
/FD /c
CPP_OBJS=.\ApacheModuleRewriteR/
@@ -76,7 +76,7 @@
LINK32=link.exe
LINK32_FLAGS=..\..\CoreR\ApacheCore.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib wsock32.lib /nologo\
+ winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib /nologo\
/subsystem:windows /dll /incremental:no\
/pdb:"$(OUTDIR)\ApacheModuleRewrite.pdb" /machine:I386\
/out:"$(OUTDIR)\ApacheModuleRewrite.dll"\
@@ -123,9 +123,9 @@
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\include" /D "_DEBUG" /D\
- "WIN32" /D "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE"\
- /Fp"$(INTDIR)\ApacheModuleRewrite.pch" /YX /Fo"$(INTDIR)\\"
/Fd"$(INTDIR)\\"\
- /FD /c
+ "WIN32" /D "_WINDOWS" /D "NO_DBM_REWRITEMAP" /D "SHARED_MODULE" /D\
+ "WIN32_LEAN_AND_MEAN" /Fp"$(INTDIR)\ApacheModuleRewrite.pch" /YX\
+ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
CPP_OBJS=.\ApacheModuleRewriteD/
CPP_SBRS=.
MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
@@ -135,7 +135,7 @@
LINK32=link.exe
LINK32_FLAGS=..\..\CoreD\ApacheCore.lib kernel32.lib user32.lib gdi32.lib\
- winspool.lib comdlg32.lib advapi32.lib shell32.lib wsock32.lib /nologo\
+ winspool.lib comdlg32.lib advapi32.lib shell32.lib ws2_32.lib /nologo\
/subsystem:windows /dll /incremental:yes\
/pdb:"$(OUTDIR)\ApacheModuleRewrite.pdb" /debug /machine:I386\
/out:"$(OUTDIR)\ApacheModuleRewrite.dll"\
@@ -191,18 +191,21 @@
DEP_CPP_MOD_R=\
"..\..\include\alloc.h"\
"..\..\include\ap.h"\
+ "..\..\include\ap_config.h"\
+ "..\..\include\ap_ctype.h"\
"..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
- "..\..\include\conf.h"\
"..\..\include\hsregex.h"\
+ "..\..\include\http_conf_globals.h"\
"..\..\include\http_config.h"\
"..\..\include\http_core.h"\
"..\..\include\http_log.h"\
"..\..\include\http_request.h"\
+ "..\..\include\http_vhost.h"\
"..\..\include\httpd.h"\
+ "..\..\include\util_uri.h"\
"..\..\modules\standard\mod_rewrite.h"\
".\os.h"\
- ".\passwd.h"\
".\readdir.h"\
@@ -215,10 +218,12 @@
DEP_CPP_MOD_R=\
"..\..\include\alloc.h"\
"..\..\include\ap.h"\
+ "..\..\include\ap_config.h"\
+ "..\..\include\ap_ctype.h"\
"..\..\include\ap_mmn.h"\
"..\..\include\buff.h"\
- "..\..\include\conf.h"\
"..\..\include\hsregex.h"\
+ "..\..\include\http_conf_globals.h"\
"..\..\include\http_config.h"\
"..\..\include\http_core.h"\
"..\..\include\http_log.h"\
1.6 +1 -1 apache-apr/pthreads/src/os/win32/os.h
Index: os.h
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/win32/os.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -u -r1.5 -r1.6
--- os.h 1999/06/10 06:26:41 1.5
+++ os.h 1999/08/19 20:53:25 1.6
@@ -21,7 +21,7 @@
#include <direct.h>
#define STATUS
-#define WIN32_LEAN_AND_MEAN
+/*#define WIN32_LEAN_AND_MEAN Now defined in project files */
#ifndef STRICT
#define STRICT
#endif
1.4 +1 -1 apache-apr/pthreads/src/os/win32/registry.c
Index: registry.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/os/win32/registry.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- registry.c 1999/06/10 06:26:41 1.3
+++ registry.c 1999/08/19 20:53:25 1.4
@@ -38,7 +38,7 @@
#define VENDOR "Apache Group"
#define SOFTWARE "Apache"
-#define VERSION "1.3.7 dev"
+#define VERSION "1.3.9"
#define REGKEY "SOFTWARE\\" VENDOR "\\" SOFTWARE "\\" VERSION
1.3 +28 -29
apache-apr/pthreads/src/os/win32/installer/installdll/install.c
Index: install.c
===================================================================
RCS file:
/home/cvs/apache-apr/pthreads/src/os/win32/installer/installdll/install.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- install.c 1999/03/17 17:02:07 1.2
+++ install.c 1999/08/19 20:53:26 1.3
@@ -9,8 +9,7 @@
#define VERSION ( "1.003 " __DATE__ " " __TIME__ )
-#include <windows.h>
-#include <winsock.h>
+#include <winsock2.h>
#include <string.h>
#include <stdio.h>
#include <direct.h>
@@ -23,20 +22,14 @@
#undef strftime
#endif
+#define AP_WIN32ERROR 1
+
/* Global to store the instance handle */
HINSTANCE hInstance = NULL;
static char *szLogFilename = NULL;
static FILE *fpLog = NULL;
-void OpenLog(char *dir, char *fn)
-{
- szLogFilename = malloc(strlen(dir) + 1 + strlen(fn) + 1);
- sprintf(szLogFilename, "%s/%s", dir, fn);
-
- fpLog = fopen(szLogFilename, "a+");
-}
-
void LogMessage(char *fmt, ...)
{
char buf[4000];
@@ -70,13 +63,6 @@
fprintf(fpLog, "%s\n", buf);
}
-void CloseLog(void)
-{
- if (fpLog) {
- fclose(fpLog);
- }
-}
-
/*
* MessageBox_error() is a helper function to display an error in a
* message box, optionally including a Win32 error message. If
@@ -87,8 +73,6 @@
* passed on to the Win32 MessageBox() call.
*/
-#define AP_WIN32ERROR 1
-
int MessageBox_error(HWND hWnd, int opt, char *title,
int mb_opt, char *fmt, ...)
{
@@ -162,6 +146,29 @@
return MessageBox(hWnd, buf, title, mb_opt);
}
+int OpenLog(HWND hwnd, char *dir, char *fn)
+{
+ szLogFilename = malloc(strlen(dir) + 1 + strlen(fn) + 1);
+ sprintf(szLogFilename, "%s\\%s", dir, fn);
+
+ if ((fpLog = fopen(szLogFilename, "a+")) == NULL) {
+ MessageBox_error(hwnd,
+ AP_WIN32ERROR,
+ "Installation Problem",
+ MB_OK | MB_ICONSTOP,
+ "Cannot open log file %s", szLogFilename);
+ return -1;
+ }
+ return 0;
+}
+
+void CloseLog(void)
+{
+ if (fpLog) {
+ fclose(fpLog);
+ }
+}
+
/*
* The next few functions handle expanding the @@ServerRoot@@ type
* sequences found in the distribution files. The main entry point
@@ -558,14 +565,6 @@
{ CMD_COPY, ".tmp\\highperformance.conf-dist",
"conf\\highperformance.conf-dist",
OPT_EXPAND|OPT_OVERWRITE|OPT_DELETESOURCE },
- /* Move the default htdocs files into place, provided they don't already
- * exist.
- */
- { CMD_COPY, ".tmp\\index.html", "htdocs\\index.html",
OPT_DELETESOURCE|OPT_SILENT },
- { CMD_RM, ".tmp\\index.html", NULL, OPT_SILENT },
- { CMD_COPY, ".tmp\\apache_pb.gif", "htdocs\\apache_pb.gif",
OPT_DELETESOURCE|OPT_SILENT },
- { CMD_RM, ".tmp\\apache_pb.gif", NULL, OPT_SILENT },
-
{ CMD_RMDIR, ".tmp", NULL },
{ CMD_END, NULL, NULL, OPT_NONE }
@@ -583,7 +582,7 @@
ACTIONITEM *pactionItem;
int end = 0;
- OpenLog(szInst, "install.log");
+ OpenLog(hwnd, szInst, "install.log");
LogMessage("STARTED %s", VERSION);
LogMessage("src=%s support=%s inst=%s",
szSrcDir, szSupport, szInst);
@@ -593,7 +592,7 @@
pactionItem = actionTable;
while (!end) {
- LogMessage("command=%d in=%s out=%s options=%d",
+ LogMessage("command=%d 1in=%s out=%s options=%d",
pactionItem->command,
pactionItem->in ? pactionItem->in : "NULL",
pactionItem->out ? pactionItem->out : "NULL",
1.2 +1 -0 apache-apr/pthreads/src/regex/debug.c
Index: debug.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/regex/debug.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- debug.c 1999/01/21 23:08:42 1.1
+++ debug.c 1999/08/19 20:53:27 1.2
@@ -6,6 +6,7 @@
#include <sys/types.h>
#include "hsregex.h"
+#include "ap_ctype.h"
#include "utils.h"
#include "regex2.h"
#include "debug.ih"
1.2 +2 -2 apache-apr/pthreads/src/regex/main.c
Index: main.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/regex/main.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- main.c 1999/01/21 23:08:42 1.1
+++ main.c 1999/08/19 20:53:27 1.2
@@ -20,6 +20,8 @@
extern int split();
extern void regprint();
+extern int optind;
+extern char *optarg;
/*
- main - do the simple case, hand off to regress() for regression
@@ -37,8 +39,6 @@
int c;
int errflg = 0;
register int i;
- extern int optind;
- extern char *optarg;
progname = argv[0];
1.2 +2 -0 apache-apr/pthreads/src/regex/split.c
Index: split.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/regex/split.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- split.c 1999/01/21 23:08:43 1.1
+++ split.c 1999/08/19 20:53:27 1.2
@@ -1,6 +1,8 @@
#include <stdio.h>
#include <string.h>
+extern int split(char *, char *[], int, char *);
+
/*
- split - divide a string into fields, like awk split()
= int split(char *string, char *fields[], int nfields, char *sep);
1.3 +2 -2 apache-apr/pthreads/src/support/Makefile.tmpl
Index: Makefile.tmpl
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/Makefile.tmpl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- Makefile.tmpl 1999/02/07 06:30:18 1.2
+++ Makefile.tmpl 1999/08/19 20:53:29 1.3
@@ -1,6 +1,6 @@
CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
-LIBS=-los -lap $(EXTRA_LIBS) $(LIBS1)
+LIBS=-lap -los $(EXTRA_LIBS) $(LIBS1)
INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS) -L$(OSDIR) -L$(SRCDIR)/ap
@@ -35,7 +35,7 @@
-e '[EMAIL PROTECTED]@%$(CFLAGS)%g' \
-e '[EMAIL PROTECTED]@%$(CFLAGS_SHLIB)%g' \
-e '[EMAIL PROTECTED]@%$(LD_SHLIB)%g' \
- -e '[EMAIL PROTECTED]@%$(LDFLAGS_SHLIB)%g' \
+ -e '[EMAIL PROTECTED]@%$(LDFLAGS_MOD_SHLIB)%g' \
-e '[EMAIL PROTECTED]@%$(LIBS_SHLIB)%g' && chmod a+x apxs
suexec: suexec.o
1.2 +5 -0 apache-apr/pthreads/src/support/README
Index: README
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/README,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- README 1999/06/10 06:26:45 1.1
+++ README 1999/08/19 20:53:29 1.2
@@ -55,3 +55,8 @@
see the document `Apache suEXEC Support'
under http://www.apache.org/docs/suexec.html .
+SHA1
+ This directory includes some utilities to allow Apache 1.3.6 to
+ recognize passwords in SHA1 format, as used by Netscape web
+ servers. It is not installed by default.
+
1.5 +51 -85 apache-apr/pthreads/src/support/ab.c
Index: ab.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/ab.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- ab.c 1999/06/10 06:26:45 1.4
+++ ab.c 1999/08/19 20:53:29 1.5
@@ -97,7 +97,7 @@
* only an issue for loopback usage
*/
-#define VERSION "1.3"
+#define VERSION "1.3a"
/* -------------------------------------------------------------------- */
@@ -123,6 +123,7 @@
#define ap_select select
#else /* (!)NO_APACHE_INCLUDES */
#include "ap_config.h"
+#include "ap.h"
#ifdef CHARSET_EBCDIC
#include "ebcdic.h"
#endif
@@ -238,56 +239,6 @@
exit(errno);
}
-/* -- simple uuencode, lifted from main/util.c which
- * needed the pool, so duplicated here with normal
- * malloc.
- */
-static const char basis_64[] =
-"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-static char *uuencode(char *string)
-{
- int i, len = strlen(string);
- char *p;
- char *encoded = (char *) malloc((len + 2) / 3 * 4 + 1);
- p = encoded;
-#ifndef CHARSET_EBCDIC
- for (i = 0; i < len-2; i += 3) {
- *p++ = basis_64[(string[i] >> 2) & 0x3F];
- *p++ = basis_64[((string[i] & 0x3) << 4) | ((int) (string[i + 1] &
0xF0) >> 4)];
- *p++ = basis_64[((string[i + 1] & 0xF) << 2) | ((int) (string[i + 2]
& 0xC0) >> 6)];
- *p++ = basis_64[string[i + 2] & 0x3F];
- }
- if (i < len) {
- *p++ = basis_64[(string[i] >> 2) & 0x3F];
- *p++ = basis_64[((string[i] & 0x3) << 4) | ((int) (string[i + 1] &
0xF0) >> 4)];
- if (i == (len-2))
- *p++ = basis_64[((string[i + 1] & 0xF) << 2)];
- else
- *p++ = '=';
- *p++ = '=';
- }
-#else /*CHARSET_EBCDIC*/
- for (i = 0; i < len-2; i += 3) {
- *p++ = basis_64[(os_toascii[string[i]] >> 2) & 0x3F];
- *p++ = basis_64[((os_toascii[string[i]] & 0x3) << 4) | ((int)
(os_toascii[string[i + 1]] & 0xF0) >> 4)];
- *p++ = basis_64[((os_toascii[string[i + 1]] & 0xF) << 2) | ((int)
(os_toascii[string[i + 2]] & 0xC0) >> 6)];
- *p++ = basis_64[os_toascii[string[i + 2]] & 0x3F];
- }
- if (i < len) {
- *p++ = basis_64[(os_toascii[string[i]] >> 2) & 0x3F];
- *p++ = basis_64[((os_toascii[string[i]] & 0x3) << 4) | ((int)
(os_toascii[string[i + 1]] & 0xF0) >> 4)];
- if (i == (len-2))
- *p++ = basis_64[((os_toascii[string[i + 1]] & 0xF) << 2)];
- else
- *p++ = '=';
- *p++ = '=';
- }
-#endif /*CHARSET_EBCDIC*/
- *p = '\0';
- return encoded;
-}
-
/* --------------------------------------------------------- */
/* write out request to a connection - assumes we can write
@@ -413,13 +364,15 @@
totalcon += s.ctime;
total += s.time;
}
- printf("\nConnnection Times (ms)\n");
- printf(" min avg max\n");
- printf("Connect: %5d %5d %5d\n", mincon, totalcon / requests,
maxcon);
- printf("Processing: %5d %5d %5d\n",
- mintot - mincon, (total / requests) - (totalcon / requests),
- maxtot - maxcon);
- printf("Total: %5d %5d %5d\n", mintot, total / requests, maxtot);
+ if (requests > 0) { /* avoid division by zero (if 0 requests) */
+ printf("\nConnnection Times (ms)\n");
+ printf(" min avg max\n");
+ printf("Connect: %5d %5d %5d\n", mincon, totalcon / requests,
maxcon);
+ printf("Processing: %5d %5d %5d\n",
+ mintot - mincon, (total / requests) - (totalcon / requests),
+ maxtot - maxcon);
+ printf("Total: %5d %5d %5d\n", mintot, total / requests,
maxtot);
+ }
}
}
@@ -521,26 +474,28 @@
total += s.time;
}
- printf("<tr %s><th %s colspan=4>Connnection Times (ms)</th></tr>\n",
- trstring, tdstring);
- printf("<tr %s><th %s> </th> <th %s>min</th> <th %s>avg</th>
<th %s>max</th></tr>\n",
- trstring, tdstring, tdstring, tdstring, tdstring);
- printf("<tr %s><th %s>Connect:</th>"
- "<td %s>%5d</td>"
- "<td %s>%5d</td>"
- "<td %s>%5d</td></tr>\n",
- trstring, tdstring, tdstring, mincon, tdstring, totalcon /
requests, tdstring, maxcon);
- printf("<tr %s><th %s>Processing:</th>"
- "<td %s>%5d</td>"
- "<td %s>%5d</td>"
- "<td %s>%5d</td></tr>\n",
- trstring, tdstring, tdstring, mintot - mincon, tdstring,
- (total / requests) - (totalcon / requests), tdstring, maxtot -
maxcon);
- printf("<tr %s><th %s>Total:</th>"
- "<td %s>%5d</td>"
- "<td %s>%5d</td>"
- "<td %s>%5d</td></tr>\n",
- trstring, tdstring, tdstring, mintot, tdstring, total /
requests, tdstring, maxtot);
+ if (requests > 0) { /* avoid division by zero (if 0 requests) */
+ printf("<tr %s><th %s colspan=4>Connnection Times (ms)</th></tr>\n",
+ trstring, tdstring);
+ printf("<tr %s><th %s> </th> <th %s>min</th> <th %s>avg</th>
<th %s>max</th></tr>\n",
+ trstring, tdstring, tdstring, tdstring, tdstring);
+ printf("<tr %s><th %s>Connect:</th>"
+ "<td %s>%5d</td>"
+ "<td %s>%5d</td>"
+ "<td %s>%5d</td></tr>\n",
+ trstring, tdstring, tdstring, mincon, tdstring, totalcon /
requests, tdstring, maxcon);
+ printf("<tr %s><th %s>Processing:</th>"
+ "<td %s>%5d</td>"
+ "<td %s>%5d</td>"
+ "<td %s>%5d</td></tr>\n",
+ trstring, tdstring, tdstring, mintot - mincon, tdstring,
+ (total / requests) - (totalcon / requests), tdstring, maxtot
- maxcon);
+ printf("<tr %s><th %s>Total:</th>"
+ "<td %s>%5d</td>"
+ "<td %s>%5d</td>"
+ "<td %s>%5d</td></tr>\n",
+ trstring, tdstring, tdstring, mintot, tdstring, total /
requests, tdstring, maxtot);
+ }
printf("</table>\n");
}
}
@@ -1017,7 +972,8 @@
/* sort out command-line args and call test */
int main(int argc, char **argv)
{
- int c, r;
+ int c, r,l;
+ char tmp[1024];
/* table defaults */
tablestring = "";
@@ -1060,25 +1016,35 @@
case 'T':
strcpy(content_type, optarg);
break;
- case 'C':
+ case 'C':
strncat(cookie, "Cookie: ", sizeof(cookie));
strncat(cookie, optarg, sizeof(cookie));
strncat(cookie, "\r\n", sizeof(cookie));
break;
- case 'A':
- /*
- * assume username passwd already to be in colon separated form.
+ case 'A':
+ /* assume username passwd already to be in colon separated form.
Ready
+ * to be uu-encoded.
*/
+ while(isspace(*optarg))
+ optarg++;
+ l=ap_base64encode(tmp,optarg,strlen(optarg));
+ tmp[l]='\0';
+
strncat(auth, "Authorization: basic ", sizeof(auth));
- strncat(auth, uuencode(optarg), sizeof(auth));
+ strncat(auth, tmp, sizeof(auth));
strncat(auth, "\r\n", sizeof(auth));
break;
case 'P':
/*
* assume username passwd already to be in colon separated form.
*/
+ while(isspace(*optarg))
+ optarg++;
+ l=ap_base64encode(tmp,optarg,strlen(optarg));
+ tmp[l]='\0';
+
strncat(auth, "Proxy-Authorization: basic ", sizeof(auth));
- strncat(auth, uuencode(optarg), sizeof(auth));
+ strncat(auth, tmp, sizeof(auth));
strncat(auth, "\r\n", sizeof(auth));
break;
case 'H':
1.4 +48 -6 apache-apr/pthreads/src/support/apxs.8
Index: apxs.8
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/apxs.8,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- apxs.8 1999/06/10 06:26:46 1.3
+++ apxs.8 1999/08/19 20:53:29 1.4
@@ -56,15 +56,24 @@
.SH SYNOPSIS
.B apxs
.B \-g
+[
+.BI \-S " name=value
+]
.BI \-n " modname"
.B apxs
.B \-q
+[
+.BI \-S " name=value
+]
.IR query " ..."
.B apxs
.B \-c
[
+.BI \-S " name=value
+]
+[
.BI \-o " dsofile"
]
[
@@ -90,6 +99,25 @@
.B apxs
.B \-i
[
+.BI \-S " name=value
+]
+[
+.BI \-n " modname"
+]
+[
+.B \-a
+]
+[
+.B \-A
+]
+.IR dsofile " ..."
+
+.B apxs
+.B \-e
+[
+.BI \-S " name=value
+]
+[
.BI \-n " modname"
]
[
@@ -219,6 +247,11 @@
inside your own Makefiles if you need manual access
to Apache's C header files.
.PP
+Configuration options:
+.TP 12
+.BI \-S " name=value"
+This option changes the apxs settings described above.
+.PP
Template Generation options:
.TP 12
.B \-g
@@ -289,7 +322,7 @@
as additional flags to the linker command.
Use this to add local linker-specific options.
.PP
-DSO installation options:
+DSO installation and configuration options:
.TP 12
.B \-i
This indicates the installation operation and installs one or more
@@ -299,21 +332,30 @@
directory.
.TP 12
.B \-a
-This additionally activates the module
-by automatically adding a corresponding
+This activates the module by automatically adding a corresponding
.B LoadModule
line to Apache's
.B httpd.conf
-configuration file (only if no such entry exists yet).
+configuration file, or by enabling it if it already exists.
.TP 12
.B \-A
Same as option
.B \-a
but the created
.B LoadModule
-directive is
-prefixed with a hash sign (#), i.e. the module is
+directive is prefixed with a hash sign (#), i.e. the module is
just prepared for later activation but initially disabled.
+.TP 12
+.B \-e
+This indicates the editing operation, which can be used with the
+.B \-a
+and
+.B \-A
+options similarly to the
+.B \-i
+operation to edit Apache's
+.B httpd.conf
+configuration file without attempting to install the module.
.PD
.SH EXAMPLES
Assume you have an Apache module named mod_foo.c available which should
extend
1.4 +65 -36 apache-apr/pthreads/src/support/apxs.pl
Index: apxs.pl
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/apxs.pl,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- apxs.pl 1999/03/17 17:02:11 1.3
+++ apxs.pl 1999/08/19 20:53:30 1.4
@@ -68,18 +68,18 @@
## Configuration
##
-my $CFG_TARGET = '@TARGET@'; # substituted via Makefile.tmpl
-my $CFG_CC = '@CC@'; # substituted via Makefile.tmpl
-my $CFG_CFLAGS = '@CFLAGS@'; # substituted via Makefile.tmpl
-my $CFG_CFLAGS_SHLIB = '@CFLAGS_SHLIB@'; # substituted via Makefile.tmpl
-my $CFG_LD_SHLIB = '@LD_SHLIB@'; # substituted via Makefile.tmpl
-my $CFG_LDFLAGS_SHLIB = '@LDFLAGS_SHLIB@'; # substituted via Makefile.tmpl
-my $CFG_LIBS_SHLIB = '@LIBS_SHLIB@'; # substituted via Makefile.tmpl
-my $CFG_PREFIX = '@prefix@'; # substituted via APACI install
-my $CFG_SBINDIR = '@sbindir@'; # substituted via APACI install
-my $CFG_INCLUDEDIR = '@includedir@'; # substituted via APACI install
-my $CFG_LIBEXECDIR = '@libexecdir@'; # substituted via APACI install
-my $CFG_SYSCONFDIR = '@sysconfdir@'; # substituted via APACI install
+my $CFG_TARGET = '@TARGET@'; # substituted via
Makefile.tmpl
+my $CFG_CC = '@CC@'; # substituted via
Makefile.tmpl
+my $CFG_CFLAGS = '@CFLAGS@'; # substituted via
Makefile.tmpl
+my $CFG_CFLAGS_SHLIB = '@CFLAGS_SHLIB@'; # substituted via
Makefile.tmpl
+my $CFG_LD_SHLIB = '@LD_SHLIB@'; # substituted via
Makefile.tmpl
+my $CFG_LDFLAGS_SHLIB = '@LDFLAGS_MOD_SHLIB@'; # substituted via
Makefile.tmpl
+my $CFG_LIBS_SHLIB = '@LIBS_SHLIB@'; # substituted via
Makefile.tmpl
+my $CFG_PREFIX = '@prefix@'; # substituted via APACI
install
+my $CFG_SBINDIR = '@sbindir@'; # substituted via APACI
install
+my $CFG_INCLUDEDIR = '@includedir@'; # substituted via APACI
install
+my $CFG_LIBEXECDIR = '@libexecdir@'; # substituted via APACI
install
+my $CFG_SYSCONFDIR = '@sysconfdir@'; # substituted via APACI
install
##
## Cleanup the above stuff
@@ -117,6 +117,8 @@
my @opt_L = ();
my @opt_l = ();
my @opt_W = ();
+my @opt_S = ();
+my $opt_e = 0;
my $opt_i = 0;
my $opt_a = 0;
my $opt_A = 0;
@@ -188,27 +190,49 @@
}
sub usage {
- print STDERR "Usage: apxs -g -n <modname>\n";
- print STDERR " apxs -q <query> ...\n";
- print STDERR " apxs -c [-o <dsofile>] [-D <name>[=<value>]] [-I
<incdir>]\n";
- print STDERR " [-L <libdir>] [-l <libname>] [-Wc,<flags>]
[-Wl,<flags>]\n";
- print STDERR " <files> ...\n";
- print STDERR " apxs -i [-a] [-A] [-n <modname>] <dsofile> ...\n";
+ print STDERR "Usage: apxs -g [-S <var>=<val>] -n <modname>\n";
+ print STDERR " apxs -q [-S <var>=<val>] <query> ...\n";
+ print STDERR " apxs -c [-S <var>=<val>] [-o <dsofile>] [-D
<name>[=<value>]]\n";
+ print STDERR " [-I <incdir>] [-L <libdir>] [-l <libname>]
[-Wc,<flags>]\n";
+ print STDERR " [-Wl,<flags>] <files> ...\n";
+ print STDERR " apxs -i [-S <var>=<val>] [-a] [-A] [-n <modname>]
<dsofile> ...\n";
+ print STDERR " apxs -e [-S <var>=<val>] [-a] [-A] [-n <modname>]
<dsofile> ...\n";
exit(1);
}
# option handling
my $rc;
-($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+iaA", @ARGV);
+($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+S+eiaA", @ARGV);
&usage if ($rc == 0);
&usage if ($#ARGV == -1 and not $opt_g);
-&usage if (not $opt_q and not ($opt_g and $opt_n) and not $opt_i and not
$opt_c);
+&usage if (not $opt_q and not ($opt_g and $opt_n) and not $opt_i and not
$opt_c and not $opt_e);
# argument handling
my @args = @ARGV;
my $name = 'unknown';
$name = $opt_n if ($opt_n ne '');
+if (@opt_S) {
+ my ($opt_S);
+ foreach $opt_S (@opt_S) {
+ if ($opt_S =~ m/^([^=]+)=(.*)$/) {
+ my ($var) = $1;
+ my ($val) = $2;
+ my $oldval = eval "\$CFG_$var";
+
+ unless ($var and $oldval) {
+ print STDERR "apxs:Error: no config variable $var\n";
+ &usage;
+ }
+
+ eval "\$CFG_${var}=\"${val}\"";
+ } else {
+ print STDERR "apxs:Error: malformatted -S option\n";
+ &usage;
+ }
+ }
+}
+
##
## Operation
##
@@ -358,7 +382,11 @@
$opt = '';
my ($opt_Wl, $opt_L, $opt_l);
foreach $opt_Wl (@opt_W) {
- $opt .= " $1" if ($opt_Wl =~ m|^\s*l,(.*)$|);
+ if($CFG_LD_SHLIB ne "gcc") {
+ $opt .= " $1" if ($opt_Wl =~ m|^\s*l,(.*)$|);
+ } else {
+ $opt .= " -W$opt_Wl";
+ }
}
foreach $opt_L (@opt_L) {
$opt .= " -L$opt_L";
@@ -374,12 +402,12 @@
&execute_cmds(@cmds);
# allow one-step compilation and installation
- if ($opt_i) {
+ if ($opt_i or $opt_e) {
@args = ( $dso_file );
}
}
-if ($opt_i) {
+if ($opt_i or $opt_e) {
##
## SHARED OBJECT INSTALLATION
##
@@ -397,8 +425,10 @@
}
my $t = $f;
$t =~ s|^.+/([^/]+)$|$1|;
- push(@cmds, "cp $f $CFG_LIBEXECDIR/$t");
- push(@cmds, "chmod 755 $CFG_LIBEXECDIR/$t");
+ if ($opt_i) {
+ push(@cmds, "cp $f $CFG_LIBEXECDIR/$t");
+ push(@cmds, "chmod 755 $CFG_LIBEXECDIR/$t");
+ }
# determine module symbolname and filename
my $filename = '';
@@ -459,29 +489,28 @@
exit(1);
}
- my $update = 0;
my $lmd;
+ my $c = '';
+ $c = '#' if ($opt_A);
foreach $lmd (@lmd) {
+ my $what = $opt_A ? "preparing" : "activating";
if ($content !~ m|\n#?\s*$lmd|) {
- my $c = '';
- $c = '#' if ($opt_A);
$content =~
s|^(.*\n#?\s*LoadModule\s+[^\n]+\n)|$1$c$lmd\n|sg;
- $update = 1;
- $lmd =~ m|LoadModule\s+(.+?)_module.*|;
- my $what = $opt_A ? "preparing" : "activating";
- print STDERR "[$what module `$1' in
$CFG_SYSCONFDIR/$CFG_TARGET.conf]\n";
+ } else {
+ $content =~ s|^(.*\n)#?\s*$lmd[^\n]*\n|$1$c$lmd\n|sg;
}
+ $lmd =~ m|LoadModule\s+(.+?)_module.*|;
+ print STDERR "[$what module `$1' in
$CFG_SYSCONFDIR/$CFG_TARGET.conf]\n";
}
my $amd;
foreach $amd (@amd) {
if ($content !~ m|\n#?\s*$amd|) {
- my $c = '';
- $c = '#' if ($opt_A);
$content =~
s|^(.*\n#?\s*AddModule\s+[^\n]+\n)|$1$c$amd\n|sg;
- $update = 1;
+ } else {
+ $content =~ s|^(.*\n)#?\s*$amd[^\n]*\n|$1$c$amd\n|sg;
}
}
- if ($update) {
+ if (@lmd or @amd) {
open(FP, ">$CFG_SYSCONFDIR/$CFG_TARGET.conf.new") || die;
print FP $content;
close(FP);
1.4 +1 -1 apache-apr/pthreads/src/support/htdigest.c
Index: htdigest.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/htdigest.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- htdigest.c 1999/06/10 06:26:46 1.3
+++ htdigest.c 1999/08/19 20:53:30 1.4
@@ -70,7 +70,7 @@
#include <sys/types.h>
#include "ap.h"
#include "ap_md5.h"
-#if defined(MPE) || defined(QNX) || defined(WIN32)
+#if defined(MPE) || defined(QNX) || defined(WIN32) || defined(__TANDEM)
#include <signal.h>
#else
#include <sys/signal.h>
1.4 +21 -2 apache-apr/pthreads/src/support/htpasswd.1
Index: htpasswd.1
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/htpasswd.1,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- htpasswd.1 1999/06/10 06:26:46 1.3
+++ htpasswd.1 1999/08/19 20:53:30 1.4
@@ -72,6 +72,9 @@
]
[
.B \-m
+.B \-d
+.B \-p
+.B \-s
]
.I passwdfile
.I username
@@ -120,8 +123,23 @@
Create the \fIpasswdfile\fP. If \fIpasswdfile\fP already exists, it
is rewritten and truncated.
.IP \-m
-Use MD5 encryption for passwords. On Windows, this is the only format
-supported.
+Use MD5 encryption for passwords. On Windows and TPF, this is the default.
+.IP \-d
+Use crypt() encryption for passwords. The default on all platforms but
+Windows and TPF. Though possibly supported by
+.B htpasswd
+onm all platforms, it is not supported by the
+.B httpd
+server on Windows and TPF.
+.IP \-s
+Use SHA encryption for passwords. Faciliates migration from/to Netscape
+servers using the LDAP Directory Interchange Format (ldif).
+.IP \-p
+Use plaintext passwords. Though
+.B htpasswd
+will support creation on all platofrms, the
+.B httpd
+deamon will only accept plain text passwords on Windows and TPF.
.IP \fB\fIpasswdfile\fP
Name of the file to contain the user name and password. If \-c
is given, this file is created if it does not already exist,
@@ -192,3 +210,4 @@
Usernames are limited to 255 bytes and may not include the character ':'.
.SH SEE ALSO
.BR httpd(8)
+and the scripts in support/SHA1 which come with the distribution.
1.6 +63 -25 apache-apr/pthreads/src/support/htpasswd.c
Index: htpasswd.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/htpasswd.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -u -r1.5 -r1.6
--- htpasswd.c 1999/06/10 06:26:46 1.5
+++ htpasswd.c 1999/08/19 20:53:30 1.6
@@ -84,6 +84,7 @@
#include <errno.h>
#include "ap.h"
#include "ap_md5.h"
+#include "ap_sha1.h"
#ifdef WIN32
#include <conio.h>
@@ -100,8 +101,10 @@
#endif /*CHARSET_EBCDIC*/
#define MAX_STRING_LEN 256
+#define ALG_PLAIN 0
#define ALG_CRYPT 1
#define ALG_APMD5 2
+#define ALG_APSHA 3
#define ERR_FILEPERM 1
#define ERR_SYNTAX 2
@@ -149,19 +152,6 @@
fputc('\n', f);
}
-
-/* From local_passwd.c (C) Regents of Univ. of California blah blah */
-static unsigned char itoa64[] = /* 0 ... 63 => ascii - 64 */
- "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-
-static void to64(register char *s, register long v, register int n)
-{
- while (--n >= 0) {
- *s++ = itoa64[v & 0x3f];
- v >>= 6;
- }
-}
-
/*
* Make a password record from the given information. A zero return
* indicates success; failure means that the output buffer contains an
@@ -172,9 +162,9 @@
{
char *pw;
char cpw[120];
- char salt[9];
char pwin[MAX_STRING_LEN];
char pwv[MAX_STRING_LEN];
+ char salt[9];
if (passwd != NULL) {
pw = passwd;
@@ -191,20 +181,39 @@
return ERR_PWMISMATCH;
}
pw = pwin;
+ memset(pwv, '\0', sizeof(pwin));
}
- (void) srand((int) time((time_t *) NULL));
- to64(&salt[0], rand(), 8);
- salt[8] = '\0';
-
switch (alg) {
- case ALG_APMD5:
+
+ case ALG_APSHA:
+ /* XXX cpw >= 28 + strlen(sha1) chars - fixed len SHA */
+ ap_sha1_base64(pw,strlen(pw),cpw);
+ break;
+
+ case ALG_APMD5:
+ (void) srand((int) time((time_t *) NULL));
+ ap_to64(&salt[0], rand(), 8);
+ salt[8] = '\0';
+
ap_MD5Encode((const unsigned char *)pw, (const unsigned char *)salt,
cpw, sizeof(cpw));
break;
+
+ case ALG_PLAIN:
+ /* XXX this len limitation is not in sync with any HTTPd len. */
+ ap_cpystrn(cpw,pw,sizeof(cpw));
+ break;
+
case ALG_CRYPT:
+ default:
+ (void) srand((int) time((time_t *) NULL));
+ ap_to64(&salt[0], rand(), 8);
+ salt[8] = '\0';
+
ap_cpystrn(cpw, (char *)crypt(pw, salt), sizeof(cpw) - 1);
break;
}
+ memset(pw, '\0', strlen(pw));
/*
* Check to see if the buffer is large enough to hold the username,
@@ -223,13 +232,27 @@
static int usage(void)
{
fprintf(stderr, "Usage:\n");
- fprintf(stderr, "\thtpasswd [-cm] passwordfile username\n");
- fprintf(stderr, "\thtpasswd -b[cm] passwordfile username password\n\n");
+ fprintf(stderr, "\thtpasswd [-cmdps] passwordfile username\n");
+ fprintf(stderr, "\thtpasswd -b[cmdps] passwordfile username
password\n\n");
fprintf(stderr, " -c Create a new file.\n");
- fprintf(stderr, " -m Force MD5 encryption of the password.\n");
- fprintf(stderr, " -b Use the password from the command line rather ");
- fprintf(stderr, "than prompting for it.\n");
- fprintf(stderr, "On Windows systems the -m flag is used by default.\n");
+ fprintf(stderr, " -m Force MD5 encryption of the password"
+#if defined(WIN32) || defined(TPF)
+ " (default)"
+#endif
+ ".\n");
+ fprintf(stderr, " -d Force CRYPT encryption of the password"
+#if (!(defined(WIN32) || defined(TPF)))
+ " (default)"
+#endif
+ ".\n");
+ fprintf(stderr, " -p Do not encrypt the password (plaintext).\n");
+ fprintf(stderr, " -s Force SHA encryption of the password.\n");
+ fprintf(stderr, " -b Use the password from the command line rather "
+ "than prompting for it.\n");
+ fprintf(stderr,
+ "On Windows and TPF systems the '-m' flag is used by default.\n");
+ fprintf(stderr,
+ "On all other systems, the '-p' flag will probably not work.\n");
return ERR_SYNTAX;
}
@@ -356,6 +379,15 @@
else if (*arg == 'm') {
alg = ALG_APMD5;
}
+ else if (*arg == 's') {
+ alg = ALG_APSHA;
+ }
+ else if (*arg == 'p') {
+ alg = ALG_PLAIN;
+ }
+ else if (*arg == 'd') {
+ alg = ALG_CRYPT;
+ }
else if (*arg == 'b') {
noninteractive++;
args_left++;
@@ -406,6 +438,12 @@
}
#endif
+#if (!(defined(WIN32) || defined(TPF)))
+ if (alg == ALG_PLAIN) {
+ fprintf(stderr,"Warning: storing passwords as plain text might "
+ "just not work on this platform.\n");
+ }
+#endif
/*
* Verify that the file exists if -c was omitted. We give a special
* message if it doesn't.
1.3 +12 -1 apache-apr/pthreads/src/support/httpd.8
Index: httpd.8
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/httpd.8,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -u -r1.2 -r1.3
--- httpd.8 1999/02/07 06:30:19 1.2
+++ httpd.8 1999/08/19 20:53:31 1.3
@@ -92,12 +92,18 @@
[
.B \-S
]
+[
+.B \-t
+]
+[
+.B \-T
+]
.SH DESCRIPTION
.B httpd
is the Apache HyperText Transfer Protocol (HTTP) server program. It is
designed to be run as a standalone daemon process. When used like this
-is will create a pool of child processes to handle requests. To stop
+it will create a pool of child processes to handle requests. To stop
it, send a TERM signal to the initial (parent) process. The PID of
this process is written to a file as given in the configuration file.
Alternatively
@@ -163,6 +169,11 @@
Run syntax tests for configuration files only. The program immediately exits
after these syntax parsing with either a return code of 0 (Syntax OK) or
return code not equal to 0 (Syntax Error).
+.TP
+.B \-T
+Same as option
+.B \-t
+but does not check the configured document roots.
.TP
.B \-X
Run in single-process mode, for internal debugging purposes only; the daemon
1.6 +48 -2 apache-apr/pthreads/src/support/httpd.exp
Index: httpd.exp
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/httpd.exp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -u -r1.5 -r1.6
--- httpd.exp 1999/06/10 06:26:46 1.5
+++ httpd.exp 1999/08/19 20:53:31 1.6
@@ -3,6 +3,10 @@
ap_MD5Final
ap_MD5Init
ap_MD5Update
+ap_SHA1Final
+ap_SHA1Init
+ap_SHA1Update_binary
+ap_SHA1Update
ap_acquire_mutex
ap_add_cgi_vars
ap_add_common_vars
@@ -18,6 +22,12 @@
ap_array_pstrcat
ap_auth_name
ap_auth_type
+ap_base64encode
+ap_base64encode_binary
+ap_base64encode_len
+ap_base64decode
+ap_base64decode_binary
+ap_base64decode_len
ap_basic_http_header
ap_bclose
ap_bcreate
@@ -101,6 +111,7 @@
ap_exists_config_define
ap_exists_scoreboard_image
ap_extended_status
+ap_field_noparam
ap_finalize_request_protocol
ap_finalize_sub_req_protocol
ap_find_command
@@ -205,7 +216,6 @@
ap_open_logs
ap_open_piped_log
ap_os_escape_path
-ap_os_is_filename_valid
ap_os_is_path_absolute
ap_overlay_tables
ap_overlap_tables
@@ -216,6 +226,8 @@
ap_parse_uri
ap_parse_uri_components
ap_parse_vhost_addrs
+ap_pbase64decode
+ap_pbase64encode
ap_pcalloc
ap_pcfg_open_custom
ap_pcfg_openfile
@@ -307,12 +319,12 @@
ap_set_sub_req_protocol
ap_setup_client_block
ap_setup_prelinked_modules
+ap_sha1_base64
ap_should_client_block
ap_show_directives
ap_show_modules
ap_signal
ap_single_module_configure
-ap_single_module_init
ap_size_list_item
ap_slack
ap_snprintf
@@ -364,3 +376,37 @@
ap_vsnprintf
core_module
top_module
+XML_DefaultCurrent
+XML_ErrorString
+XML_ExternalEntityParserCreate
+XML_GetBase
+XML_GetBuffer
+XML_GetCurrentByteCount
+XML_GetCurrentByteIndex
+XML_GetCurrentColumnNumber
+XML_GetCurrentLineNumber
+XML_GetErrorCode
+XML_GetSpecifiedAttributeCount
+XML_Parse
+XML_ParseBuffer
+XML_ParserCreate
+XML_ParserCreateNS
+XML_ParserFree
+XML_SetBase
+XML_SetCdataSectionHandler
+XML_SetCharacterDataHandler
+XML_SetCommentHandler
+XML_SetDefaultHandler
+XML_SetDefaultHandlerExpand
+XML_SetElementHandler
+XML_SetEncoding
+XML_SetExternalEntityRefHandler
+XML_SetExternalEntityRefHandlerArg
+XML_SetNamespaceDeclHandler
+XML_SetNotStandaloneHandler
+XML_SetNotationDeclHandler
+XML_SetProcessingInstructionHandler
+XML_SetUnknownEncodingHandler
+XML_SetUnparsedEntityDeclHandler
+XML_SetUserData
+XML_UseParserAsHandlerArg
1.4 +1 -0 apache-apr/pthreads/src/support/suexec.c
Index: suexec.c
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/support/suexec.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -u -r1.3 -r1.4
--- suexec.c 1999/03/17 17:02:11 1.3
+++ suexec.c 1999/08/19 20:53:32 1.4
@@ -145,6 +145,7 @@
"SCRIPT_URL",
"SERVER_ADMIN",
"SERVER_NAME",
+ "SERVER_ADDR",
"SERVER_PORT",
"SERVER_PROTOCOL",
"SERVER_SOFTWARE",
1.2 +2 -2 apache-apr/pthreads/src/test/check_chunked
Index: check_chunked
===================================================================
RCS file: /home/cvs/apache-apr/pthreads/src/test/check_chunked,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -u -r1.1 -r1.2
--- check_chunked 1999/01/21 23:08:44 1.1
+++ check_chunked 1999/08/19 20:53:35 1.2
@@ -24,9 +24,9 @@
for(;;) {
$_ = <> || die "unexpected end of file!\n";
- m#^[0-9a-f]+ *\r$#i || die "bogus chunklen: $_";
+ m#^([0-9a-f]+) *\r$#i || die "bogus chunklen: $_";
- my $chunklen = hex;
+ my $chunklen = hex($1);
exit 0 if ($chunklen == 0);