manoj       99/08/17 14:00:09

  Modified:    mpm      INSTALL Makefile.tmpl configure
               mpm/src  ApacheCore.def Configuration.tmpl Configure
               mpm/src/ap Makefile.tmpl ap.dsp ap.mak ap_checkpass.c
                        ap_md5c.c ap_sha1.c ap_snprintf.c
               mpm/src/helpers GuessOS binbuild.sh find-dbm-lib
               mpm/src/include ap.h ap_config.h ap_md5.h ap_mmn.h ap_sha1.h
                        httpd.h
               mpm/src/main http_config.c http_core.c http_main.c
                        http_protocol.c util.c util_script.c
               mpm/src/modules/experimental Makefile.tmpl
               mpm/src/modules/proxy proxy_ftp.c
               mpm/src/modules/standard mod_access.c mod_unique_id.c
               mpm/src/os/unix os.c unixd.c
               mpm/src/os/win32 registry.c
               mpm/src/os/win32/installer/installdll install.c
               mpm/src/support Makefile.tmpl ab.c htpasswd.c httpd.8
                        httpd.exp
               mpm/src/test check_chunked
  Added:       mpm/src/ap ap_base64.c
               mpm/src/modules/experimental mod_auth_digest.c
  Log:
  merge the differences in apache-1.3 from tag mpm-merge-1 up to
  APACHE_1_3_9 (a.k.a. mpm-merge-2) onto the mpm tree
  
  prior to the merge, the mpm tree was tagged with apache-1_3-merge-2-pre,
  and after the merge, the mpm tree will be tagged with
  apache-1_3-merge-2-post
  
  Revision  Changes    Path
  1.3       +1 -1      apache-2.0/mpm/INSTALL
  
  Index: INSTALL
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/INSTALL,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- INSTALL   1999/08/06 00:53:52     1.2
  +++ INSTALL   1999/08/17 20:56:55     1.3
  @@ -82,7 +82,7 @@
              - Linux     - SunOS         - UnixWare     - Mac OS X Server
              - FreeBSD   - Solaris       - AIX          - Mac OS
              - OpenBSD   - IRIX          - SCO          - OpenStep/Mach
  -           - NetBSD    - HPUX          - ReliantUNIX
  +           - NetBSD    - HPUX          - ReliantUNIX  - DYNIX/ptx
              - BSDI      - Digital Unix  - DGUX
   
           o Entirely unsupported platforms are:
  
  
  
  1.3       +1 -1      apache-2.0/mpm/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/Makefile.tmpl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- Makefile.tmpl     1999/08/06 00:53:52     1.2
  +++ Makefile.tmpl     1999/08/17 20:56:56     1.3
  @@ -434,7 +434,7 @@
                $(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.7       +24 -3     apache-2.0/mpm/configure
  
  Index: configure
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/configure,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -d -u -r1.6 -r1.7
  --- configure 1999/08/12 11:24:49     1.6
  +++ configure 1999/08/17 20:56:59     1.7
  @@ -318,9 +318,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
   
   ##
  @@ -771,6 +781,7 @@
                                  eval "module_${module}=yes" 
                              done
                              IFS="$OOIFS"
  +                           module_auth_digest=no # conflict with mod_digest
                              ;;
                          most ) 
                              OOIFS="$IFS"
  @@ -783,6 +794,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
                              ;;
  @@ -1463,6 +1475,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       +16 -0     apache-2.0/mpm/src/ApacheCore.def
  
  Index: ApacheCore.def
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/ApacheCore.def,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- ApacheCore.def    1999/06/18 18:39:22     1.1
  +++ ApacheCore.def    1999/08/17 20:57:12     1.2
  @@ -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.7       +40 -9     apache-2.0/mpm/src/Configuration.tmpl
  
  Index: Configuration.tmpl
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/Configuration.tmpl,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -d -u -r1.6 -r1.7
  --- Configuration.tmpl        1999/08/06 00:54:00     1.6
  +++ Configuration.tmpl        1999/08/17 20:57:14     1.7
  @@ -125,7 +125,7 @@
   # functions. The format is: Rule RULE=value
   #
   # At present, only the following RULES are known: WANTHSREGEX, SOCKS4,
  -# SOCKS5, IRIXNIS, IRIXN32, PARANOID, EXPAT and MPM_METHOD.
  +# SOCKS5, IRIXNIS, IRIXN32, PARANOID, EXPAT, DEV_RANDOM, and MPM_METHOD.
   #
   # The actual value of the Rule depends on what it's used for. For
   # Rules like WANTHSREGEX or IRIXN32, the Rule determines if the
  @@ -184,6 +184,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.
  @@ -325,13 +338,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
  @@ -362,9 +368,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.15      +61 -7     apache-2.0/mpm/src/Configure
  
  Index: Configure
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/Configure,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -d -u -r1.14 -r1.15
  --- Configure 1999/08/06 00:54:00     1.14
  +++ Configure 1999/08/17 20:57:15     1.15
  @@ -708,10 +708,41 @@
        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
  @@ -752,7 +783,7 @@
        ;;
       *-tandem-oss)
        OS='Tandem OSS'
  -     CFLAGS="-D_TANDEM_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -g"
  +     CFLAGS="-D_TANDEM_SOURCE -D_XOPEN_SOURCE_EXTENDED=1"
        CC='c89'
        ;;
       *) # default: Catch systems we don't know about
  @@ -1155,6 +1186,20 @@
            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
  @@ -1195,7 +1240,6 @@
            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
  @@ -1205,7 +1249,6 @@
            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
  @@ -1738,7 +1781,7 @@
        #    select the special subtarget for shared core generation
        SUBTARGET=target_shared
        #    determine additional suffixes for libhttpd.so
  -     V=1 R=3 P=8
  +     V=1 R=3 P=9
        if [ "x$SHLIB_SUFFIX_DEPTH" = "x0" ]; then
            SHLIB_SUFFIX_LIST=""
        fi
  @@ -1965,6 +2008,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.9       +3 -1      apache-2.0/mpm/src/ap/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/ap/Makefile.tmpl,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -d -u -r1.8 -r1.9
  --- Makefile.tmpl     1999/08/06 00:54:07     1.8
  +++ Makefile.tmpl     1999/08/17 20:57:26     1.9
  @@ -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_sha1.o ap_checkpass.o \
  +     ap_slack.o ap_snprintf.o ap_sha1.o ap_checkpass.o ap_base64.o \
        ap_buf.o ap_hooks.o
   
   .c.o:
  @@ -68,6 +68,8 @@
    $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h $(OSDIR)/os-inline.c \
    $(INCDIR)/ap_ctype.h $(INCDIR)/ap_md5.h $(INCDIR)/ap.h \
    $(INCDIR)/apr.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)/alloc.h \
  
  
  
  1.2       +12 -0     apache-2.0/mpm/src/ap/ap.dsp
  
  Index: ap.dsp
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/ap/ap.dsp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- ap.dsp    1999/06/18 18:39:24     1.1
  +++ ap.dsp    1999/08/17 20:57:28     1.2
  @@ -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.2       +147 -22   apache-2.0/mpm/src/ap/ap.mak
  
  Index: ap.mak
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/ap/ap.mak,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- ap.mak    1999/06/18 18:39:24     1.1
  +++ ap.mak    1999/08/17 20:57:31     1.2
  @@ -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.2       +4 -8      apache-2.0/mpm/src/ap/ap_checkpass.c
  
  Index: ap_checkpass.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/ap/ap_checkpass.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- ap_checkpass.c    1999/08/06 00:54:08     1.1
  +++ ap_checkpass.c    1999/08/17 20:57:36     1.2
  @@ -63,9 +63,6 @@
   #include "ap_md5.h"
   #include "ap_sha1.h"
   #include "ap.h"
  -#ifdef CHARSET_EBCDIC
  -#include "ebcdic.h"
  -#endif /*CHARSET_EBCDIC*/
   #if HAVE_CRYPT_H
   #include <crypt.h>
   #endif
  @@ -81,18 +78,18 @@
   API_EXPORT(char *) ap_validate_password(const char *passwd, const char *hash)
   {
       char sample[120];
  -    char *crypt_pw;
  +
   
       /* FreeBSD style MD5 string 
        */
  -    if (!strncmp(hash, apr1_id, strlen(apr1_id))) {
  +    if (strncmp(hash, AP_MD5PW_ID, AP_MD5PW_IDLEN) == 0) {
   
        ap_MD5Encode((const unsigned char *)passwd,
                     (const unsigned char *)hash, sample, sizeof(sample));
       }
       /* Netscape / SHA1 ldap style strng  
        */
  -    else if (!strncmp(hash, sha1_id, strlen(sha1_id))) {
  +    else if (strncmp(hash, AP_SHA1PW_ID, AP_SHA1PW_IDLEN) == 0) {
   
        ap_sha1_base64(passwd, strlen(passwd), sample);
       }
  @@ -107,8 +104,7 @@
         */
        ap_cpystrn(sample, passwd, sizeof(sample) - 1);
   #else
  -     crypt_pw = crypt(passwd, hash);
  -     ap_cpystrn(sample, crypt_pw, sizeof(sample) - 1);
  +     ap_cpystrn(sample, (char *)crypt(passwd, hash), sizeof(sample) - 1);
   #endif
       }
       return (strcmp(sample, hash) == 0) ? NULL : "password mismatch";
  
  
  
  1.3       +7 -12     apache-2.0/mpm/src/ap/ap_md5c.c
  
  Index: ap_md5c.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/ap/ap_md5c.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- ap_md5c.c 1999/08/06 00:54:08     1.2
  +++ ap_md5c.c 1999/08/17 20:57:39     1.3
  @@ -412,12 +412,6 @@
   }
   
   /*
  - * Define the Magic String prefix that identifies a password as being
  - * hashed using our algorithm.
  - */
  -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.
  @@ -463,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;
       }
   
       /*
  @@ -493,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
  @@ -533,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);
   
  
  
  
  1.2       +83 -120   apache-2.0/mpm/src/ap/ap_sha1.c
  
  Index: ap_sha1.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/ap/ap_sha1.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- ap_sha1.c 1999/08/06 00:54:09     1.1
  +++ ap_sha1.c 1999/08/17 20:57:42     1.2
  @@ -6,7 +6,7 @@
    * are met:
    *
    * 1. Redistributions of source code must retain the above copyright
  - *    notice, this list of conditions and the following disclaimer. 
  + *    notice, this list of conditions and the following disclaimer.
    *
    * 2. Redistributions in binary form must reproduce the above copyright
    *    notice, this list of conditions and the following disclaimer in
  @@ -53,7 +53,7 @@
    * For more information on the Apache Group and the Apache HTTP server
    * project, please see <http://www.apache.org/>.
    *
  - * The only exported function:
  + * The exported function:
    *
    *    ap_sha1_base64(const char *clear, int len, char *out);
    *
  @@ -70,32 +70,16 @@
    *     will always generate the same hash, making it easier
    *     to break since the search space is smaller.
    *
  - * See also the documentation in support/SHA1 as to hints on how to 
  + * See also the documentation in support/SHA1 as to hints on how to
    * migrate an existing netscape installation and other supplied utitlites.
    *
  - * This software also makes use of the following components: 
  + * This software also makes use of the following component:
    *
    * NIST Secure Hash Algorithm
    *   heavily modified by Uwe Hollerbach [EMAIL PROTECTED] edu
    *   from Peter C. Gutmann's implementation as found in
    *   Applied Cryptography by Bruce Schneier
    *   This code is hereby placed in the public domain
  - *
  - * MIME Base 64 encoding based on src/metamail/codes.c in metamail,
  - *   available at: ftp://thumper.bellcore.com/pub/nsb/
  - *
  - * Metamail's copyright is:
  - *   Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore)
  - *   Permission to use, copy, modify, and distribute this material 
  - *   for any purpose and without fee is hereby granted, provided 
  - *   that the above copyright notice and this permission notice 
  - *   appear in all copies, and that the name of Bellcore not be 
  - *   used in advertising or publicity pertaining to this 
  - *   material without the specific, prior written permission 
  - *   of an authorized representative of Bellcore.  BELLCORE 
  - *   MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY 
  - *   OF THIS MATERIAL FOR ANY PURPOSE.  IT IS PROVIDED "AS IS", 
  - *   WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
    */
   
   #include <string.h>
  @@ -133,30 +117,12 @@
       temp = ROT32(A,5) + f##n(B,C,D) + E + W[i] + CONST##n;   \
       E = D; D = C; C = ROT32(B,30); B = A; A = temp
   
  -typedef unsigned char AP_BYTE;     /* an 8-bit quantity */
  -typedef unsigned long AP_LONG;     /* a 32-bit quantity */
  - 
   #define SHA_BLOCKSIZE           64
  -#define SHA_DIGESTSIZE          20
  - 
  -typedef struct {
  -    AP_LONG digest[5];             /* message digest */
  -    AP_LONG count_lo, count_hi;    /* 64-bit bit count */
  -    AP_LONG data[16];              /* SHA data buffer */
  -    int local;                  /* unprocessed amount in data */
  -} SHA_INFO;
   
  -static void sha_init(SHA_INFO *);
  -static void sha_update(SHA_INFO *, const AP_BYTE *, int);
  -static void sha_final(SHA_INFO *);
  -static void sha_raw_swap(SHA_INFO *);
  -static void output64chunk(unsigned char, unsigned char, unsigned char,
  -                       int, unsigned char **);
  -static void encode_mime64(unsigned char *, unsigned char *, int);
  -void sha1_base64(char *, int, char *);
  +typedef unsigned char AP_BYTE;
   
   /* do SHA transformation */
  -static void sha_transform(SHA_INFO *sha_info)
  +static void sha_transform(AP_SHA1_CTX *sha_info)
   {
       int i;
       AP_LONG temp, A, B, C, D, E, W[80];
  @@ -236,7 +202,7 @@
       int i;
       AP_BYTE ct[4], *cp;
   
  -    if (isLittleEndian()) {    /* do the swap only if it is little endian */
  +    if (isLittleEndian()) {  /* do the swap only if it is little endian */
        count /= sizeof(AP_LONG);
        cp = (AP_BYTE *) buffer;
        for (i = 0; i < count; ++i) {
  @@ -255,7 +221,7 @@
   
   /* initialize the SHA digest */
   
  -static void sha_init(SHA_INFO *sha_info)
  +API_EXPORT(void) ap_SHA1Init(AP_SHA1_CTX *sha_info)
   {
       sha_info->digest[0] = 0x67452301L;
       sha_info->digest[1] = 0xefcdab89L;
  @@ -269,9 +235,11 @@
   
   /* update the SHA digest */
   
  -static void sha_update(SHA_INFO *sha_info, const AP_BYTE *buffer, int count)
  +API_EXPORT(void) ap_SHA1Update_binary(AP_SHA1_CTX *sha_info,
  +                                   const unsigned char *buffer,
  +                                   unsigned int count)
   {
  -    int i;
  +    unsigned int i;
   
       if ((sha_info->count_lo + ((AP_LONG) count << 3)) < sha_info->count_lo) {
        ++sha_info->count_hi;
  @@ -306,12 +274,58 @@
       sha_info->local = count;
   }
   
  +API_EXPORT(void) ap_SHA1Update(AP_SHA1_CTX *sha_info, const char *buf,
  +                            unsigned int count)
  +{
  +#ifdef CHARSET_EBCDIC
  +    int i;
  +    const AP_BYTE *buffer = (const AP_BYTE *) buf;
  +
  +    if ((sha_info->count_lo + ((AP_LONG) count << 3)) < sha_info->count_lo) {
  +     ++sha_info->count_hi;
  +    }
  +    sha_info->count_lo += (AP_LONG) count << 3;
  +    sha_info->count_hi += (AP_LONG) count >> 29;
  +    /* Is there a remainder of the previous Update operation? */
  +    if (sha_info->local) {
  +     i = SHA_BLOCKSIZE - sha_info->local;
  +     if (i > count) {
  +         i = count;
  +     }
  +     ebcdic2ascii_strictly(((AP_BYTE *) sha_info->data) + sha_info->local,
  +                           buffer, i);
  +     count -= i;
  +     buffer += i;
  +     sha_info->local += i;
  +     if (sha_info->local == SHA_BLOCKSIZE) {
  +         maybe_byte_reverse(sha_info->data, SHA_BLOCKSIZE);
  +         sha_transform(sha_info);
  +     }
  +     else {
  +         return;
  +     }
  +    }
  +    while (count >= SHA_BLOCKSIZE) {
  +     ebcdic2ascii_strictly((AP_BYTE *)sha_info->data, buffer, SHA_BLOCKSIZE);
  +     buffer += SHA_BLOCKSIZE;
  +     count -= SHA_BLOCKSIZE;
  +     maybe_byte_reverse(sha_info->data, SHA_BLOCKSIZE);
  +     sha_transform(sha_info);
  +    }
  +    ebcdic2ascii_strictly((AP_BYTE *)sha_info->data, buffer, count);
  +    sha_info->local = count;
  +#else
  +    ap_SHA1Update_binary(sha_info, (const unsigned char *) buf, count);
  +#endif
  +}
  +
   /* finish computing the SHA digest */
   
  -static void sha_final(SHA_INFO *sha_info)
  +API_EXPORT(void) ap_SHA1Final(unsigned char digest[SHA_DIGESTSIZE],
  +                              AP_SHA1_CTX *sha_info)
   {
  -    int count;
  -    AP_LONG lo_bit_count, hi_bit_count;
  +    int count, i, j;
  +    AP_LONG lo_bit_count, hi_bit_count, k;
   
       lo_bit_count = sha_info->count_lo;
       hi_bit_count = sha_info->count_hi;
  @@ -331,90 +345,39 @@
       sha_info->data[14] = hi_bit_count;
       sha_info->data[15] = lo_bit_count;
       sha_transform(sha_info);
  -}
  -
  -/*
  -   internally implemented as an array of longs, need to swap if 
  -   you're going to access the memory in the raw, instead of looping
  -   through with arrays of longs.
  -*/
  -
  -static void sha_raw_swap(SHA_INFO *sha_info)
  -{
  -    int i;
  -
  -    for (i = 0; i < 5; ++i) {
  -     maybe_byte_reverse((AP_LONG *) &sha_info->digest[i], 4);
  -    }
  -}
  -
  -static char basis_64[] =
  -  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  -
  -static void output64chunk(unsigned char c1, unsigned char c2, unsigned char 
c3,
  -                       int pads, unsigned char **outfile)
  -{
  -    *(*outfile)++ = basis_64[c1>>2];
  -
  -    *(*outfile)++ = basis_64[((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)];
  -    if (pads == 2) {
  -     *(*outfile)++ = '=';
  -     *(*outfile)++ = '=';
  -    }
  -    else if (pads) {
  -     *(*outfile)++ =  basis_64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)];
  -     *(*outfile)++ = '=';
  -    }
  -    else {
  -     *(*outfile)++ = basis_64[((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)];
  -     *(*outfile)++ = basis_64[c3 & 0x3F];
  -    }
  -}
  -
  -static void encode_mime64(unsigned char *in, unsigned char *out, int length)
  -{
  -    int diff, ct = 0;
   
  -    while ((diff = length - ct)) {
  -     if ( diff >= 3 ) {
  -         diff = 3;
  -         output64chunk(in[ct], in[ct+1], in[ct+2], 0, &out);
  -     }
  -     else if (diff == 2) {
  -         output64chunk(in[ct], in[ct+1], 0, 1, &out);
  -     }
  -     else if (diff == 1) {
  -         output64chunk(in[ct], 0, 0, 2, &out);
  -     }
  -     ct += diff;
  +    for (i = 0, j = 0; j < SHA_DIGESTSIZE; i++) {
  +     k = sha_info->digest[i];
  +     digest[j++] = (unsigned char) ((k >> 24) & 0xff);
  +     digest[j++] = (unsigned char) ((k >> 16) & 0xff);
  +     digest[j++] = (unsigned char) ((k >> 8) & 0xff);
  +     digest[j++] = (unsigned char) (k & 0xff);
       }
  -    *out++ = 0;
   }
   
  -/* {SHA} is the prefix used for base64 encoded sha1 in
  - * ldap data interchange format.
  - */
  -const char *sha1_id = "{SHA}";
   
   API_EXPORT(void) ap_sha1_base64(const char *clear, int len, char *out)
   {
  -    SHA_INFO context;
  +    int l;
  +    AP_SHA1_CTX context;
  +    AP_BYTE digest[SHA_DIGESTSIZE];
   
  -    if (!strncmp(clear, sha1_id, strlen(sha1_id))) {
  -     clear += strlen(sha1_id);
  +    if (strncmp(clear, AP_SHA1PW_ID, AP_SHA1PW_IDLEN) == 0) {
  +     clear += AP_SHA1PW_IDLEN;
       }
   
  -    sha_init(&context);
  -    sha_update(&context, clear, len);
  -    sha_final(&context);
  -
  -    sha_raw_swap(&context);
  +    ap_SHA1Init(&context);
  +    ap_SHA1Update(&context, clear, len);
  +    ap_SHA1Final(digest, &context);
   
       /* private marker. */
  -    strcpy(out, sha1_id);
  +    ap_cpystrn(out, AP_SHA1PW_ID, AP_SHA1PW_IDLEN + 1);
   
       /* SHA1 hash is always 20 chars */
  -    encode_mime64((char *)context.digest, out+strlen(sha1_id), 20);
  -    /* output of MIME Base 64 encoded SHA1 is always
  -     * 28 characters + strlen(sha1_id) */
  +    l = ap_base64encode_binary(out + AP_SHA1PW_IDLEN, digest, 
sizeof(digest));
  +    out[l + AP_SHA1PW_IDLEN] = '\0';
  +
  +    /*
  +     * output of base64 encoded SHA1 is always 28 chars + AP_SHA1PW_IDLEN
  +     */
   }
  
  
  
  1.2       +5 -0      apache-2.0/mpm/src/ap/ap_snprintf.c
  
  Index: ap_snprintf.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/ap/ap_snprintf.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- ap_snprintf.c     1999/06/18 18:39:24     1.1
  +++ ap_snprintf.c     1999/08/17 20:57:48     1.2
  @@ -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.1                  apache-2.0/mpm/src/ap/ap_base64.c
  
  Index: ap_base64.c
  ===================================================================
  /* ====================================================================
   * Copyright (c) 1995-1999 The Apache Group.  All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. All advertising materials mentioning features or use of this
   *    software must display the following acknowledgment:
   *    "This product includes software developed by the Apache Group
   *    for use in the Apache HTTP server project (http://www.apache.org/)."
   *
   * 4. The names "Apache Server" and "Apache Group" must not be used to
   *    endorse or promote products derived from this software without
   *    prior written permission. For written permission, please contact
   *    [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * 6. Redistributions of any form whatsoever must retain the following
   *    acknowledgment:
   *    "This product includes software developed by the Apache Group
   *    for use in the Apache HTTP server project (http://www.apache.org/)."
   *
   * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
   * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
   * OF THE POSSIBILITY OF SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Group and was originally based
   * on public domain software written at the National Center for
   * Supercomputing Applications, University of Illinois, Urbana-Champaign.
   * For more information on the Apache Group and the Apache HTTP server
   * project, please see <http://www.apache.org/>.
   *
   */
  
  /* base64 encoder/decoder. Originally part of main/util.c
   * but moved here so that support/ab and ap_sha1.c could
   * use it. This meant removing the ap_palloc()s and adding
   * ugly 'len' functions, which is quite a nasty cost.
   */
  
  #include <string.h>
  
  #include "ap_config.h"
  #include "ap.h"
  
  #ifdef CHARSET_EBCDIC
  #include "ebcdic.h"
  #endif                                /* CHARSET_EBCDIC */
  
  /* aaaack but it's fast and const should make it shared text page. */
  static const unsigned char pr2six[256] =
  {
  #ifndef CHARSET_EBCDIC
      /* ASCII table */
      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
  #else /*CHARSET_EBCDIC*/
      /* EBCDIC table */
      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, 62, 64,
      64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
      64, 63, 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, 26, 27, 28, 29, 30, 31, 32, 33, 34, 64, 64, 64, 64, 64, 64,
      64, 35, 36, 37, 38, 39, 40, 41, 42, 43, 64, 64, 64, 64, 64, 64,
      64, 64, 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,  0,  1,  2,  3,  4,  5,  6,  7,  8, 64, 64, 64, 64, 64, 64,
      64,  9, 10, 11, 12, 13, 14, 15, 16, 17, 64, 64, 64, 64, 64, 64,
      64, 64, 18, 19, 20, 21, 22, 23, 24, 25, 64, 64, 64, 64, 64, 64,
      52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 64, 64, 64, 64, 64, 64
  #endif /*CHARSET_EBCDIC*/
  };
  
  API_EXPORT(int) ap_base64decode_len(const char *bufcoded)
  {
      int nbytesdecoded;
      register const unsigned char *bufin;
      register int nprbytes;
  
      bufin = (const unsigned char *) bufcoded;
      while (pr2six[*(bufin++)] <= 63);
  
      nprbytes = (bufin - (const unsigned char *) bufcoded) - 1;
      nbytesdecoded = ((nprbytes + 3) / 4) * 3;
  
      return nbytesdecoded + 1;
  }
  
  API_EXPORT(int) ap_base64decode(char *bufplain, const char *bufcoded)
  {
  #ifdef CHARSET_EBCDIC
      int i;
  #endif                                /* CHARSET_EBCDIC */
      int len;
      
      len = ap_base64decode_binary((unsigned char *) bufplain, bufcoded);
  #ifdef CHARSET_EBCDIC
      for (i = 0; i < len; i++)
        bufplain[i] = os_toebcdic[bufplain[i]];
  #endif                                /* CHARSET_EBCDIC */
      return len;
  }
  
  /* This is the same as ap_base64udecode() except on EBCDIC machines, where
   * the conversion of the output to ebcdic is left out.
   */
  API_EXPORT(int) ap_base64decode_binary(unsigned char *bufplain,
                                   const char *bufcoded)
  {
      int nbytesdecoded;
      register const unsigned char *bufin;
      register unsigned char *bufout;
      register int nprbytes;
  
      bufin = (const unsigned char *) bufcoded;
      while (pr2six[*(bufin++)] <= 63);
      nprbytes = (bufin - (const unsigned char *) bufcoded) - 1;
      nbytesdecoded = ((nprbytes + 3) / 4) * 3;
  
      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]]);
      }
  
      *(bufout++) = '\0';
      nbytesdecoded -= (4 - nprbytes) & 3;
      return nbytesdecoded;
  }
  
  static const char basis_64[] =
      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  
  API_EXPORT(int) ap_base64encode_len(int len)
  {
      return ((len + 2) / 3 * 4) + 1;
  }
  
  API_EXPORT(int) ap_base64encode(char *encoded, const char *string, int len)
  {
  #ifndef CHARSET_EBCDIC
      return ap_base64encode_binary(encoded, (const unsigned char *) string, 
len);
  #else                         /* CHARSET_EBCDIC */
      int i;
      char *p;
  
      p = encoded;
      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];
        if (i == (len - 1)) {
            *p++ = basis_64[((os_toascii[string[i]] & 0x3) << 4)];
            *p++ = '=';
        }
        else {
            *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)];
        }
        *p++ = '=';
      }
  
      *p++ = '\0';
      return p - encoded;
  #endif                                /* CHARSET_EBCDIC */
  }
  
  /* This is the same as ap_base64encode() except on EBCDIC machines, where
   * the conversion of the input to ascii is left out.
   */
  API_EXPORT(int) ap_base64encode_binary(char *encoded,
                                         const unsigned char *string, int len)
  {
      int i;
      char *p;
  
      p = encoded;
      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];
        if (i == (len - 1)) {
            *p++ = basis_64[((string[i] & 0x3) << 4)];
            *p++ = '=';
        }
        else {
            *p++ = basis_64[((string[i] & 0x3) << 4) |
                            ((int) (string[i + 1] & 0xF0) >> 4)];
            *p++ = basis_64[((string[i + 1] & 0xF) << 2)];
        }
        *p++ = '=';
      }
  
      *p++ = '\0';
      return p - encoded;
  }
  
  
  
  1.3       +9 -2      apache-2.0/mpm/src/helpers/GuessOS
  
  Index: GuessOS
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/helpers/GuessOS,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- GuessOS   1999/08/06 00:54:11     1.2
  +++ GuessOS   1999/08/17 20:58:11     1.3
  @@ -198,8 +198,15 @@
        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:*)
  
  
  
  1.2       +6 -5      apache-2.0/mpm/src/helpers/binbuild.sh
  
  Index: binbuild.sh
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/helpers/binbuild.sh,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- binbuild.sh       1999/06/18 18:39:26     1.1
  +++ binbuild.sh       1999/08/17 20:58:16     1.2
  @@ -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.2       +11 -0     apache-2.0/mpm/src/helpers/find-dbm-lib
  
  Index: find-dbm-lib
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/helpers/find-dbm-lib,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- find-dbm-lib      1999/06/18 18:39:27     1.1
  +++ find-dbm-lib      1999/08/17 20:58:20     1.2
  @@ -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.3       +24 -0     apache-2.0/mpm/src/include/ap.h
  
  Index: ap.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/include/ap.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- ap.h      1999/08/06 00:54:16     1.2
  +++ ap.h      1999/08/17 20:58:32     1.3
  @@ -161,6 +161,30 @@
                            __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.6       +28 -5     apache-2.0/mpm/src/include/ap_config.h
  
  Index: ap_config.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/include/ap_config.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -d -u -r1.5 -r1.6
  --- ap_config.h       1999/08/12 08:11:44     1.5
  +++ ap_config.h       1999/08/17 20:58:35     1.6
  @@ -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;
  @@ -991,7 +1014,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
  
  
  
  1.3       +6 -1      apache-2.0/mpm/src/include/ap_md5.h
  
  Index: ap_md5.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/include/ap_md5.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- ap_md5.h  1999/08/06 00:54:17     1.2
  +++ ap_md5.h  1999/08/17 20:58:36     1.3
  @@ -104,7 +104,12 @@
       unsigned char buffer[64];        /* input buffer */
   } AP_MD5_CTX;
   
  -extern const char *apr1_id;          /* MD5 passwd marker string */
  +/*
  + * 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,
  
  
  
  1.3       +10 -4     apache-2.0/mpm/src/include/ap_mmn.h
  
  Index: ap_mmn.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/include/ap_mmn.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- ap_mmn.h  1999/08/06 00:54:17     1.2
  +++ ap_mmn.h  1999/08/17 20:58:37     1.3
  @@ -217,9 +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()
  - * 19990621.5           - add local_ip/host to conn_rec for mass-vhost
  + * 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" */
  @@ -227,7 +233,7 @@
   #ifndef MODULE_MAGIC_NUMBER_MAJOR
   #define MODULE_MAGIC_NUMBER_MAJOR 19990320
   #endif
  -#define MODULE_MAGIC_NUMBER_MINOR 5                     /* 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.2       +27 -19    apache-2.0/mpm/src/include/ap_sha1.h
  
  Index: ap_sha1.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/include/ap_sha1.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- ap_sha1.h 1999/08/06 00:54:18     1.1
  +++ ap_sha1.h 1999/08/17 20:58:38     1.2
  @@ -58,23 +58,6 @@
    *   from Peter C. Gutmann's implementation as found in
    *   Applied Cryptography by Bruce Schneier
    *   This code is hereby placed in the public domain
  - *
  - * MIME Base 64 encoding based on src/metamail/codes.c in metamail,
  - *   available at: ftp://thumper.bellcore.com/pub/nsb/
  - *
  - * Metamail's copyright is:
  - *   Copyright (c) 1991 Bell Communications Research, Inc. (Bellcore)
  - * 
  - *   Permission to use, copy, modify, and distribute this material 
  - *   for any purpose and without fee is hereby granted, provided 
  - *   that the above copyright notice and this permission notice 
  - *   appear in all copies, and that the name of Bellcore not be 
  - *   used in advertising or publicity pertaining to this 
  - *   material without the specific, prior written permission 
  - *   of an authorized representative of Bellcore.  BELLCORE 
  - *   MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY 
  - *   OF THIS MATERIAL FOR ANY PURPOSE.  IT IS PROVIDED "AS IS", 
  - *   WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
    */
   
   #ifndef APACHE_SHA1_H
  @@ -84,11 +67,36 @@
   extern "C" {
   #endif
   
  -extern const char *sha1_id;  /* passwd prefix marker for SHA1 */
  +#define SHA_DIGESTSIZE 20
  +
  +/*
  + * Define the Magic String prefix that identifies a password as being
  + * hashed using our algorithm.
  + */
  +#define AP_SHA1PW_ID "{SHA}"
  +#define AP_SHA1PW_IDLEN 5
  +
  +typedef unsigned long AP_LONG;     /* a 32-bit quantity */
  +
  +typedef struct {
  +    AP_LONG digest[5];             /* message digest */
  +    AP_LONG count_lo, count_hi;    /* 64-bit bit count */
  +    AP_LONG data[16];              /* SHA data buffer */
  +    int local;                     /* unprocessed amount in data */
  +} AP_SHA1_CTX;
  +
   API_EXPORT(void) ap_sha1_base64(const char *clear, int len, char *out);
  +API_EXPORT(void) ap_SHA1Init(AP_SHA1_CTX *context);
  +API_EXPORT(void) ap_SHA1Update(AP_SHA1_CTX *context, const char *input,
  +                            unsigned int inputLen);
  +API_EXPORT(void) ap_SHA1Update_binary(AP_SHA1_CTX *context,
  +                                   const unsigned char *input,
  +                                   unsigned int inputLen);
  +API_EXPORT(void) ap_SHA1Final(unsigned char digest[SHA_DIGESTSIZE],
  +                              AP_SHA1_CTX *context);
   
   #ifdef __cplusplus
   }
   #endif
   
  -#endif       /* !APACHE_MD5_H */
  +#endif       /* !APACHE_SHA1_H */
  
  
  
  1.13      +5 -2      apache-2.0/mpm/src/include/httpd.h
  
  Index: httpd.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/include/httpd.h,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -d -u -r1.12 -r1.13
  --- httpd.h   1999/08/13 06:57:33     1.12
  +++ httpd.h   1999/08/17 20:58:39     1.13
  @@ -405,7 +405,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 10308000
  +#define APACHE_RELEASE 10309100
   
   #define SERVER_PROTOCOL "HTTP/1.1"
   #ifndef SERVER_SUPPORT
  @@ -951,8 +951,11 @@
   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);
  
  
  
  1.23      +1 -0      apache-2.0/mpm/src/main/http_config.c
  
  Index: http_config.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/main/http_config.c,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -d -u -r1.22 -r1.23
  --- http_config.c     1999/08/15 00:11:11     1.22
  +++ http_config.c     1999/08/17 20:58:51     1.23
  @@ -471,6 +471,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.24      +3 -3      apache-2.0/mpm/src/main/http_core.c
  
  Index: http_core.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/main/http_core.c,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -d -u -r1.23 -r1.24
  --- http_core.c       1999/08/17 20:07:46     1.23
  +++ http_core.c       1999/08/17 20:58:53     1.24
  @@ -2442,14 +2442,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,
  @@ -2606,7 +2606,7 @@
   #ifdef USE_MMAP_FILES
       }
       else {
  -     struct mmap *mmd;
  +     struct mmap_rec *mmd;
   
        mmd = ap_palloc(r->pool, sizeof(*mmd));
        mmd->mm = mm;
  
  
  
  1.9       +16 -2     apache-2.0/mpm/src/main/http_main.c
  
  Index: http_main.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/main/http_main.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -d -u -r1.8 -r1.9
  --- http_main.c       1999/08/06 00:54:30     1.8
  +++ http_main.c       1999/08/17 20:58:54     1.9
  @@ -209,7 +209,7 @@
       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");
  @@ -226,7 +226,8 @@
       fprintf(stderr, "  -L               : list available configuration 
directives\n");
       /* TODOC: -S has been replaced by '-t -D DUMP_VHOSTS' */
       /* 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");
       /* TODOC: -X goes away, expect MPMs to use -D options */
       exit(1);
   }
  @@ -350,3 +351,16 @@
       ap_destroy_pool(pglobal);
       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
  +
  
  
  
  1.16      +17 -24    apache-2.0/mpm/src/main/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/main/http_protocol.c,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -d -u -r1.15 -r1.16
  --- http_protocol.c   1999/08/06 00:54:31     1.15
  +++ http_protocol.c   1999/08/17 20:58:55     1.16
  @@ -974,7 +974,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_run_log_transaction(r);
               return r;
           }
  @@ -990,7 +989,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_run_log_transaction(r);
               return r;
           }
  @@ -1008,7 +1006,6 @@
               r->header_only = 0;
               r->status = HTTP_BAD_REQUEST;
               ap_send_error_response(r, 0);
  -            ap_rflush(r);
               ap_run_log_transaction(r);
               return r;
           }
  @@ -1041,7 +1038,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_run_log_transaction(r);
           return r;
       }
  @@ -1062,7 +1058,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_run_log_transaction(r);
               return r;
  @@ -1176,7 +1171,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.
  @@ -2457,24 +2458,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;
  @@ -2489,6 +2479,7 @@
   
           if (r->header_only) {
               ap_finalize_request_protocol(r);
  +            ap_rflush(r);
               return;
           }
       }
  @@ -2509,6 +2500,7 @@
           if (custom_response[0] == '\"') {
               ap_rputs(custom_response + 1, r);
               ap_finalize_request_protocol(r);
  +            ap_rflush(r);
               return;
           }
           /*
  @@ -2771,6 +2763,7 @@
           ap_rputs("</BODY></HTML>\n", r);
       }
       ap_finalize_request_protocol(r);
  +    ap_rflush(r);
   }
   
   IMPLEMENT_HOOK_RUN_ALL(int,post_read_request,(request_rec 
*r),(r),OK,DECLINED)
  
  
  
  1.5       +30 -154   apache-2.0/mpm/src/main/util.c
  
  Index: util.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/main/util.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -d -u -r1.4 -r1.5
  --- util.c    1999/08/06 00:54:33     1.4
  +++ util.c    1999/08/17 20:58:56     1.5
  @@ -1986,167 +1986,43 @@
       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)
  
  
  
  1.3       +1 -1      apache-2.0/mpm/src/main/util_script.c
  
  Index: util_script.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/main/util_script.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- util_script.c     1999/08/06 00:54:34     1.2
  +++ util_script.c     1999/08/17 20:58:57     1.3
  @@ -971,7 +971,7 @@
               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)) {
               if (fileType == eFileTypeEXE16) {
  
  
  
  1.2       +9 -0      apache-2.0/mpm/src/modules/experimental/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/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/06/18 18:39:33     1.1
  +++ Makefile.tmpl     1999/08/17 20:59:14     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.1                  apache-2.0/mpm/src/modules/experimental/mod_auth_digest.c
  
        <<Binary file>>
  
  
  1.2       +1 -1      apache-2.0/mpm/src/modules/proxy/proxy_ftp.c
  
  Index: proxy_ftp.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/proxy/proxy_ftp.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- proxy_ftp.c       1999/06/18 18:39:34     1.1
  +++ proxy_ftp.c       1999/08/17 20:59:19     1.2
  @@ -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.17      +1 -1      apache-2.0/mpm/src/modules/standard/mod_access.c
  
  Index: mod_access.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/standard/mod_access.c,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -d -u -r1.16 -r1.17
  --- mod_access.c      1999/08/17 20:07:47     1.16
  +++ mod_access.c      1999/08/17 20:59:22     1.17
  @@ -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.2       +3 -3      apache-2.0/mpm/src/modules/standard/mod_unique_id.c
  
  Index: mod_unique_id.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/standard/mod_unique_id.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- mod_unique_id.c   1999/06/18 18:39:39     1.1
  +++ mod_unique_id.c   1999/08/17 20:59:23     1.2
  @@ -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       +4 -1      apache-2.0/mpm/src/os/unix/os.c
  
  Index: os.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/os/unix/os.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- os.c      1999/06/18 18:39:43     1.1
  +++ os.c      1999/08/17 20:59:27     1.2
  @@ -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.4       +4 -2      apache-2.0/mpm/src/os/unix/unixd.c
  
  Index: unixd.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/os/unix/unixd.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -d -u -r1.3 -r1.4
  --- unixd.c   1999/08/13 21:54:03     1.3
  +++ unixd.c   1999/08/17 20:59:29     1.4
  @@ -198,7 +198,8 @@
        if (setuid(unixd_config.user_id) == -1) {
            GETUSERMODE();
            ap_log_error(APLOG_MARK, APLOG_ALERT, NULL,
  -                     "setuid: unable to change to uid: %d", 
unixd_config.user_id);
  +                     "setuid: unable to change to uid: %ld",
  +                        (long) unixd_config.user_id);
            exit(1);
        }
        GETUSERMODE();
  @@ -211,7 +212,8 @@
   #endif
        setuid(unixd_config.user_id) == -1)) {
        ap_log_error(APLOG_MARK, APLOG_ALERT, NULL,
  -                 "setuid: unable to change to uid: %d", 
unixd_config.user_id);
  +                 "setuid: unable to change to uid: %ld",
  +                    (long) unixd_config.user_id);
        return -1;
       }
   #endif
  
  
  
  1.3       +1 -1      apache-2.0/mpm/src/os/win32/registry.c
  
  Index: registry.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/os/win32/registry.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- registry.c        1999/08/06 00:55:37     1.2
  +++ registry.c        1999/08/17 20:59:33     1.3
  @@ -38,7 +38,7 @@
   
   #define VENDOR   "Apache Group"
   #define SOFTWARE "Apache"
  -#define VERSION  "1.3.8 dev"
  +#define VERSION  "1.3.9"
   
   #define REGKEY "SOFTWARE\\" VENDOR "\\" SOFTWARE "\\" VERSION
   
  
  
  
  1.2       +28 -29    
apache-2.0/mpm/src/os/win32/installer/installdll/install.c
  
  Index: install.c
  ===================================================================
  RCS file: 
/home/cvs/apache-2.0/mpm/src/os/win32/installer/installdll/install.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- install.c 1999/06/18 18:39:55     1.1
  +++ install.c 1999/08/17 20:59:41     1.2
  @@ -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.3       +1 -1      apache-2.0/mpm/src/support/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/support/Makefile.tmpl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- Makefile.tmpl     1999/08/06 00:55:45     1.2
  +++ Makefile.tmpl     1999/08/17 20:59:51     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
   
  
  
  
  1.3       +19 -57    apache-2.0/mpm/src/support/ab.c
  
  Index: ab.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/support/ab.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- ab.c      1999/08/06 00:55:47     1.2
  +++ ab.c      1999/08/17 20:59:52     1.3
  @@ -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
  @@ -1021,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 = "";
  @@ -1064,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.3       +11 -9     apache-2.0/mpm/src/support/htpasswd.c
  
  Index: htpasswd.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/support/htpasswd.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- htpasswd.c        1999/08/06 00:55:53     1.2
  +++ htpasswd.c        1999/08/17 20:59:53     1.3
  @@ -181,7 +181,7 @@
            return ERR_PWMISMATCH;
        }
        pw = pwin;
  -        bzero(pwv,sizeof(pwin));
  +        memset(pwv, '\0', sizeof(pwin));
       }
       switch (alg) {
   
  @@ -213,7 +213,7 @@
        ap_cpystrn(cpw, (char *)crypt(pw, salt), sizeof(cpw) - 1);
        break;
       }
  -    bzero(pw,strlen(pw));
  +    memset(pw, '\0', strlen(pw));
   
       /*
        * Check to see if the buffer is large enough to hold the username,
  @@ -242,15 +242,17 @@
        ".\n");
       fprintf(stderr, " -d  Force CRYPT encryption of the password"
   #if (!(defined(WIN32) || defined(TPF)))
  -     " (default)"
  +         " (default)"
   #endif
  -     ".\n");
  -    fprintf(stderr, " -p  Force NO encryption of the password.\n");
  +         ".\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 ");
  -    fprintf(stderr, "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' will propably not 
work.\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;
   }
   
  
  
  
  1.3       +11 -0     apache-2.0/mpm/src/support/httpd.8
  
  Index: httpd.8
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/support/httpd.8,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- httpd.8   1999/08/06 00:55:54     1.2
  +++ httpd.8   1999/08/17 20:59:55     1.3
  @@ -92,6 +92,12 @@
   [
   .B \-S
   ] 
  +[
  +.B \-t
  +] 
  +[
  +.B \-T
  +]
   
   .SH DESCRIPTION
   .B httpd
  @@ -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.3       +13 -0     apache-2.0/mpm/src/support/httpd.exp
  
  Index: httpd.exp
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/support/httpd.exp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- httpd.exp 1999/08/06 00:55:54     1.2
  +++ httpd.exp 1999/08/17 20:59:56     1.3
  @@ -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
  @@ -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,6 +319,7 @@
   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
  
  
  
  1.2       +2 -2      apache-2.0/mpm/src/test/check_chunked
  
  Index: check_chunked
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/test/check_chunked,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- check_chunked     1999/06/18 18:39:59     1.1
  +++ check_chunked     1999/08/17 21:00:07     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);
   
  
  
  

Reply via email to