| Index: mod_auth_mysql-3.0.0/mod_auth_mysql.c |
| =================================================================== |
| --- mod_auth_mysql-3.0.0.orig/mod_auth_mysql.c |
| +++ mod_auth_mysql-3.0.0/mod_auth_mysql.c |
| @@ -288,6 +288,7 @@ static short pw_crypted(POOL * pool, con |
| static short pw_aes(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt); |
| #endif |
| static short pw_sha1(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt); |
| +static short pw_apr(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt); |
| static short pw_plain(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt); |
| |
| static char * format_remote_host(request_rec * r, char ** parm); |
| @@ -318,7 +319,8 @@ static encryption encryptions[] = {{"cry |
| #if _AES |
| {"aes", SALT_REQUIRED, pw_aes}, |
| #endif |
| - {"sha1", NO_SALT, pw_sha1}}; |
| + {"sha1", NO_SALT, pw_sha1}, |
| + {"apr", NO_SALT, pw_apr}}; |
| typedef struct { /* User formatting patterns */ |
| char pattern; /* Pattern to match */ |
| char * (*func)(request_rec * r, char ** parm); |
| @@ -856,6 +858,12 @@ static short pw_sha1(POOL * pool, const |
| return strcasecmp(bin2hex(pool, scrambled_sent_pw, enc_len), real_pw) == 0; |
| } |
| |
| +/* checks passwords from htpasswd */ |
| +static short pw_apr(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt) { |
| + /* apr_password_validate will do the job */ |
| + return apr_password_validate(sent_pw, real_pw) == APR_SUCCESS; |
| +} |
| + |
| /* checks plain text passwords */ |
| static short pw_plain(POOL * pool, const char * real_pw, const char * sent_pw, const char * salt) { |
| return strcmp(real_pw, sent_pw) == 0; |