X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fmodules%2FNeonServ.mod%2Fcmd_neonserv_noregister.c;h=2c15f49d7d2c7b8e74bb6707f449999968fdb4aa;hb=ee39770362f69ced5b52104b622582e882af0b77;hp=e2744f41318134a544eabc83d361898ab12f44bb;hpb=902ebfe5551be2daa3edf8141bcee91f62c0a5e0;p=NeonServV5.git diff --git a/src/modules/NeonServ.mod/cmd_neonserv_noregister.c b/src/modules/NeonServ.mod/cmd_neonserv_noregister.c index e2744f4..2c15f49 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.6 * 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,27 +54,27 @@ 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 struct neonserv_cmd_noregister_cache *cache = malloc(sizeof(*cache)); if (!cache) { - perror("malloc() failed"); + printf_log("neonserv", LOG_ERROR, "%s:%d malloc() failed", __FILE__, __LINE__); return; } cache->client = client; - cache->textclient = getTextBot(); + cache->textclient = textclient; cache->user = user; cache->chan = chan; cache->event = event; @@ -88,21 +88,21 @@ CMD_BIND(neonserv_cmd_noregister) { 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) { - perror("malloc() failed"); + printf_log("neonserv", LOG_ERROR, "%s:%d malloc() failed", __FILE__, __LINE__); return; } cache->client = client; - cache->textclient = getTextBot(); + cache->textclient = textclient; cache->user = user; cache->chan = chan; cache->event = event; @@ -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); }