* @version 3.0.0 * @copyright Copyright (c) 2009 - 2011 Cracker Tracker Team * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ // Init all updates function crackerTrackerInitUpdates () { // Add all $GLOBALS['ctracker_updates'] = array( // Ticket system: 0 => array( 'CREATE TABLE IF NOT EXISTS `ctracker_ticket` ( `ctracker_ticket` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `ctracker_ticket_remote_addr` varchar(15) NOT NULL, `ctracker_ticket_user_agent` tinytext NOT NULL, `ctracker_ticket_name` varchar(255) NOT NULL, `ctracker_ticket_email` varchar(255) NOT NULL, `ctracker_ticket_comment` tinytext NOT NULL, PRIMARY KEY ( `ctracker_ticket` ), UNIQUE KEY (`ctracker_ticket_remote_addr`) ) TYPE=InnoDB', 'CREATE TABLE IF NOT EXISTS `ctracker_ticket_data` ( `ctracker_ticket_data_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `ctracker_ticket_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, `ctracker_data_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, PRIMARY KEY ( `ctracker_ticket_data_id` ), UNIQUE KEY `ctracker_ticket_data` ( `ctracker_ticket_id`, `ctracker_data_id` ), INDEX ( `ctracker_data_id` ), FOREIGN KEY ( `ctracker_ticket_id` ) REFERENCES `' . $GLOBALS['ctracker_dbname'] . '`.`ctracker_ticket` ( `ctracker_ticket` ) ON DELETE CASCADE, FOREIGN KEY ( `ctracker_data_id` ) REFERENCES `' . $GLOBALS['ctracker_dbname'] . '`.`ctracker_data` ( `id` ) ON DELETE CASCADE ) TYPE=InnoDB', ), // NULL for missing values 1 => array( "ALTER TABLE `ctracker_data` CHANGE `script_name` `script_name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'Full script name'", "UPDATE `ctracker_data` SET `script_name`=NULL WHERE `script_name`=''", "ALTER TABLE `ctracker_data` CHANGE `server_name` `server_name` TINYTEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'Server''s host name'", "UPDATE `ctracker_data` SET `server_name`=NULL WHERE `server_name`=''", ), // Also store proxy address 2 => array( 'ALTER TABLE `ctracker_data` ADD `proxy_addr` VARCHAR(15) NULL DEFAULT NULL', 'ALTER TABLE `ctracker_ticket` ADD `ctracker_ticket_proxy_addr` VARCHAR(15) NULL DEFAULT NULL', ), // Better key for always repeating query 4 => array( 'ALTER TABLE `ctracker`.`ctracker_data` ADD INDEX `remote_proxy_last` ( `remote_addr`, `proxy_addr`, `last_attempt` DESC )', ), ); } // Runs the given updates at number X function runCrackerTrackerUpdates ($update) { // We assume it is set foreach ($GLOBALS['ctracker_updates'][$update] as $sql) { // Run the SQL command runCrackerTrackerSql($sql, __FUNCTION__, __LINE__); } // END - foreach } // [EOF] ?>