Fix --disable-crypt and --disable-cleartext

mutex declaration should be moved from slapd/main.c to slapd/init.c
so we don't have ripple changes through slapd/tools.
This commit is contained in:
Kurt Zeilenga 1998-12-29 21:45:08 +00:00
parent bfb27120be
commit 695508813d
13 changed files with 58 additions and 16 deletions

View file

@ -155,12 +155,15 @@ gen_pass (unsigned int len)
return ((char *)salt.salt);
}
#ifdef SLAPD_CLEARTEXT
char *
hash_none (const char *pw_in, Salt * salt)
{
return (STRDUP (pw_in));
}
#endif
#ifdef SLAPD_CRYPT
char *
hash_crypt (const char *pw_in, Salt * salt)
{
@ -189,6 +192,7 @@ hash_crypt (const char *pw_in, Salt * salt)
}
return (STRDUP (crypted_pw));
}
#endif
char *
hash_md5 (const char *pw_in, Salt * salt)
@ -222,8 +226,12 @@ hash_sha1 (const char *pw_in, Salt * salt)
static Hash hashes[] =
{
#ifdef SLAPD_CLEARTEXT
{"none", 4, hash_none, 0, HASHTYPE_NONE, HASHTYPE_NONE, 0},
#endif
#ifdef SLAPD_CRYPT
{"crypt", 5, hash_crypt, 1, HASHTYPE_CRYPT, HASHTYPE_CRYPT, 2},
#endif
{"md5", 3, hash_md5, 0, HASHTYPE_MD5, HASHTYPE_SMD5, 0},
{"smd5", 4, hash_md5, 1, HASHTYPE_SMD5, HASHTYPE_SMD5, 4},
{"sha", 3, hash_sha1, 0, HASHTYPE_SHA1, HASHTYPE_SSHA1, 0},

View file

@ -31,12 +31,7 @@ lutil_passwd(
return -1;
}
if (strncasecmp(passwd, "{CRYPT}", sizeof("{CRYPT}") - 1) == 0 ) {
const char *p = passwd + (sizeof("{CRYPT}") - 1);
return( strcmp(p, crypt(cred, p)) );
} else if (strncasecmp(passwd, "{MD5}", sizeof("{MD5}") - 1) == 0 ) {
if (strncasecmp(passwd, "{MD5}", sizeof("{MD5}") - 1) == 0 ) {
lutil_MD5_CTX MD5context;
unsigned char MD5digest[16];
char base64digest[25]; /* ceiling(sizeof(input)/3) * 4 + 1 */
@ -74,6 +69,14 @@ lutil_passwd(
}
return( strcmp(p, base64digest) );
#ifdef SLAPD_CRYPT
} else if (strncasecmp(passwd, "{CRYPT}", sizeof("{CRYPT}") - 1) == 0 ) {
const char *p = passwd + (sizeof("{CRYPT}") - 1);
return( strcmp(p, crypt(cred, p)) );
#endif
}
#ifdef SLAPD_CLEARTEXT

View file

@ -19,8 +19,6 @@
extern int krbv4_ldap_auth();
#endif
pthread_mutex_t crypt_mutex;
static int
crypted_value_find(
struct berval **vals,
@ -35,13 +33,17 @@ crypted_value_find(
if ( syntax != SYNTAX_BIN ) {
int result;
#ifdef SLAPD_CRYPT
pthread_mutex_lock( &crypt_mutex );
#endif
result = lutil_passwd(
(char*) cred->bv_val,
(char*) vals[i]->bv_val);
#ifdef SLAPD_CRYPT
pthread_mutex_unlock( &crypt_mutex );
#endif
return result;

View file

@ -19,10 +19,6 @@ ldbm_back_init(
char *argv[ 4 ];
int i;
#ifdef SLAPD_CRYPT
extern pthread_mutex_t crypt_mutex;
#endif /* SLAPD_CRYPT */
/* allocate backend-specific stuff */
li = (struct ldbminfo *) ch_calloc( 1, sizeof(struct ldbminfo) );
@ -70,9 +66,6 @@ ldbm_back_init(
pthread_mutex_init( &li->li_cache.c_mutex, pthread_mutexattr_default );
pthread_mutex_init( &li->li_nextid_mutex, pthread_mutexattr_default );
pthread_mutex_init( &li->li_dbcache_mutex, pthread_mutexattr_default );
#ifdef SLAPD_CRYPT
pthread_mutex_init( &crypt_mutex, pthread_mutexattr_default );
#endif /* SLAPD_CRYPT */
pthread_cond_init( &li->li_dbcache_cv, pthread_condattr_default );
for ( i = 0; i < MAXDBCACHE; i++ ) {
pthread_mutex_init( &li->li_dbcache[i].dbc_mutex,

View file

@ -210,11 +210,23 @@ be_isroot( Backend *be, char *dn )
int
be_isroot_pw( Backend *be, char *dn, struct berval *cred )
{
int result;
if ( ! be_isroot( be, dn ) ) {
return( 0 );
}
return( lutil_passwd( cred->bv_val, be->be_rootpw ) == 0 );
#ifdef SLAPD_CRYPT
pthread_mutex_lock( &crypt_mutex );
#endif
result = lutil_passwd( cred->bv_val, be->be_rootpw );
#ifdef SLAPD_CRYPT
pthread_mutex_unlock( &crypt_mutex );
#endif
return result == 0;
}
void

View file

@ -21,4 +21,7 @@ init( void )
pthread_mutex_init( &replog_mutex, pthread_mutexattr_default );
pthread_mutex_init( &ops_mutex, pthread_mutexattr_default );
pthread_mutex_init( &num_sent_mutex, pthread_mutexattr_default );
#ifdef SLAPD_CRYPT
pthread_mutex_init( &crypt_mutex, pthread_mutexattr_default );
#endif
}

View file

@ -40,6 +40,9 @@ pthread_mutex_t currenttime_mutex;
int active_threads;
pthread_mutex_t active_threads_mutex;
pthread_mutex_t new_conn_mutex;
#ifdef SLAPD_CRYPT
pthread_mutex_t crypt_mutex;
#endif
long ops_initiated;
long ops_completed;
int num_conns;

View file

@ -248,6 +248,9 @@ extern pthread_mutex_t new_conn_mutex;
extern pthread_mutex_t num_sent_mutex;
extern pthread_mutex_t ops_mutex;
extern pthread_mutex_t replog_mutex;
#ifdef SLAPD_CRYPT
extern pthread_mutex_t crypt_mutex;
#endif
extern pthread_t listener_tid;
extern struct acl *global_acl;
extern struct objclass *global_oc;

View file

@ -52,6 +52,9 @@ pthread_mutex_t currenttime_mutex;
pthread_mutex_t replog_mutex;
pthread_mutex_t ops_mutex;
pthread_mutex_t regex_mutex;
#ifdef SLAPD_CRYPT
pthread_mutex_t crypt_mutex;
#endif
int
main( int argc, char **argv )

View file

@ -34,6 +34,9 @@ pthread_mutex_t currenttime_mutex;
pthread_mutex_t replog_mutex;
pthread_mutex_t ops_mutex;
pthread_mutex_t regex_mutex;
#ifdef SLAPD_CRYPT
pthread_mutex_t crypt_mutex;
#endif
static char *tailorfile;
static char *inputfile;

View file

@ -31,6 +31,9 @@ pthread_mutex_t currenttime_mutex;
pthread_mutex_t replog_mutex;
pthread_mutex_t ops_mutex;
pthread_mutex_t regex_mutex;
#ifdef SLAPD_CRYPT
pthread_mutex_t crypt_mutex;
#endif
static char *tailorfile;
static char *inputfile;

View file

@ -33,6 +33,9 @@ pthread_mutex_t currenttime_mutex;
pthread_mutex_t replog_mutex;
pthread_mutex_t ops_mutex;
pthread_mutex_t regex_mutex;
#ifdef SLAPD_CRYPT
pthread_mutex_t crypt_mutex;
#endif
static void

View file

@ -37,6 +37,9 @@ pthread_mutex_t currenttime_mutex;
pthread_mutex_t replog_mutex;
pthread_mutex_t ops_mutex;
pthread_mutex_t regex_mutex;
#ifdef SLAPD_CRYPT
pthread_mutex_t crypt_mutex;
#endif
static void fork_child( char *prog, char *args[] );
static void wait4kids( int nkidval );