You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2001/01/24 20:29:26 UTC

cvs commit: apache-1.3/src/lib/sdbm sdbm.h

wrowe       01/01/24 11:29:26

  Modified:    src      CHANGES
               src/lib/sdbm sdbm.h
  Log:
    Sync sdbm.h with Perl for Win32 mod_auth_dbm.  Note that this makes the
    bundled sdbm incompatible with DAV's large dbm record requirements.
  
  Revision  Changes    Path
  1.1625    +5 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1624
  retrieving revision 1.1625
  diff -u -r1.1624 -r1.1625
  --- CHANGES	2001/01/24 16:54:07	1.1624
  +++ CHANGES	2001/01/24 19:29:22	1.1625
  @@ -1,5 +1,10 @@
   Changes with Apache 1.3.17
   
  +  *) Fixed the sdbm.h bundled in Apache for Win32, bringing it in sync
  +     with Perl.  Because it didn't have the same geometry as Perl, 
  +     users reported the first user added with dbmmanage was not 
  +     recognized.  [William Rowe]
  +
     *) Fixed ap_os_canonical_filename to append a the default volume 
        name if the the path is a full path and does not include the
        volume name.  Since NetWare's current working directory always 
  
  
  
  1.2       +5 -7      apache-1.3/src/lib/sdbm/sdbm.h
  
  Index: sdbm.h
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/lib/sdbm/sdbm.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- sdbm.h	2000/09/21 13:06:14	1.1
  +++ sdbm.h	2001/01/24 19:29:25	1.2
  @@ -4,16 +4,14 @@
    * author: oz@nexus.yorku.ca
    * status: public domain. 
    */
  -/* increase the block/page size and what can be inserted */
  -#if 1
  -#define DBLKSIZ 16384
  -#define PBLKSIZ 8192
  -#define PAIRMAX 8008			/* arbitrary on PBLKSIZ-N */
  -#else
  +
  +/* These settings are -incompatible- with mod_dav [www.webdav.org/mod_dav/]
  + * but are required for compatibility with mod_auth_dbm.  Do not link this 
  + * build of sdbm into mod_dav and expect success, dav requires big records.
  + */
   #define DBLKSIZ 4096
   #define PBLKSIZ 1024
   #define PAIRMAX 1008			/* arbitrary on PBLKSIZ-N */
  -#endif
   #define SPLTMAX	10			/* maximum allowed splits */
   					/* for a single insertion */
   #define DIRFEXT	".dir"
  
  
  

Re: cvs commit: apache-1.3/src/lib/sdbm sdbm.h

Posted by Greg Stein <gs...@lyra.org>.
We've actually been talking about this one on the mod_dav mailing list (a
user of mod_dav 1.0 was trying to use Perl to examine the property files).

Similar to mod_ssl, I changed the "geometry" (great word) of the files to
allow for larger properties. (I dunno what mod_ssl stores in there, but Ralf
increased the size, too). This was the right solution, and I wasn't worried
about Perl compatibility.

sdbm was added to Apache 1.3 by OtherBill so that mod_auth_dbm could be used
on Windows (sdbm is *not* built into the non-Windows Apache 1.3 builds, and
I think it should stay that way). Since it is only used for passwords, it is
fine for it to have the same geometry as Perl. There isn't a need for larger
records. And mod_dav 1.0 will always use its bundled copy.

For Apache 2.0, we have a different story. My first reaction is to say,
"hell yah: make the settings the same as Perl. If a DAV user wants larger
properties, apr_dbm makes it *real* easy for them to switch to gdbm or db3
or *anything* that is much more flexible." But then I pause... mod_dav 1.0
users' property files will be incompatible.

I believe the right answer for Apache 2.0 is twofold:

1) align the SDBM geometry with Perl
2) mod_dav 1.0 will grow a tool to dump prop dbs in a neutral format; Apache
   2.0 can import this neutral format into an apr_dbm database (whichever
   form is selected)
   [ mod_dav 1.0 is going to have a new release in the next month, so this
     works fine; the dump/load tools are a variant of apr-util/tests/testdbm
     which has been suggested as a rename to apr-util/tools/something ]

Does that approach seem reasonable?

Cheers,
-g

On Sun, Feb 25, 2001 at 04:40:10PM -0600, William A. Rowe, Jr. wrote:
> This patch must be brought over to 2.0 --- however I half expect it to entirely
> break DAV.  Greg or some other DAV folk, could you comment?
> 
> The patch made sdbm compatible with sdbm.  We can either get this right or someone
> can implement dbmmanage in c.  That still leaves Apache:: perl package users with
> a terribly broken dbm user file mechanism.
> 
> > wrowe       01/01/24 11:29:26
> > 
> >   Modified:    src      CHANGES
> >                src/lib/sdbm sdbm.h
> >   Log:
> >     Sync sdbm.h with Perl for Win32 mod_auth_dbm.  Note that this makes the
> >     bundled sdbm incompatible with DAV's large dbm record requirements.
> >   
> >   Revision  Changes    Path
> >   1.1625    +5 -0      apache-1.3/src/CHANGES
> >   
> >   Index: CHANGES
> >   ===================================================================
> >   RCS file: /home/cvs/apache-1.3/src/CHANGES,v
> >   retrieving revision 1.1624
> >   retrieving revision 1.1625
> >   diff -u -r1.1624 -r1.1625
> >   --- CHANGES 2001/01/24 16:54:07 1.1624
> >   +++ CHANGES 2001/01/24 19:29:22 1.1625
> >   @@ -1,5 +1,10 @@
> >    Changes with Apache 1.3.17
> >    
> >   +  *) Fixed the sdbm.h bundled in Apache for Win32, bringing it in sync
> >   +     with Perl.  Because it didn't have the same geometry as Perl, 
> >   +     users reported the first user added with dbmmanage was not 
> >   +     recognized.  [William Rowe]
> >   +
> >      *) Fixed ap_os_canonical_filename to append a the default volume 
> >         name if the the path is a full path and does not include the
> >         volume name.  Since NetWare's current working directory always 
> >   
> >   
> >   
> >   1.2       +5 -7      apache-1.3/src/lib/sdbm/sdbm.h
> >   
> >   Index: sdbm.h
> >   ===================================================================
> >   RCS file: /home/cvs/apache-1.3/src/lib/sdbm/sdbm.h,v
> >   retrieving revision 1.1
> >   retrieving revision 1.2
> >   diff -u -r1.1 -r1.2
> >   --- sdbm.h 2000/09/21 13:06:14 1.1
> >   +++ sdbm.h 2001/01/24 19:29:25 1.2
> >   @@ -4,16 +4,14 @@
> >     * author: oz@nexus.yorku.ca
> >     * status: public domain. 
> >     */
> >   -/* increase the block/page size and what can be inserted */
> >   -#if 1
> >   -#define DBLKSIZ 16384
> >   -#define PBLKSIZ 8192
> >   -#define PAIRMAX 8008 /* arbitrary on PBLKSIZ-N */
> >   -#else
> >   +
> >   +/* These settings are -incompatible- with mod_dav [www.webdav.org/mod_dav/]
> >   + * but are required for compatibility with mod_auth_dbm.  Do not link this 
> >   + * build of sdbm into mod_dav and expect success, dav requires big records.
> >   + */
> >    #define DBLKSIZ 4096
> >    #define PBLKSIZ 1024
> >    #define PAIRMAX 1008 /* arbitrary on PBLKSIZ-N */
> >   -#endif
> >    #define SPLTMAX 10 /* maximum allowed splits */
> >    /* for a single insertion */
> >    #define DIRFEXT ".dir"
> >   
> >   
> >   
> > 

-- 
Greg Stein, http://www.lyra.org/

Re: cvs commit: apache-1.3/src/lib/sdbm sdbm.h

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
This patch must be brought over to 2.0 --- however I half expect it to entirely
break DAV.  Greg or some other DAV folk, could you comment?

The patch made sdbm compatible with sdbm.  We can either get this right or someone
can implement dbmmanage in c.  That still leaves Apache:: perl package users with
a terribly broken dbm user file mechanism.

> wrowe       01/01/24 11:29:26
> 
>   Modified:    src      CHANGES
>                src/lib/sdbm sdbm.h
>   Log:
>     Sync sdbm.h with Perl for Win32 mod_auth_dbm.  Note that this makes the
>     bundled sdbm incompatible with DAV's large dbm record requirements.
>   
>   Revision  Changes    Path
>   1.1625    +5 -0      apache-1.3/src/CHANGES
>   
>   Index: CHANGES
>   ===================================================================
>   RCS file: /home/cvs/apache-1.3/src/CHANGES,v
>   retrieving revision 1.1624
>   retrieving revision 1.1625
>   diff -u -r1.1624 -r1.1625
>   --- CHANGES 2001/01/24 16:54:07 1.1624
>   +++ CHANGES 2001/01/24 19:29:22 1.1625
>   @@ -1,5 +1,10 @@
>    Changes with Apache 1.3.17
>    
>   +  *) Fixed the sdbm.h bundled in Apache for Win32, bringing it in sync
>   +     with Perl.  Because it didn't have the same geometry as Perl, 
>   +     users reported the first user added with dbmmanage was not 
>   +     recognized.  [William Rowe]
>   +
>      *) Fixed ap_os_canonical_filename to append a the default volume 
>         name if the the path is a full path and does not include the
>         volume name.  Since NetWare's current working directory always 
>   
>   
>   
>   1.2       +5 -7      apache-1.3/src/lib/sdbm/sdbm.h
>   
>   Index: sdbm.h
>   ===================================================================
>   RCS file: /home/cvs/apache-1.3/src/lib/sdbm/sdbm.h,v
>   retrieving revision 1.1
>   retrieving revision 1.2
>   diff -u -r1.1 -r1.2
>   --- sdbm.h 2000/09/21 13:06:14 1.1
>   +++ sdbm.h 2001/01/24 19:29:25 1.2
>   @@ -4,16 +4,14 @@
>     * author: oz@nexus.yorku.ca
>     * status: public domain. 
>     */
>   -/* increase the block/page size and what can be inserted */
>   -#if 1
>   -#define DBLKSIZ 16384
>   -#define PBLKSIZ 8192
>   -#define PAIRMAX 8008 /* arbitrary on PBLKSIZ-N */
>   -#else
>   +
>   +/* These settings are -incompatible- with mod_dav [www.webdav.org/mod_dav/]
>   + * but are required for compatibility with mod_auth_dbm.  Do not link this 
>   + * build of sdbm into mod_dav and expect success, dav requires big records.
>   + */
>    #define DBLKSIZ 4096
>    #define PBLKSIZ 1024
>    #define PAIRMAX 1008 /* arbitrary on PBLKSIZ-N */
>   -#endif
>    #define SPLTMAX 10 /* maximum allowed splits */
>    /* for a single insertion */
>    #define DIRFEXT ".dir"
>   
>   
>   
>