]> git.mxchange.org Git - ctracker.git/blobdiff - libs/lib_updates.php
Continued:
[ctracker.git] / libs / lib_updates.php
index 86cfc76876aa6e8016e1bb318b8d45fc166322e0..a51e584ec8286a2a6f8691e13ec040af77545e0a 100644 (file)
@@ -2,11 +2,11 @@
 /**
  * Automatic database updates
  *
- * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @author             Roland Haeder <webmaster@shipsimu.org>
  * @version            3.0.0
- * @copyright  Copyright (c) 2009, 2010 Cracker Tracker Team
+ * @copyright  Copyright (c) 2009 - 2017 Cracker Tracker Team
  * @license            GNU GPL 3.0 or any newer version
- * @link               http://www.ship-simu.org
+ * @link               http://www.shipsimu.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
@@ -25,9 +25,9 @@
 // Init all updates
 function crackerTrackerInitUpdates () {
        // Add all
-       $GLOBALS['ctracker_updates'] = array(
+       $GLOBALS['ctracker_updates'] = [
                // 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,
@@ -43,7 +43,7 @@ UNIQUE KEY (`ctracker_ticket_remote_addr`)
 `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` ),
+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`
@@ -52,8 +52,53 @@ FOREIGN KEY ( `ctracker_data_id` ) REFERENCES `' . $GLOBALS['ctracker_dbname'] .
 `id`
 ) ON DELETE CASCADE
 ) TYPE=InnoDB',
-               )
-       );
+               ],
+
+               // NULL for missing values
+               [
+                       "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
+               [
+                       'ALTER TABLE `ctracker_data` ADD `proxy_addr` VARCHAR(15) NULL DEFAULT NULL AFTER `remote_addr`',
+                       'ALTER TABLE `ctracker_ticket` ADD `ctracker_ticket_proxy_addr` VARCHAR(15) NULL DEFAULT NULL',
+               ],
+
+               // Better key for always repeating query
+               [
+                       'ALTER TABLE `ctracker_data` ADD INDEX `remote_proxy_last` ( `remote_addr`, `proxy_addr`, `last_attempt` DESC )',
+               ],
+
+               // HTTP request method
+               [
+                       "ALTER TABLE `ctracker_data` ADD `request_method` VARCHAR( 255 ) NULL DEFAULT NULL COMMENT 'HTTP request method' AFTER `referer`, ADD INDEX ( `request_method` )",
+               ],
+
+               // Index on count
+               [
+                       'ALTER TABLE `ctracker_data` ADD INDEX `count` (`count`)',
+               ],
+
+               // Log also UA after check
+               [
+                       "ALTER TABLE `ctracker_data`
+                       ADD `check_ua` tinytext COLLATE 'utf8_general_ci' NULL COMMENT 'User agent after check' AFTER `post_data`,
+                       CHANGE `check_worm` `check_get` tinytext COLLATE 'utf8_general_ci' NOT NULL COMMENT 'GET data after check' AFTER `check_ua`,
+                       CHANGE `check_post` `check_post` tinytext COLLATE 'utf8_general_ci' NOT NULL COMMENT 'POST data after check' AFTER `check_worm`",
+               ],
+
+               // View for request methods
+               [
+                       'CREATE VIEW `view_most_request_methods` AS
+                       SELECT SQL_CALC_FOUND_ROWS COUNT(`id`) AS `total_rows`, `request_method`
+                       FROM `ctracker_data`
+                       GROUP BY `request_method`'
+               ],
+       ];
 }
 
 // Runs the given updates at number X
@@ -64,6 +109,3 @@ function runCrackerTrackerUpdates ($update) {
                runCrackerTrackerSql($sql, __FUNCTION__, __LINE__);
        } // END - foreach
 }
-
-// [EOF]
-?>