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;
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);
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
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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) {
return;
}
cache->client = client;
- cache->textclient = getTextBot();
+ cache->textclient = textclient;
cache->user = user;
cache->chan = chan;
cache->event = event;
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;
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);
}