mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Optimizes IP Address Storage in DB (#25751)
* Initial commit * comment fix * Updates new columns position in table * Updates insert statement for connection_log * 57 to 58 - Handles changes post merge conflict
This commit is contained in:
@@ -506,7 +506,7 @@ CREATE TABLE `connection_log` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`datetime` datetime NOT NULL,
|
||||
`ckey` varchar(32) NOT NULL,
|
||||
`ip` varchar(32) NOT NULL,
|
||||
`ip` INT UNSIGNED NOT NULL,
|
||||
`computerid` varchar(32) NOT NULL,
|
||||
`server_id` VARCHAR(50) NULL DEFAULT NULL,
|
||||
`result` ENUM('ESTABLISHED','DROPPED - IPINTEL','DROPPED - BANNED','DROPPED - INVALID') NOT NULL DEFAULT 'ESTABLISHED' COLLATE 'utf8mb4_general_ci',
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Updating DB from 57-58 ~Burza
|
||||
# Changes the data type for the `ip` column in `connection_log` from VARCHAR to INT
|
||||
|
||||
# Creates a temporary column for our new data type
|
||||
ALTER TABLE `connection_log`
|
||||
ADD COLUMN `ip_int` INT UNSIGNED NULL;
|
||||
|
||||
# Copies the data from the `ip` column to `ip_int` as our new data type
|
||||
UPDATE `connection_log`
|
||||
SET `ip_int` = INET_ATON(`ip`);
|
||||
|
||||
# Deletes the old `ip` column from the table
|
||||
ALTER TABLE `connection_log` DROP COLUMN `ip`;
|
||||
|
||||
# Updates the name of the temporary column to take place of the original
|
||||
ALTER TABLE `connection_log`
|
||||
CHANGE COLUMN `ip_int` `ip` INT UNSIGNED NOT NULL AFTER `ckey`;
|
||||
@@ -420,7 +420,7 @@
|
||||
#define INVESTIGATE_HOTMIC "hotmic"
|
||||
|
||||
// The SQL version required by this version of the code
|
||||
#define SQL_VERSION 57
|
||||
#define SQL_VERSION 58
|
||||
|
||||
// Vending machine stuff
|
||||
#define CAT_NORMAL (1<<0)
|
||||
|
||||
@@ -1921,9 +1921,9 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
|
||||
/proc/log_connection(ckey, ip, cid, connection_type)
|
||||
ASSERT(connection_type in list(CONNECTION_TYPE_ESTABLISHED, CONNECTION_TYPE_DROPPED_IPINTEL, CONNECTION_TYPE_DROPPED_BANNED, CONNECTION_TYPE_DROPPED_INVALID))
|
||||
var/datum/db_query/query_accesslog = SSdbcore.NewQuery("INSERT INTO connection_log (`datetime`, `ckey`, `ip`, `computerid`, `result`, `server_id`) VALUES(Now(), :ckey, :ip, :cid, :result, :server_id)", list(
|
||||
var/datum/db_query/query_accesslog = SSdbcore.NewQuery("INSERT INTO connection_log (`datetime`, `ckey`, `ip`, `computerid`, `result`, `server_id`) VALUES(Now(), :ckey, INET_ATON(:ip), :cid, :result, :server_id)", list(
|
||||
"ckey" = ckey,
|
||||
"ip" = "[ip ? ip : ""]", // This is important. NULL is not the same as "", and if you directly open the `.dmb` file, you get a NULL IP.
|
||||
"ip" = "[ip ? ip : "127.0.0.1"]",
|
||||
"cid" = cid,
|
||||
"result" = connection_type,
|
||||
"server_id" = GLOB.configuration.system.instance_id
|
||||
|
||||
@@ -176,7 +176,7 @@ ipc_screens = [
|
||||
# Enable/disable the database on a whole
|
||||
sql_enabled = false
|
||||
# SQL version. If this is a mismatch, round start will be delayed
|
||||
sql_version = 57
|
||||
sql_version = 58
|
||||
# SQL server address. Can be an IP or DNS name
|
||||
sql_address = "127.0.0.1"
|
||||
# SQL server port
|
||||
|
||||
Reference in New Issue
Block a user