From 95b073d5242d1bf995d84e3511dbc43328ebff75 Mon Sep 17 00:00:00 2001 From: pk910 Date: Sun, 25 Dec 2011 22:09:29 +0100 Subject: [PATCH] fixed database (increased flags field size) --- database.sql | 2 +- database.upgrade.sql | 4 ++++ src/cmd_global_modcmd.c | 6 ++++-- src/mysqlConn.c | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/database.sql b/database.sql index db8c41f..1410212 100644 --- a/database.sql +++ b/database.sql @@ -58,7 +58,7 @@ CREATE TABLE IF NOT EXISTS `bot_binds` ( `parameters` varchar(100) NOT NULL, `chan_access` varchar(256) DEFAULT NULL, `global_access` int(3) DEFAULT NULL, - `flags` tinyint(4) NOT NULL, + `flags` int(10) NOT NULL, PRIMARY KEY (`id`), KEY `botid` (`botid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; diff --git a/database.upgrade.sql b/database.upgrade.sql index 2b11e65..12a10ff 100644 --- a/database.upgrade.sql +++ b/database.upgrade.sql @@ -92,3 +92,7 @@ ALTER TABLE `bot_binds` ADD INDEX ( `botclass` ); ALTER TABLE `bot_channels` CHANGE `trigger` `trigger` VARCHAR( 50 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT '+'; -- version: 9 + +ALTER TABLE `bot_binds` CHANGE `flags` `flags` INT( 10 ) NOT NULL ; + +-- version: 10 diff --git a/src/cmd_global_modcmd.c b/src/cmd_global_modcmd.c index a5f36ad..5a5ce2e 100644 --- a/src/cmd_global_modcmd.c +++ b/src/cmd_global_modcmd.c @@ -119,11 +119,13 @@ static int global_cmd_modcmd_flags(struct UserNode *user, struct cmd_binding *cb char flags[MAXLEN]; int flagpos = 0; int ret = 0; + unsigned int visible_flags = 0; int i = 0; while(global_cmd_modcmd_show_flags[i].name) { if(cbind->func->flags & global_cmd_modcmd_show_flags[i].flag) { flagpos += sprintf(flags + flagpos, (flagpos ? " %s" : "\00314%s"), global_cmd_modcmd_show_flags[i].name); } + visible_flags |= global_cmd_modcmd_show_flags[i].flag; i++; } if(flagpos) @@ -156,9 +158,9 @@ static int global_cmd_modcmd_flags(struct UserNode *user, struct cmd_binding *cb else cbind->flags &= ~current_flag; if(cbind->botid == 0) - printf_mysql_query("UPDATE `bot_binds` SET `flags` = '%u' WHERE `botclass` = '0' AND `botid` = '%d' AND `command` = '%s'", cbind->flags, cbind->clientid, escape_string(cbind->cmd)); + printf_mysql_query("UPDATE `bot_binds` SET `flags` = '%u' WHERE `botclass` = '0' AND `botid` = '%d' AND `command` = '%s'", (cbind->flags & visible_flags), cbind->clientid, escape_string(cbind->cmd)); else - printf_mysql_query("UPDATE `bot_binds` SET `flags` = '%u' WHERE `botclass` = '%d' AND `command` = '%s'", cbind->flags, cbind->botid, escape_string(cbind->cmd)); + printf_mysql_query("UPDATE `bot_binds` SET `flags` = '%u' WHERE `botclass` = '%d' AND `command` = '%s'", (cbind->flags & visible_flags), cbind->botid, escape_string(cbind->cmd)); ret = 1; } i = 0; diff --git a/src/mysqlConn.c b/src/mysqlConn.c index dcd99e5..802c591 100644 --- a/src/mysqlConn.c +++ b/src/mysqlConn.c @@ -16,7 +16,7 @@ */ #include "mysqlConn.h" -#define DATABASE_VERSION "9" +#define DATABASE_VERSION "10" struct used_result { MYSQL_RES *result; -- 2.20.1