Commit 1fc7a57a authored by Jeff Trawick's avatar Jeff Trawick
Browse files

htdbm: Enable crypt support on platforms with crypt() but not

<crypt.h>, such as z/OS.

We assume that the ancient code in htpasswd has it right --
all but Windows, TPF, and NetWare have crypt().

Submitted by: David Jones <oscaremma gmail.com>
Reviewed by: wrowe, trawick



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@526892 13f79535-47bb-0310-9956-ffa450edef68
parent 6756ca35
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@
Changes with Apache 2.3.0
  [Remove entries to the current 2.0 and 2.2 section below, when backported]
  *) htdbm: Enable crypt support on platforms with crypt() but not
     <crypt.h>, such as z/OS. [David Jones <oscaremma gmail.com>]
  *) mod_ssl: initialize thread locks before initializing the hardware
     acceleration library, so the latter can make use of the former. 
     PR 20951. [adunn at ncipher.com, reviewed by Sander Temme]
+6 −6
Original line number Diff line number Diff line
@@ -69,7 +69,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

@@ -311,12 +311,12 @@ static apr_status_t htdbm_make(htdbm_t *htdbm)
        case ALG_PLAIN:
            /* XXX this len limitation is not in sync with any HTTPd len. */
            apr_cpystrn(cpw,htdbm->userpass,sizeof(cpw));
#if APR_HAVE_CRYPT_H
#if (!(defined(WIN32) || defined(TPF) || defined(NETWARE)))
            fprintf(stderr, "Warning: Plain text passwords aren't supported by the "
                    "server on this platform!\n");
#endif
        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);
@@ -347,7 +347,7 @@ static apr_status_t htdbm_valid_username(htdbm_t *htdbm)
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 ""
@@ -367,7 +367,7 @@ static void htdbm_usage(void)
    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");
@@ -474,7 +474,7 @@ int main(int argc, const char * const argv[])
            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;