added new auth-check security feature
[NeonServV5.git] / src / cmd_global_unregister.c
index 7af1682dad4db0f55d57a3ef3bcc28ee8c6c1135..43dab20796f171615c61b67c487001eb0d539b22 100644 (file)
@@ -1,5 +1,5 @@
 /* cmd_global_unregister.c - NeonServ v5.3
- * Copyright (C) 2011  Philipp Kreil (pk910)
+ * Copyright (C) 2011-2012  Philipp Kreil (pk910)
  * 
  * 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
 CMD_BIND(global_cmd_unregister) {
     MYSQL_RES *res;
     MYSQL_ROW row;
-    char *channel = argv[0];
+    char *channel;
+    if(argc)
+        channel = argv[0];
+    else
+        channel = (chan ? chan->name : "");
     if(!is_valid_chan(channel)) {
         reply(getTextBot(), user, "NS_INVALID_CHANNEL_NAME", argv[0]);
         return;
@@ -38,19 +42,18 @@ CMD_BIND(global_cmd_unregister) {
         return;
     }
     if(client->botid == 0)
-        printf_mysql_query("SELECT `botid`, `bot_channels`.`id`, `suspended`, `bots`.`id` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '0' AND `botid` = '%d'", chanid, client->clientid);
+        printf_mysql_query("SELECT `botid`, `bot_channels`.`id`, `suspended` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '0' AND `botid` = '%d'", chanid, client->clientid);
     else
-        printf_mysql_query("SELECT `botid`, `bot_channels`.`id`, `suspended`, `bots`.`id` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chanid, client->botid);
+        printf_mysql_query("SELECT `botid`, `bot_channels`.`id`, `suspended` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chanid, client->botid);
     res = mysql_use();
     if ((row = mysql_fetch_row(res)) == NULL) {
         reply(getTextBot(), user, "NS_UNREGISTER_NOT_REGISTERED", argv[0], client->user->nick);
         return;
     }
     int botid = atoi(row[0]);
-    int clientid = atoi(row[3]);
     struct ClientSocket *bot;
     for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
-        if(bot->clientid == botid && (!botid || bot->clientid == clientid))
+        if(bot->clientid == botid)
             break;
     }
     if(bot && strcmp(row[2], "1")) {