X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=include%2Finit.php;h=9f17708eb87466feed7f59a8d9bb792a6d78f988;hp=228999ccf25baad06ac12bff0e085db0d753ee1b;hb=be51990845071cfa21f7001d1a36a2bb347e9e3e;hpb=dbbd586ecd980d4230dacef9a0a01e49004e50e9 diff --git a/include/init.php b/include/init.php index 228999cc..9f17708e 100644 --- a/include/init.php +++ b/include/init.php @@ -120,9 +120,20 @@ if(!empty($_SERVER['UNIQUE_ID'])) { $seed .= uniqid(mt_rand(),TRUE); $seed .= implode( '', stat( __FILE__) ); -/** PHP 4.2 and up don't require seeding, but their used seed algorithm - * is of questionable quality, so we keep doing it ourselves. */ -mt_srand(hexdec(md5($seed))); +// mt_srand() uses an integer to seed, so we need to distill our +// very large seed to something useful (without taking a sub-string, +// the integer conversion of such a large number is always 0 on +// many systems, but strangely, 9 hex numbers - even if larger +// than a signed 32 bit integer - seem to be an acceptable "integer" +// seed (perhaps it is used as unsigned?)... +// we may want to revisit this and always force it to be less than +// 2,147,483,647 +// +$seed = hexdec(substr(md5($seed), 0, 9)); + +// PHP 4.2 and up don't require seeding, but their used seed algorithm +// is of questionable quality, so we keep doing it ourselves. */ +mt_srand($seed); /** * calculate SM_PATH and calculate the base_uri @@ -190,6 +201,7 @@ require(SM_PATH . 'include/constants.php'); require(SM_PATH . 'functions/global.php'); require(SM_PATH . 'functions/strings.php'); require(SM_PATH . 'functions/arrays.php'); +require(SM_PATH . 'functions/files.php'); /* load default configuration */ require(SM_PATH . 'config/config_default.php'); @@ -223,6 +235,12 @@ if ($sm_debug_mode & SM_DEBUG_MODE_STRICT) error_reporting($error_level); +/** + * Detect SSL connections + */ +$is_secure_connection = is_ssl_secured_connection(); + + require(SM_PATH . 'functions/plugin.php'); require(SM_PATH . 'include/languages.php'); require(SM_PATH . 'class/template/Template.class.php');