X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodules%2FNeonServ.mod%2Fcmd_neonserv_noregister.c;h=dbf8d0f93017705125462eb378bfe9d6f16fc015;hb=78e040af3fcc36ab684611c0f98b4381ff420878;hp=f0ba38020b2316e93c89bb09bfd112d4c98bf2fe;hpb=706e48b1e666054030c491d864f740071e390038;p=NeonServV5.git diff --git a/src/modules/NeonServ.mod/cmd_neonserv_noregister.c b/src/modules/NeonServ.mod/cmd_neonserv_noregister.c index f0ba380..dbf8d0f 100644 --- a/src/modules/NeonServ.mod/cmd_neonserv_noregister.c +++ b/src/modules/NeonServ.mod/cmd_neonserv_noregister.c @@ -1,4 +1,4 @@ -/* cmd_neonserv_noregister.c - NeonServ v5.3 +/* cmd_neonserv_noregister.c - NeonServ v5.5 * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -26,7 +26,7 @@ static AUTHLOOKUP_CALLBACK(neonserv_cmd_noregister_auth_lookup); static USERAUTH_CALLBACK(neonserv_cmd_noregister_nick_lookup); static void neonserv_cmd_noregister_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event,char *auth, int duration, char *reason); -static void neonserv_cmd_noregister_list(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, char **argv, int argc); +static void neonserv_cmd_noregister_list(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char **argv, int argc); struct neonserv_cmd_noregister_cache { struct ClientSocket *client, *textclient; @@ -39,12 +39,12 @@ struct neonserv_cmd_noregister_cache { CMD_BIND(neonserv_cmd_noregister) { if(argc < 3) { - neonserv_cmd_noregister_list(client, user, chan, event, argv, argc); + neonserv_cmd_noregister_list(client, textclient, user, chan, event, argv, argc); return; } int duration = strToTime(user, argv[1]); if(duration == 0 && strcmp(argv[1], "0")) { - reply(getTextBot(), user, "NS_NOREGISTER_INVALID_DURATION", argv[1]); + reply(textclient, user, "NS_NOREGISTER_INVALID_DURATION", argv[1]); return; } char *reason = merge_argv(argv, 2, argc); @@ -54,17 +54,17 @@ CMD_BIND(neonserv_cmd_noregister) { printf_mysql_query("SELECT `botid` FROM `bot_channels` LEFT JOIN `channels` ON `bot_channels`.`chanid` = `channels`.`channel_id` WHERE `channel_name` = '%s'", escape_string(argv[0])); res = mysql_use(); if ((row = mysql_fetch_row(res)) != NULL) { - reply(getTextBot(), user, "NS_NOREGISTER_REGISTERED", argv[0]); + reply(textclient, user, "NS_NOREGISTER_REGISTERED", argv[0]); return; } - neonserv_cmd_noregister_async1(client, getTextBot(), user, chan, event, argv[0], duration, reason); + neonserv_cmd_noregister_async1(client, textclient, user, chan, event, argv[0], duration, reason); } else if(argv[0][0] == '*') { //we've got an auth argv[0]++; printf_mysql_query("SELECT `user_user` FROM `users` WHERE `user_user` = '%s'", escape_string(argv[0])); res = mysql_use(); if ((row = mysql_fetch_row(res)) != NULL) { - neonserv_cmd_noregister_async1(client, getTextBot(), user, chan, event, row[0], duration, reason); + neonserv_cmd_noregister_async1(client, textclient, user, chan, event, row[0], duration, reason); } else { //we need to create a new user... //but first lookup the auth to check if it really exists @@ -74,27 +74,27 @@ CMD_BIND(neonserv_cmd_noregister) { return; } cache->client = client; - cache->textclient = getTextBot(); + cache->textclient = textclient; cache->user = user; cache->chan = chan; cache->event = event; cache->nick = strdup(argv[0]); cache->duration = duration; cache->reason = strdup(reason); - lookup_authname(argv[0], neonserv_cmd_noregister_auth_lookup, cache); + lookup_authname(argv[0], module_id, neonserv_cmd_noregister_auth_lookup, cache); } } else { struct UserNode *cuser = getUserByNick(argv[0]); if(!cuser) { cuser = createTempUser(argv[0]); if(!cuser) { - reply(getTextBot(), user, "NS_USER_UNKNOWN", argv[0]); + reply(textclient, user, "NS_USER_UNKNOWN", argv[0]); return; } cuser->flags |= USERFLAG_ISTMPUSER; } if(cuser->flags & USERFLAG_ISAUTHED) { - neonserv_cmd_noregister_async1(client, getTextBot(), user, chan, event, cuser->auth, duration, reason); + neonserv_cmd_noregister_async1(client, textclient, user, chan, event, cuser->auth, duration, reason); } else { struct neonserv_cmd_noregister_cache *cache = malloc(sizeof(*cache)); if (!cache) { @@ -102,14 +102,14 @@ CMD_BIND(neonserv_cmd_noregister) { return; } cache->client = client; - cache->textclient = getTextBot(); + cache->textclient = textclient; cache->user = user; cache->chan = chan; cache->event = event; cache->nick = strdup(user->nick); cache->duration = duration; cache->reason = strdup(reason); - get_userauth(cuser, neonserv_cmd_noregister_nick_lookup, cache); + get_userauth(cuser, module_id, neonserv_cmd_noregister_nick_lookup, cache); } } } @@ -159,10 +159,10 @@ static void neonserv_cmd_noregister_async1(struct ClientSocket *client, struct C else userid = 0; printf_mysql_query("INSERT INTO `donotregister` (`dnr_target`, `dnr_timeout`, `dnr_user`, `dnr_reason`) VALUES ('%s', '%lu', '%d', '%s')", escape_string(auth), (duration ? (time(0)+duration) : 0), userid, escape_string(reason)); - reply(getTextBot(), user, "NS_NOREGISTER_DONE", auth); + reply(textclient, user, "NS_NOREGISTER_DONE", auth); } -static void neonserv_cmd_noregister_list(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, struct Event *event, char **argv, int argc) { +static void neonserv_cmd_noregister_list(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char **argv, int argc) { struct Table *table; int entrys = 0; MYSQL_RES *res; @@ -191,9 +191,9 @@ static void neonserv_cmd_noregister_list(struct ClientSocket *client, struct Use char **table_lines = table_end(table); int i; for(i = 0; i < table->entrys; i++) { - reply(getTextBot(), user, table_lines[i]); + reply(textclient, user, table_lines[i]); } if(!entrys) - reply(getTextBot(), user, "NS_TABLE_NONE"); + reply(textclient, user, "NS_TABLE_NONE"); table_free(table); }