Moved the RINIT(crypt) stuff into crypt() itself.

This commit is contained in:
foobar 2003-08-11 00:49:19 +00:00
parent e1accb81c0
commit ebec2bb859
2 changed files with 4 additions and 16 deletions

View File

@ -1192,10 +1192,6 @@ PHP_RINIT_FUNCTION(basic)
#endif
BG(user_shutdown_function_names) = NULL;
#if HAVE_CRYPT
PHP_RINIT(crypt)(INIT_FUNC_ARGS_PASSTHRU);
#endif
PHP_RINIT(lcg)(INIT_FUNC_ARGS_PASSTHRU);
PHP_RINIT(filestat)(INIT_FUNC_ARGS_PASSTHRU);

View File

@ -89,8 +89,6 @@ extern char *crypt(char *__key, char *__salt);
#define PHP_CRYPT_RAND php_rand(TSRMLS_C)
static int php_crypt_rand_seeded=0;
PHP_MINIT_FUNCTION(crypt)
{
REGISTER_LONG_CONSTANT("CRYPT_SALT_LENGTH", PHP_MAX_SALT_LEN, CONST_CS | CONST_PERSISTENT);
@ -103,16 +101,6 @@ PHP_MINIT_FUNCTION(crypt)
}
PHP_RINIT_FUNCTION(crypt)
{
if(!php_crypt_rand_seeded) {
php_srand(time(0) * getpid() * (unsigned long) (php_combined_lcg(TSRMLS_C) * 10000.0) TSRMLS_CC);
php_crypt_rand_seeded=1;
}
return SUCCESS;
}
static unsigned char itoa64[] = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
static void php_to64(char *s, long v, int n)
@ -131,6 +119,10 @@ PHP_FUNCTION(crypt)
char *str, *salt_in = NULL;
int str_len, salt_in_len;
if (!BG(rand_is_seeded)) {
php_srand(GENERATE_SEED() TSRMLS_CC);
}
salt[0]=salt[PHP_MAX_SALT_LEN]='\0';
/* This will produce suitable results if people depend on DES-encryption
available (passing always 2-character salt). At least for glibc6.1 */