1 || isset($rdatabase_hostname)) { $local_db_cnn_id = db_connect_real($database_hostname, $database_username, $database_password, $database_default, $database_type, $database_port, $database_ssl); if (!isset($rdatabase_ssl)) $rdatabase_ssl = false; /* gather the existing cactidb version */ $config['cacti_db_version'] = db_fetch_cell('SELECT cacti FROM version LIMIT 1', false, $local_db_cnn_id); // We are a remote poller also try to connect to the remote database $remote_db_cnn_id = db_connect_real($rdatabase_hostname, $rdatabase_username, $rdatabase_password, $rdatabase_default, $rdatabase_type, $rdatabase_port, $rdatabase_ssl); if ($remote_db_cnn_id && $config['connection'] != 'recovery' && $config['cacti_db_version'] != 'new_install') { // Connection worked, so now override the default settings so that it will always utilize the remote connection $database_default = $rdatabase_default; $database_hostname = $rdatabase_hostname; $database_username = $rdatabase_username; $database_password = $rdatabase_password; $database_port = $rdatabase_port; $database_ssl = $rdatabase_ssl; $config['connection'] = 'online'; } else { $config['connection'] = 'offline'; } } elseif (!db_connect_real($database_hostname, $database_username, $database_password, $database_default, $database_type, $database_port, $database_ssl)) { print $config['is_web'] ? '
':''; print 'FATAL: Connection to Cacti database failed. Please ensure the database is running and your credentials in config.php are valid.'; print $config['is_web'] ? '
':''; exit; } else { /* gather the existing cactidb version */ $config['cacti_db_version'] = db_fetch_cell('SELECT cacti FROM version LIMIT 1'); } if ($config['poller_id'] > 1 && $config['connection'] == 'online') { $boost_records = db_fetch_cell('SELECT COUNT(*) FROM poller_output_boost', '', true, $local_db_cnn_id); if ($boost_records > 0) { $config['connection'] = 'recovery'; } } if (isset($cacti_db_session) && $cacti_db_session && db_table_exists('sessions')) { include(dirname(__FILE__) . '/session.php'); } else { $cacti_db_session = false; } if (!defined('IN_CACTI_INSTALL')) { set_error_handler('CactiErrorHandler'); register_shutdown_function('CactiShutdownHandler'); } /* verify the cacti database is initialized before moving past here */ db_cacti_initialized($config['is_web']); if ($config['is_web']) { /* set the maximum post size */ ini_set('post_max_size', '8M'); ini_set('max_input_vars', '5000'); /* we don't want these pages cached */ header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: post-check=0, pre-check=0', false); header('Pragma: no-cache'); /* prevent IE from silently rejects cookies sent from third party sites. */ header('P3P: CP="CAO PSA OUR"'); /* initialize php session */ session_name($cacti_session_name); if (!session_id()) session_start(); /* we never run with magic quotes on */ if (get_magic_quotes_gpc()) { $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST); foreach ($process as $key => $val) { foreach ($val as $k => $v) { unset($process[$key][$k]); if (is_array($v)) { $process[$key][stripslashes($k)] = $v; $process[] = &$process[$key][stripslashes($k)]; } else { $process[$key][stripslashes($k)] = stripslashes($v); } } } unset($process); } /* make sure to start only only Cacti session at a time */ if (!isset($_SESSION['cacti_cwd'])) { $_SESSION['cacti_cwd'] = $config['base_path']; } else { if ($_SESSION['cacti_cwd'] != $config['base_path']) { session_unset(); session_destroy(); } } } /* emulate 'register_globals' = 'off' if turned on */ if ((bool)ini_get('register_globals')) { $not_unset = array('_GET', '_POST', '_COOKIE', '_SERVER', '_SESSION', '_ENV', '_FILES', 'database_type', 'database_default', 'database_hostname', 'database_username', 'database_password', 'config', 'colors'); /* Not only will array_merge give a warning if a parameter is not an array, it will * actually fail. So we check if HTTP_SESSION_VARS has been initialised. */ if (!isset($_SESSION)) { $_SESSION = array(); } /* Merge all into one extremely huge array; unset this later */ $input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_SESSION, $_ENV, $_FILES); unset($input['input']); unset($input['not_unset']); foreach ($input as $var => $val) { if (!in_array($var, $not_unset)) { unset($$var); } } unset($input); } define('CACTI_DATE_TIME_FORMAT', date_time_format()); include_once($config['include_path'] . '/global_languages.php'); include_once($config['library_path'] . '/auth.php'); include_once($config['library_path'] . '/plugins.php'); include_once($config['include_path'] . '/plugins.php'); include_once($config['library_path'] . '/html_validate.php'); include_once($config['library_path'] . '/html_utility.php'); include_once($config['include_path'] . '/global_arrays.php'); include_once($config['include_path'] . '/global_settings.php'); include_once($config['include_path'] . '/global_form.php'); include_once($config['library_path'] . '/html.php'); include_once($config['library_path'] . '/html_form.php'); include_once($config['library_path'] . '/html_filter.php'); include_once($config['library_path'] . '/variables.php'); include_once($config['library_path'] . '/mib_cache.php'); include_once($config['library_path'] . '/snmpagent.php'); include_once($config['library_path'] . '/aggregate.php'); include_once($config['library_path'] . '/api_automation.php'); /* cross site request forgery library */ if ($config['is_web']) { function csrf_startup() { global $config; csrf_conf('rewrite-js', $config['url_path'] . 'include/csrf/csrf-magic.js'); } include_once($config['include_path'] . '/csrf/csrf-magic.php'); if (isset_request_var('newtheme')) { unset($_SESSION['selected_theme']); } if (read_config_option('force_https') == 'on') { if (!isset($_SERVER['HTTPS']) && isset($_SERVER['HTTP_HOST']) && isset($_SERVER['REQUEST_URI'])) { Header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] . "\n\n"); exit; } } } api_plugin_hook('config_insert'); /* set config cacti_version for plugins */ $config['cacti_version'] = CACTI_VERSION;;