changed Makefile; build all commands as an own file
[NeonServV5.git] / cmd_neonserv_delme.c
1
2 #include "cmd_neonserv.h"
3
4 /*
5 * argv[0] - key
6 */
7
8 CMD_BIND(neonserv_cmd_delme) {
9     MYSQL_RES *res;
10     MYSQL_ROW row;
11     int userid;
12     printf_mysql_query("SELECT `user_id` FROM `users` WHERE `user_user` = '%s'", escape_string(user->auth));
13     res = mysql_use();
14     if ((row = mysql_fetch_row(res)) != NULL) {
15         userid = atoi(row[0]);
16         //check if the user is added
17         printf_mysql_query("SELECT `chanuser_access`, `chanuser_id` FROM `chanusers` WHERE `chanuser_cid` = '%d' AND `chanuser_uid` = '%d'", chan->channel_id, userid);
18         res = mysql_use();
19         if ((row = mysql_fetch_row(res)) != NULL) {
20             //check key
21             int seed = 0;
22             char *tmp;
23             static char unregkey[16];
24             for(tmp = user->auth; *tmp; tmp++)
25                 seed = (seed * 0xEECE66DL ^ ((*tmp << 24) | (*tmp << 16) | (*tmp << 8) | *tmp));
26             for(tmp = chan->name; *tmp; tmp++)
27                 seed = (seed * 0xEECE66DL ^ ((*tmp << 24) | (*tmp << 16) | (*tmp << 8) | *tmp));
28             sprintf(unregkey, "%08x", seed);
29             if(argc < 1 || strcmp(argv[0], unregkey)) {
30                 reply(getTextBot(), user, "NS_DELME_KEY", unregkey);
31                 return;
32             } else {
33                 //delete
34                 printf_mysql_query("DELETE FROM `chanusers` WHERE `chanuser_id` = '%s'", row[1]);
35                 reply(getTextBot(), user, "NS_DELME_DONE", atoi(row[0]), chan->name);
36                 logEvent(event);
37                 return;
38             }
39         }
40     }
41     reply(getTextBot(), user, "NS_NOT_ON_USERLIST_YOU", chan->name);
42 }