X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=include%2Finit.php;h=9f17708eb87466feed7f59a8d9bb792a6d78f988;hb=be51990845071cfa21f7001d1a36a2bb347e9e3e;hp=b5176403c9159a018d91d698be7e79d3bf8b4ac2;hpb=775a1f52b3e6224cba9fe8f32c9ff0527c6076e7;p=squirrelmail.git diff --git a/include/init.php b/include/init.php index b5176403..9f17708e 100644 --- a/include/init.php +++ b/include/init.php @@ -74,6 +74,14 @@ if ((bool) ini_get('register_globals') && global $null; $null = NULL; +/** + * The global $server_os variable will be "windows" if + * we are working in a Windows environment or "*nix" + * otherwise. + */ +global $server_os; +if (DIRECTORY_SEPARATOR == '\\') $server_os = 'windows'; else $server_os = '*nix'; + /** * [#1518885] session.use_cookies = off breaks SquirrelMail * @@ -112,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 @@ -182,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'); @@ -215,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');