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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 -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);