ok here's the simple patch at the 2.0.x level that just checks platforms for htdbm.c
Also appended is the semi-related patch for htpasswd.c that adds TPF to the platforms checked in 2 cases where its missed, which seems like an oversight. =================================================================== --- htdbm.c (revision 521875) +++ htdbm.c (working copy) @@ -66,7 +66,7 @@ #define ALG_APMD5 1 #define ALG_APSHA 2 -#if APR_HAVE_CRYPT_H +#if (!(defined(WIN32) || defined(TPF) || defined(NETWARE))) #define ALG_CRYPT 3 #endif @@ -309,7 +309,7 @@ /* XXX this len limitation is not in sync with any HTTPd len. */ apr_cpystrn(cpw,htdbm->userpass,sizeof(cpw)); break; -#if APR_HAVE_CRYPT_H +#if (!(defined(WIN32) || defined(TPF) || defined(NETWARE))) case ALG_CRYPT: (void) srand((int) time((time_t *) NULL)); to64(&salt[0], rand(), 8); @@ -340,7 +340,7 @@ static void htdbm_usage(void) { -#if APR_HAVE_CRYPT_H +#if (!(defined(WIN32) || defined(TPF) || defined(NETWARE))) #define CRYPT_OPTION "d" #else #define CRYPT_OPTION "" @@ -360,7 +360,7 @@ fprintf(stderr, " -c Create a new database.\n"); fprintf(stderr, " -n Don't update database; display results on stdout.\n"); fprintf(stderr, " -m Force MD5 encryption of the password (default).\n"); -#if APR_HAVE_CRYPT_H +#if (!(defined(WIN32) || defined(TPF) || defined(NETWARE))) fprintf(stderr, " -d Force CRYPT encryption of the password (now deprecated).\n"); #endif fprintf(stderr, " -p Do not encrypt the password (plaintext).\n"); @@ -467,7 +467,7 @@ case 's': h->alg = ALG_APSHA; break; -#if APR_HAVE_CRYPT_H +#if (!(defined(WIN32) || defined(TPF) || defined(NETWARE))) case 'd': h->alg = ALG_CRYPT; break; On 3/23/07, Jeff Trawick <[EMAIL PROTECTED]> wrote:
On 3/20/07, William A. Rowe, Jr. <[EMAIL PROTECTED]> wrote: > Jeff Trawick wrote: > > On 3/20/07, William A. Rowe, Jr. <[EMAIL PROTECTED]> wrote: > >> httpd does not ;-) > > > > httpd the project (vs. apr, apr-util), not httpd the program (vs. > > htdbm, htpasswd) > > > > as in "In httpd, we don't call crypt(), we call APR..." > > So... what I suggest is; > > 1. use the same test from htpasswd to determine if crypt is used for > htdbm from 2.0 - 2.2-branch. E.g. which platforms? > > 2. use the APR_HAVE_CRYPT_H just to decide to include crypt.h, and the > UNISTD test for unistd.h. > > 3. for trunk (2.4) forwards, add a new macro to APR trunk (1.3.x) that > would 'reveal' if apr_password_* API's include crypt() support. > > Does that sound sane? sounds sane to me... looking for crypt() (issue #1) is cuter, but as it isn't the perfect solution anyway (issue #4) then don't bother with something that has a remote potential of hiding crypt() from somebody who has it today
htdbm.checkplatforms.patch
Description: Binary data
htpasswd.missingTPF.patch
Description: Binary data