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