From d1611b640bcd27e1a91a99ef32127bc722e50a36 Mon Sep 17 00:00:00 2001 From: rburchell Date: Sun, 15 Feb 2009 22:29:18 +0000 Subject: Remove User::na, use User::nc everywhere. Will probably break everything, but opens the door to decoupling NC from NA, and means commands can now be run without bothering about changinc nick :) More tweaking for na/nc usage. It compiles, but it's still a work in progress. Again, this compiles, but I *bet* there's no chance in hell it'll work. :) Slightly better. Set User::nc correctly. Fix crash with unregistered nicks in core and ns_access. Fix glist to work when you're not on that particular nick. Fix ns_set to not crash and burn horribly. Fix ns_set and ns_logout to not do bad things. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2076 5417fbe8-f217-4b02-8779-1006273d7864 --- src/core/bs_info.c | 66 +++++++++++++++++++++++------------------------ src/core/bs_kick.c | 2 +- src/core/cs_akick.c | 8 +++--- src/core/cs_help.c | 2 +- src/core/cs_info.c | 34 ++++++++++++------------ src/core/cs_register.c | 4 --- src/core/cs_sendpass.c | 14 +++++----- src/core/ms_cancel.c | 2 +- src/core/ms_check.c | 2 +- src/core/ms_del.c | 2 +- src/core/ms_info.c | 14 +++++----- src/core/ms_list.c | 2 +- src/core/ms_read.c | 2 +- src/core/ms_rsend.c | 9 +++---- src/core/ms_set.c | 36 ++++++++++++++------------ src/core/ns_access.c | 70 +++++++++++++++++++++++++------------------------- src/core/ns_alist.c | 4 +-- src/core/ns_drop.c | 4 +-- src/core/ns_forbid.c | 8 +++--- src/core/ns_ghost.c | 9 +++---- src/core/ns_group.c | 39 +++++++++++----------------- src/core/ns_identify.c | 10 +++----- src/core/ns_info.c | 27 ++++++++++--------- src/core/ns_list.c | 2 +- src/core/ns_logout.c | 19 +++++++------- src/core/ns_recover.c | 8 +++--- src/core/ns_register.c | 26 ++++++++----------- src/core/ns_release.c | 4 +-- src/core/ns_saset.c | 9 ++----- src/core/ns_set.c | 42 +++++++++++++----------------- src/core/ns_update.c | 16 +++++++----- src/core/os_akill.c | 2 +- src/core/os_defcon.c | 4 +-- src/core/os_session.c | 2 +- src/core/os_set.c | 4 +-- src/core/os_sgline.c | 2 +- src/core/os_sqline.c | 2 +- src/core/os_szline.c | 2 +- 38 files changed, 240 insertions(+), 274 deletions(-) (limited to 'src/core') diff --git a/src/core/bs_info.c b/src/core/bs_info.c index 4f65d990d..ff7c2c932 100644 --- a/src/core/bs_info.c +++ b/src/core/bs_info.c @@ -61,7 +61,7 @@ class CommandBSInfo : public Command int need_comma = 0; char buf[BUFSIZE], *end; - const char *commastr = getstring(u->na, COMMA_SPACE); + const char *commastr = getstring(u, COMMA_SPACE); if ((bi = findbot(query))) { @@ -74,7 +74,7 @@ class CommandBSInfo : public Command strftime_lang(buf, sizeof(buf), u, STRFTIME_DATE_TIME_FORMAT, tm); notice_lang(s_BotServ, u, BOT_INFO_BOT_CREATED, buf); notice_lang(s_BotServ, u, BOT_INFO_BOT_OPTIONS, - getstring(u->na, + getstring(u, (bi-> flags & BI_PRIVATE) ? BOT_INFO_OPT_PRIVATE : BOT_INFO_OPT_NONE)); @@ -104,137 +104,137 @@ class CommandBSInfo : public Command if (ci->botflags & BS_KICK_BADWORDS) { if (ci->ttb[TTB_BADWORDS]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BADWORDS_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_BADWORDS]); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BADWORDS, - getstring(u->na, BOT_INFO_ACTIVE)); + getstring(u, BOT_INFO_ACTIVE)); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BADWORDS, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_BOLDS) { if (ci->ttb[TTB_BOLDS]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BOLDS_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_BOLDS]); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BOLDS, - getstring(u->na, BOT_INFO_ACTIVE)); + getstring(u, BOT_INFO_ACTIVE)); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_BOLDS, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_CAPS) { if (ci->ttb[TTB_CAPS]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_CAPS_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_CAPS], ci->capsmin, ci->capspercent); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_CAPS_ON, - getstring(u->na, BOT_INFO_ACTIVE), ci->capsmin, + getstring(u, BOT_INFO_ACTIVE), ci->capsmin, ci->capspercent); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_CAPS_OFF, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_COLORS) { if (ci->ttb[TTB_COLORS]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_COLORS_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_COLORS]); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_COLORS, - getstring(u->na, BOT_INFO_ACTIVE)); + getstring(u, BOT_INFO_ACTIVE)); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_COLORS, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_FLOOD) { if (ci->ttb[TTB_FLOOD]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_FLOOD_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_FLOOD], ci->floodlines, ci->floodsecs); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_FLOOD_ON, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->floodlines, ci->floodsecs); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_FLOOD_OFF, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_REPEAT) { if (ci->ttb[TTB_REPEAT]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REPEAT_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_REPEAT], ci->repeattimes); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REPEAT_ON, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->repeattimes); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REPEAT_OFF, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_REVERSES) { if (ci->ttb[TTB_REVERSES]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REVERSES_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_REVERSES]); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REVERSES, - getstring(u->na, BOT_INFO_ACTIVE)); + getstring(u, BOT_INFO_ACTIVE)); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_REVERSES, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); if (ci->botflags & BS_KICK_UNDERLINES) { if (ci->ttb[TTB_UNDERLINES]) notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_UNDERLINES_BAN, - getstring(u->na, BOT_INFO_ACTIVE), + getstring(u, BOT_INFO_ACTIVE), ci->ttb[TTB_UNDERLINES]); else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_UNDERLINES, - getstring(u->na, BOT_INFO_ACTIVE)); + getstring(u, BOT_INFO_ACTIVE)); } else notice_lang(s_BotServ, u, BOT_INFO_CHAN_KICK_UNDERLINES, - getstring(u->na, BOT_INFO_INACTIVE)); + getstring(u, BOT_INFO_INACTIVE)); end = buf; *end = 0; if (ci->botflags & BS_DONTKICKOPS) { end += snprintf(end, sizeof(buf) - (end - buf), "%s", - getstring(u->na, BOT_INFO_OPT_DONTKICKOPS)); + getstring(u, BOT_INFO_OPT_DONTKICKOPS)); need_comma = 1; } if (ci->botflags & BS_DONTKICKVOICES) { end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", - getstring(u->na, BOT_INFO_OPT_DONTKICKVOICES)); + getstring(u, BOT_INFO_OPT_DONTKICKVOICES)); need_comma = 1; } if (ci->botflags & BS_FANTASY) { end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", - getstring(u->na, BOT_INFO_OPT_FANTASY)); + getstring(u, BOT_INFO_OPT_FANTASY)); need_comma = 1; } if (ci->botflags & BS_GREET) { end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", - getstring(u->na, BOT_INFO_OPT_GREET)); + getstring(u, BOT_INFO_OPT_GREET)); need_comma = 1; } if (ci->botflags & BS_NOBOT) { end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", - getstring(u->na, BOT_INFO_OPT_NOBOT)); + getstring(u, BOT_INFO_OPT_NOBOT)); need_comma = 1; } if (ci->botflags & BS_SYMBIOSIS) { end += snprintf(end, sizeof(buf) - (end - buf), "%s%s", need_comma ? commastr : "", - getstring(u->na, BOT_INFO_OPT_SYMBIOSIS)); + getstring(u, BOT_INFO_OPT_SYMBIOSIS)); need_comma = 1; } notice_lang(s_BotServ, u, BOT_INFO_CHAN_OPTIONS, - *buf ? buf : getstring(u->na, BOT_INFO_OPT_NONE)); + *buf ? buf : getstring(u, BOT_INFO_OPT_NONE)); } else notice_lang(s_BotServ, u, BOT_INFO_NOT_FOUND, query); diff --git a/src/core/bs_kick.c b/src/core/bs_kick.c index 87ef4111a..53485f011 100644 --- a/src/core/bs_kick.c +++ b/src/core/bs_kick.c @@ -44,7 +44,7 @@ class CommandBSKick : public Command notice_lang(s_BotServ, u, CHAN_X_NOT_REGISTERED, chan); else if (ci->flags & CI_FORBIDDEN) notice_lang(s_BotServ, u, CHAN_X_FORBIDDEN, chan); - else if (!check_access(u, ci, CA_SET) && !u->na->nc->HasCommand("botserv/administration")) + else if (!check_access(u, ci, CA_SET) && !u->nc->HasCommand("botserv/administration")) notice_lang(s_BotServ, u, ACCESS_DENIED); else if (!ci->bi) notice_help(s_BotServ, u, BOT_NOT_ASSIGNED); diff --git a/src/core/cs_akick.c b/src/core/cs_akick.c index 4bd2b10bd..a0efdc067 100644 --- a/src/core/cs_akick.c +++ b/src/core/cs_akick.c @@ -82,7 +82,7 @@ int akick_list(User * u, int index, ChannelInfo * ci, int *sent_header) ((akick->flags & AK_ISNICK) ? akick->u.nc-> display : akick->u.mask), (akick->reason ? akick-> - reason : getstring(u->na, NO_REASON))); + reason : getstring(u, NO_REASON))); return 1; } @@ -113,7 +113,7 @@ int akick_view(User * u, int index, ChannelInfo * ci, int *sent_header) strftime_lang(timebuf, sizeof(timebuf), u, STRFTIME_SHORT_DATE_FORMAT, &tm); } else { - snprintf(timebuf, sizeof(timebuf), "%s", getstring(u->na, UNKNOWN)); + snprintf(timebuf, sizeof(timebuf), "%s", getstring(u, UNKNOWN)); } notice_lang(s_ChanServ, u, @@ -122,11 +122,11 @@ int akick_view(User * u, int index, ChannelInfo * ci, int *sent_header) CHAN_AKICK_VIEW_FORMAT), index + 1, ((akick->flags & AK_ISNICK) ? akick->u.nc-> display : akick->u.mask), - akick->creator ? akick->creator : getstring(u->na, + akick->creator ? akick->creator : getstring(u, UNKNOWN), timebuf, (akick->reason ? akick-> - reason : getstring(u->na, NO_REASON))); + reason : getstring(u, NO_REASON))); return 1; } diff --git a/src/core/cs_help.c b/src/core/cs_help.c index eadc0ea8f..17ec5fe4c 100644 --- a/src/core/cs_help.c +++ b/src/core/cs_help.c @@ -52,7 +52,7 @@ class CommandCSHelp : public Command { notice_help(s_ChanServ, u, CHAN_HELP_LEVELS_DESC_FORMAT, levelinfo_maxwidth, levelinfo[i].name, - getstring(u->na, levelinfo[i].desc)); + getstring(u, levelinfo[i].desc)); } } else diff --git a/src/core/cs_info.c b/src/core/cs_info.c index 4bb8495e4..09d92e84f 100644 --- a/src/core/cs_info.c +++ b/src/core/cs_info.c @@ -28,11 +28,11 @@ void myChanServHelp(User * u) class CommandCSInfo : public Command { // cannot be const, as it is modified. - void CheckOptStr(std::string &buf, int opt, const std::string &str, ChannelInfo *ci, NickAlias *na) + void CheckOptStr(std::string &buf, int opt, const std::string &str, ChannelInfo *ci, NickCore *nc) { if (ci->flags & opt) { - const char *commastr = getstring(na, COMMA_SPACE); + const char *commastr = getstring(nc, COMMA_SPACE); if (!buf.empty()) buf += commastr; @@ -69,7 +69,7 @@ class CommandCSInfo : public Command notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN_OPER, chan, ci->forbidby, (ci->forbidreason ? ci-> - forbidreason : getstring(u->na, NO_REASON))); + forbidreason : getstring(u, NO_REASON))); else notice_lang(s_ChanServ, u, CHAN_X_FORBIDDEN, chan); @@ -115,19 +115,19 @@ class CommandCSInfo : public Command notice_lang(s_ChanServ, u, CHAN_INFO_BANTYPE, ci->bantype); std::string optbuf; - CheckOptStr(optbuf, CI_KEEPTOPIC, getstring(u->na, CHAN_INFO_OPT_KEEPTOPIC), ci, u->na); - CheckOptStr(optbuf, CI_OPNOTICE, getstring(u->na, CHAN_INFO_OPT_OPNOTICE), ci, u->na); - CheckOptStr(optbuf, CI_PEACE, getstring(u->na, CHAN_INFO_OPT_PEACE), ci, u->na); - CheckOptStr(optbuf, CI_PRIVATE, getstring(u->na, CHAN_INFO_OPT_PRIVATE), ci, u->na); - CheckOptStr(optbuf, CI_RESTRICTED, getstring(u->na, CHAN_INFO_OPT_RESTRICTED), ci, u->na); - CheckOptStr(optbuf, CI_SECURE, getstring(u->na, CHAN_INFO_OPT_SECURE), ci, u->na); - CheckOptStr(optbuf, CI_SECUREFOUNDER, getstring(u->na, CHAN_INFO_OPT_SECUREFOUNDER), ci, u->na); - CheckOptStr(optbuf, CI_SECUREOPS, getstring(u->na, CHAN_INFO_OPT_SECUREOPS), ci, u->na); - CheckOptStr(optbuf, CI_SIGNKICK | CI_SIGNKICK_LEVEL, getstring(u->na, CHAN_INFO_OPT_SIGNKICK), ci, u->na); - CheckOptStr(optbuf, CI_TOPICLOCK, getstring(u->na, CHAN_INFO_OPT_TOPICLOCK), ci, u->na); - CheckOptStr(optbuf, CI_XOP, getstring(u->na, CHAN_INFO_OPT_XOP), ci, u->na); - - notice_lang(s_ChanServ, u, CHAN_INFO_OPTIONS, optbuf.empty() ? getstring(u->na, CHAN_INFO_OPT_NONE) : optbuf.c_str()); + CheckOptStr(optbuf, CI_KEEPTOPIC, getstring(u, CHAN_INFO_OPT_KEEPTOPIC), ci, u->nc); + CheckOptStr(optbuf, CI_OPNOTICE, getstring(u, CHAN_INFO_OPT_OPNOTICE), ci, u->nc); + CheckOptStr(optbuf, CI_PEACE, getstring(u, CHAN_INFO_OPT_PEACE), ci, u->nc); + CheckOptStr(optbuf, CI_PRIVATE, getstring(u, CHAN_INFO_OPT_PRIVATE), ci, u->nc); + CheckOptStr(optbuf, CI_RESTRICTED, getstring(u, CHAN_INFO_OPT_RESTRICTED), ci, u->nc); + CheckOptStr(optbuf, CI_SECURE, getstring(u, CHAN_INFO_OPT_SECURE), ci, u->nc); + CheckOptStr(optbuf, CI_SECUREFOUNDER, getstring(u, CHAN_INFO_OPT_SECUREFOUNDER), ci, u->nc); + CheckOptStr(optbuf, CI_SECUREOPS, getstring(u, CHAN_INFO_OPT_SECUREOPS), ci, u->nc); + CheckOptStr(optbuf, CI_SIGNKICK | CI_SIGNKICK_LEVEL, getstring(u, CHAN_INFO_OPT_SIGNKICK), ci, u->nc); + CheckOptStr(optbuf, CI_TOPICLOCK, getstring(u, CHAN_INFO_OPT_TOPICLOCK), ci, u->nc); + CheckOptStr(optbuf, CI_XOP, getstring(u, CHAN_INFO_OPT_XOP), ci, u->nc); + + notice_lang(s_ChanServ, u, CHAN_INFO_OPTIONS, optbuf.empty() ? getstring(u, CHAN_INFO_OPT_NONE) : optbuf.c_str()); notice_lang(s_ChanServ, u, CHAN_INFO_MODE_LOCK, get_mlock_modes(ci, 1)); // XXX: we could just as easily (and tidily) merge this in with the flags display above. @@ -148,7 +148,7 @@ class CommandCSInfo : public Command } if (ci->flags & CI_SUSPENDED) { - notice_lang(s_ChanServ, u, CHAN_X_SUSPENDED, ci->forbidby, (ci->forbidreason ? ci->forbidreason : getstring(u->na, NO_REASON))); + notice_lang(s_ChanServ, u, CHAN_X_SUSPENDED, ci->forbidby, (ci->forbidreason ? ci->forbidreason : getstring(u, NO_REASON))); } if (!show_all && (check_access(u, ci, CA_INFO) || is_servadmin)) diff --git a/src/core/cs_register.c b/src/core/cs_register.c index b632bfa6e..2caeaa567 100644 --- a/src/core/cs_register.c +++ b/src/core/cs_register.c @@ -56,10 +56,6 @@ class CommandCSRegister : public Command notice_lang(s_ChanServ, u, CHAN_SYMBOL_REQUIRED); else if (!ircdproto->IsChannelValid(chan)) notice_lang(s_ChanServ, u, CHAN_X_INVALID, chan); - else if (!u->na || !(nc = u->na->nc)) - notice_lang(s_ChanServ, u, CHAN_MUST_REGISTER_NICK, s_NickServ); - else if (!nick_recognized(u)) - notice_lang(s_ChanServ, u, CHAN_MUST_IDENTIFY_NICK, s_NickServ, s_NickServ); else if (!(c = findchan(chan))) notice_lang(s_ChanServ, u, CHAN_REGISTER_NONE_CHANNEL, chan); else if ((ci = cs_findchan(chan))) diff --git a/src/core/cs_sendpass.c b/src/core/cs_sendpass.c index 0cfef402b..e61f6e2ee 100644 --- a/src/core/cs_sendpass.c +++ b/src/core/cs_sendpass.c @@ -44,24 +44,24 @@ class CommandCSSendPass : public Command { MailInfo *mail; - snprintf(buf, sizeof(buf), getstring2(founder, CHAN_SENDPASS_SUBJECT), ci->name); + snprintf(buf, sizeof(buf), getstring(founder, CHAN_SENDPASS_SUBJECT), ci->name); mail = MailBegin(u, founder, buf, s_ChanServ); if (!mail) return MOD_CONT; - fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_HEAD)); + fprintf(mail->pipe, getstring(founder, CHAN_SENDPASS_HEAD)); fprintf(mail->pipe, "\n\n"); - fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_LINE_1), + fprintf(mail->pipe, getstring(founder, CHAN_SENDPASS_LINE_1), ci->name); fprintf(mail->pipe, "\n\n"); - fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_LINE_2), + fprintf(mail->pipe, getstring(founder, CHAN_SENDPASS_LINE_2), tmp_pass); fprintf(mail->pipe, "\n\n"); - fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_LINE_3)); + fprintf(mail->pipe, getstring(founder, CHAN_SENDPASS_LINE_3)); fprintf(mail->pipe, "\n\n"); - fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_LINE_4)); + fprintf(mail->pipe, getstring(founder, CHAN_SENDPASS_LINE_4)); fprintf(mail->pipe, "\n\n"); - fprintf(mail->pipe, getstring2(founder, CHAN_SENDPASS_LINE_5), + fprintf(mail->pipe, getstring(founder, CHAN_SENDPASS_LINE_5), NetworkName); fprintf(mail->pipe, "\n.\n"); diff --git a/src/core/ms_cancel.c b/src/core/ms_cancel.c index 1f24ead6d..48867563e 100644 --- a/src/core/ms_cancel.c +++ b/src/core/ms_cancel.c @@ -46,7 +46,7 @@ class CommandMSCancel : public Command for (i = mi->memos.size() - 1; i >= 0; --i) { - if ((mi->memos[i]->flags & MF_UNREAD) && !stricmp(mi->memos[i]->sender, u->na->nc->display) && (!(mi->memos[i]->flags & MF_NOTIFYS))) + if ((mi->memos[i]->flags & MF_UNREAD) && !stricmp(mi->memos[i]->sender, u->nc->display) && (!(mi->memos[i]->flags & MF_NOTIFYS))) { delmemo(mi, mi->memos[i]->number); notice_lang(s_MemoServ, u, MEMO_CANCELLED, name); diff --git a/src/core/ms_check.c b/src/core/ms_check.c index 0685cdc79..19f376873 100644 --- a/src/core/ms_check.c +++ b/src/core/ms_check.c @@ -57,7 +57,7 @@ class CommandMSCheck : public Command for (i = mi->memos.size() - 1; i >= 0; --i) { - if (!stricmp(mi->memos[i]->sender, u->na->nc->display)) + if (!stricmp(mi->memos[i]->sender, u->nc->display)) { found = 1; /* Yes, we've found the memo */ diff --git a/src/core/ms_del.c b/src/core/ms_del.c index 7d493bffe..cb20a2b22 100644 --- a/src/core/ms_del.c +++ b/src/core/ms_del.c @@ -67,7 +67,7 @@ class CommandMSDel : public Command notice_lang(s_MemoServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); return MOD_CONT; } - mi = &u->na->nc->memos; + mi = &u->nc->memos; } if (!numstr || (!isdigit(*numstr) && stricmp(numstr, "ALL") && stricmp(numstr, "LAST"))) this->OnSyntaxError(u); diff --git a/src/core/ms_info.c b/src/core/ms_info.c index 2d2ace3ef..68cf9e11d 100644 --- a/src/core/ms_info.c +++ b/src/core/ms_info.c @@ -82,11 +82,11 @@ class CommandMSInfo : public Command notice_lang(s_MemoServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); return MOD_CONT; } - mi = &u->na->nc->memos; - hardmax = u->na->nc->flags & NI_MEMO_HARDMAX ? 1 : 0; + mi = &u->nc->memos; + hardmax = u->nc->flags & NI_MEMO_HARDMAX ? 1 : 0; } - if (name && (ci || na->nc != u->na->nc)) + if (name && (ci || na->nc != u->nc)) { if (mi->memos.empty()) notice_lang(s_MemoServ, u, MEMO_INFO_X_NO_MEMOS, name); @@ -145,7 +145,7 @@ class CommandMSInfo : public Command notice_lang(s_MemoServ, u, MEMO_INFO_X_NOTIFY_OFF, name); } } - else /* !name || (!ci || na->nc == u->na->nc) */ + else /* !name || (!ci || na->nc == u->nc) */ { if (mi->memos.empty()) notice_lang(s_MemoServ, u, MEMO_INFO_NO_MEMOS); @@ -192,11 +192,11 @@ class CommandMSInfo : public Command notice_lang(s_MemoServ, u, MEMO_INFO_NO_LIMIT); /* Ripped too. But differently because of a seg fault (loughs) */ - if ((u->na->nc->flags & NI_MEMO_RECEIVE) && (u->na->nc->flags & NI_MEMO_SIGNON)) + if ((u->nc->flags & NI_MEMO_RECEIVE) && (u->nc->flags & NI_MEMO_SIGNON)) notice_lang(s_MemoServ, u, MEMO_INFO_NOTIFY_ON); - else if (u->na->nc->flags & NI_MEMO_RECEIVE) + else if (u->nc->flags & NI_MEMO_RECEIVE) notice_lang(s_MemoServ, u, MEMO_INFO_NOTIFY_RECEIVE); - else if (u->na->nc->flags & NI_MEMO_SIGNON) + else if (u->nc->flags & NI_MEMO_SIGNON) notice_lang(s_MemoServ, u, MEMO_INFO_NOTIFY_SIGNON); else notice_lang(s_MemoServ, u, MEMO_INFO_NOTIFY_OFF); diff --git a/src/core/ms_list.c b/src/core/ms_list.c index f3b934c46..4465a2e47 100644 --- a/src/core/ms_list.c +++ b/src/core/ms_list.c @@ -62,7 +62,7 @@ class CommandMSList : public Command notice_lang(s_MemoServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); return MOD_CONT; } - mi = &u->na->nc->memos; + mi = &u->nc->memos; } if (param && !isdigit(*param) && stricmp(param, "NEW")) this->OnSyntaxError(u); diff --git a/src/core/ms_read.c b/src/core/ms_read.c index 962adf9e4..bf07e30e0 100644 --- a/src/core/ms_read.c +++ b/src/core/ms_read.c @@ -62,7 +62,7 @@ class CommandMSRead : public Command notice_lang(s_MemoServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); return MOD_CONT; } - mi = &u->na->nc->memos; + mi = &u->nc->memos; } num = numstr ? atoi(numstr) : -1; if (!numstr || (stricmp(numstr, "LAST") && stricmp(numstr, "NEW") && num <= 0)) diff --git a/src/core/ms_rsend.c b/src/core/ms_rsend.c index 9a903264b..cc00d10bf 100644 --- a/src/core/ms_rsend.c +++ b/src/core/ms_rsend.c @@ -34,13 +34,10 @@ class CommandMSRSend : public Command /* prevent user from rsend to themselves */ if ((na = findnick(name))) { - if (u->na) + if (na->nc == u->nc) { - if (!stricmp(na->nc->display, u->na->nc->display)) - { - notice_lang(s_MemoServ, u, MEMO_NO_RSEND_SELF); - return MOD_CONT; - } + notice_lang(s_MemoServ, u, MEMO_NO_RSEND_SELF); + return MOD_CONT; } else { diff --git a/src/core/ms_set.c b/src/core/ms_set.c index 9d92c9388..67d792047 100644 --- a/src/core/ms_set.c +++ b/src/core/ms_set.c @@ -26,26 +26,26 @@ class CommandMSSet : public Command if (!stricmp(param, "ON")) { - u->na->nc->flags |= NI_MEMO_SIGNON | NI_MEMO_RECEIVE; + u->nc->flags |= NI_MEMO_SIGNON | NI_MEMO_RECEIVE; notice_lang(s_MemoServ, u, MEMO_SET_NOTIFY_ON, s_MemoServ); } else if (!stricmp(param, "LOGON")) { - u->na->nc->flags |= NI_MEMO_SIGNON; - u->na->nc->flags &= ~NI_MEMO_RECEIVE; + u->nc->flags |= NI_MEMO_SIGNON; + u->nc->flags &= ~NI_MEMO_RECEIVE; notice_lang(s_MemoServ, u, MEMO_SET_NOTIFY_LOGON, s_MemoServ); } else if (!stricmp(param, "NEW")) { - u->na->nc->flags &= ~NI_MEMO_SIGNON; - u->na->nc->flags |= NI_MEMO_RECEIVE; + u->nc->flags &= ~NI_MEMO_SIGNON; + u->nc->flags |= NI_MEMO_RECEIVE; notice_lang(s_MemoServ, u, MEMO_SET_NOTIFY_NEW, s_MemoServ); } else if (!stricmp(param, "MAIL")) { - if (u->na->nc->email) + if (u->nc->email) { - u->na->nc->flags |= NI_MEMO_MAIL; + u->nc->flags |= NI_MEMO_MAIL; notice_lang(s_MemoServ, u, MEMO_SET_NOTIFY_MAIL); } else @@ -53,12 +53,12 @@ class CommandMSSet : public Command } else if (!stricmp(param, "NOMAIL")) { - u->na->nc->flags &= ~NI_MEMO_MAIL; + u->nc->flags &= ~NI_MEMO_MAIL; notice_lang(s_MemoServ, u, MEMO_SET_NOTIFY_NOMAIL); } else if (!stricmp(param, "OFF")) { - u->na->nc->flags &= ~(NI_MEMO_SIGNON | NI_MEMO_RECEIVE); + u->nc->flags &= ~(NI_MEMO_SIGNON | NI_MEMO_RECEIVE); notice_lang(s_MemoServ, u, MEMO_SET_NOTIFY_OFF, s_MemoServ); } else @@ -73,7 +73,7 @@ class CommandMSSet : public Command const char *p3 = params.size() > 3 ? params[3].c_str() : NULL; const char *user = NULL, *chan = NULL; int32 limit; - NickAlias *na = u->na; + NickCore *nc = u->nc; ChannelInfo *ci = NULL; int is_servadmin = is_services_admin(u); @@ -104,6 +104,7 @@ class CommandMSSet : public Command { if (p2 && stricmp(p2, "HARD") && !chan) { + NickAlias *na; if (!(na = findnick(p1))) { notice_lang(s_MemoServ, u, NICK_X_NOT_REGISTERED, p1); @@ -111,6 +112,7 @@ class CommandMSSet : public Command } user = p1; mi = &na->nc->memos; + nc = na->nc; p1 = p2; p2 = p3; } @@ -134,9 +136,9 @@ class CommandMSSet : public Command else { if (p2) - na->nc->flags |= NI_MEMO_HARDMAX; + nc->flags |= NI_MEMO_HARDMAX; else - na->nc->flags &= ~NI_MEMO_HARDMAX; + nc->flags &= ~NI_MEMO_HARDMAX; } limit = atoi(p1); if (limit < 0 || limit > 32767) @@ -158,7 +160,7 @@ class CommandMSSet : public Command notice_lang(s_MemoServ, u, MEMO_SET_LIMIT_FORBIDDEN, chan); return MOD_CONT; } - else if (!chan && (na->nc->flags & NI_MEMO_HARDMAX)) { + else if (!chan && (nc->flags & NI_MEMO_HARDMAX)) { notice_lang(s_MemoServ, u, MEMO_SET_YOUR_LIMIT_FORBIDDEN); return MOD_CONT; } @@ -182,21 +184,21 @@ class CommandMSSet : public Command mi->memomax = limit; if (limit > 0) { - if (!chan && na->nc == u->na->nc) + if (!chan && nc == u->nc) notice_lang(s_MemoServ, u, MEMO_SET_YOUR_LIMIT, limit); else notice_lang(s_MemoServ, u, MEMO_SET_LIMIT, chan ? chan : user, limit); } else if (!limit) { - if (!chan && na->nc == u->na->nc) + if (!chan && nc == u->nc) notice_lang(s_MemoServ, u, MEMO_SET_YOUR_LIMIT_ZERO); else notice_lang(s_MemoServ, u, MEMO_SET_LIMIT_ZERO, chan ? chan : user); } else { - if (!chan && na->nc == u->na->nc) + if (!chan && nc == u->nc) notice_lang(s_MemoServ, u, MEMO_UNSET_YOUR_LIMIT); else notice_lang(s_MemoServ, u, MEMO_UNSET_LIMIT, @@ -212,7 +214,7 @@ class CommandMSSet : public Command CommandReturn Execute(User *u, std::vector ¶ms) { const char *cmd = params[0].c_str(); - MemoInfo *mi = &u->na->nc->memos; + MemoInfo *mi = &u->nc->memos; if (readonly) { diff --git a/src/core/ns_access.c b/src/core/ns_access.c index 07fce81a4..7afeb1559 100644 --- a/src/core/ns_access.c +++ b/src/core/ns_access.c @@ -20,32 +20,34 @@ void myNickServHelp(User *u); class CommandNSAccess : public Command { private: - CommandReturn DoServAdminList(User *u, std::vector ¶ms, NickAlias *na) + CommandReturn DoServAdminList(User *u, std::vector ¶ms, NickCore *nc) { const char *mask = params.size() > 2 ? params[2].c_str() : NULL; char **access; int i; - if (!na->nc->accesscount) + if (!nc->accesscount) { - notice_lang(s_NickServ, u, NICK_ACCESS_LIST_X_EMPTY, na->nick); + notice_lang(s_NickServ, u, NICK_ACCESS_LIST_X_EMPTY, nc->display); return MOD_CONT; } +/* reinstate when forbidden is moved to a group flag if (na->status & NS_FORBIDDEN) { notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick); return MOD_CONT; } +*/ - if (na->nc->flags & NI_SUSPENDED) + if (nc->flags & NI_SUSPENDED) { - notice_lang(s_NickServ, u, NICK_X_SUSPENDED, na->nick); + notice_lang(s_NickServ, u, NICK_X_SUSPENDED, nc->display); return MOD_CONT; } notice_lang(s_NickServ, u, NICK_ACCESS_LIST_X, params[1].c_str()); - for (access = na->nc->access, i = 0; i < na->nc->accesscount; ++access, ++i) + for (access = nc->access, i = 0; i < nc->accesscount; ++access, ++i) { if (mask && !match_wild(mask, *access)) continue; @@ -55,7 +57,7 @@ class CommandNSAccess : public Command return MOD_CONT; } - CommandReturn DoAdd(User *u, std::vector ¶ms, NickAlias *na, const char *mask) + CommandReturn DoAdd(User *u, std::vector ¶ms, NickCore *nc, const char *mask) { char **access; int i; @@ -66,13 +68,13 @@ class CommandNSAccess : public Command return MOD_CONT; } - if (na->nc->accesscount >= NSAccessMax) + if (nc->accesscount >= NSAccessMax) { notice_lang(s_NickServ, u, NICK_ACCESS_REACHED_LIMIT, NSAccessMax); return MOD_CONT; } - for (access = na->nc->access, i = 0; i < na->nc->accesscount; ++access, ++i) + for (access = nc->access, i = 0; i < nc->accesscount; ++access, ++i) { if (!strcmp(*access, mask)) { @@ -81,15 +83,15 @@ class CommandNSAccess : public Command } } - ++na->nc->accesscount; - na->nc->access = static_cast(srealloc(na->nc->access, sizeof(char *) * na->nc->accesscount)); - na->nc->access[na->nc->accesscount - 1] = sstrdup(mask); + ++nc->accesscount; + nc->access = static_cast(srealloc(nc->access, sizeof(char *) * nc->accesscount)); + nc->access[nc->accesscount - 1] = sstrdup(mask); notice_lang(s_NickServ, u, NICK_ACCESS_ADDED, mask); return MOD_CONT; } - CommandReturn DoDel(User *u, std::vector ¶ms, NickAlias *na, const char *mask) + CommandReturn DoDel(User *u, std::vector ¶ms, NickCore *nc, const char *mask) { char **access; int i; @@ -100,12 +102,12 @@ class CommandNSAccess : public Command return MOD_CONT; } - for (access = na->nc->access, i = 0; i < na->nc->accesscount; ++access, ++i) + for (access = nc->access, i = 0; i < nc->accesscount; ++access, ++i) { if (!stricmp(*access, mask)) break; } - if (i == na->nc->accesscount) + if (i == nc->accesscount) { notice_lang(s_NickServ, u, NICK_ACCESS_NOT_FOUND, mask); return MOD_CONT; @@ -113,33 +115,33 @@ class CommandNSAccess : public Command notice_lang(s_NickServ, u, NICK_ACCESS_DELETED, *access); delete [] *access; - --na->nc->accesscount; - if (i < na->nc->accesscount) /* if it wasn't the last entry... */ - memmove(access, access + 1, (na->nc->accesscount - i) * sizeof(char *)); - if (na->nc->accesscount) /* if there are any entries left... */ - na->nc->access = static_cast(srealloc(na->nc->access, na->nc->accesscount * sizeof(char *))); + --nc->accesscount; + if (i < nc->accesscount) /* if it wasn't the last entry... */ + memmove(access, access + 1, (nc->accesscount - i) * sizeof(char *)); + if (nc->accesscount) /* if there are any entries left... */ + nc->access = static_cast(srealloc(nc->access, nc->accesscount * sizeof(char *))); else { - free(na->nc->access); - na->nc->access = NULL; + free(nc->access); + nc->access = NULL; } return MOD_CONT; } - CommandReturn DoList(User *u, std::vector ¶ms, NickAlias *na, const char *mask) + CommandReturn DoList(User *u, std::vector ¶ms, NickCore *nc, const char *mask) { char **access; int i; - if (!na->nc->accesscount) + if (!nc->accesscount) { notice_lang(s_NickServ, u, NICK_ACCESS_LIST_EMPTY, u->nick); return MOD_CONT; } notice_lang(s_NickServ, u, NICK_ACCESS_LIST); - for (access = na->nc->access, i = 0; i < na->nc->accesscount; ++access, ++i) + for (access = nc->access, i = 0; i < nc->accesscount; ++access, ++i) { if (mask && !match_wild(mask, *access)) continue; @@ -160,7 +162,7 @@ class CommandNSAccess : public Command NickAlias *na; if (!stricmp(cmd, "LIST") && is_services_admin(u) && mask && (na = findnick(params[1].c_str()))) - return this->DoServAdminList(u, params, na); + return this->DoServAdminList(u, params, na->nc); if (mask && !strchr(mask, '@')) { @@ -168,20 +170,18 @@ class CommandNSAccess : public Command notice_lang(s_NickServ, u, MORE_INFO, s_NickServ, "ACCESS"); } - else if (!(na = u->na)) - notice_lang(s_NickServ, u, NICK_NOT_REGISTERED); + /* else if (na->status & NS_FORBIDDEN) notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick); - else if (na->nc->flags & NI_SUSPENDED) - notice_lang(s_NickServ, u, NICK_X_SUSPENDED, na->nick); - else if (!nick_identified(u)) - notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); + */ + else if (u->nc->flags & NI_SUSPENDED) + notice_lang(s_NickServ, u, NICK_X_SUSPENDED, u->nc->display); else if (!stricmp(cmd, "ADD")) - return this->DoAdd(u, params, na, mask); + return this->DoAdd(u, params, u->nc, mask); else if (!stricmp(cmd, "DEL")) - return this->DoDel(u, params, na, mask); + return this->DoDel(u, params, u->nc, mask); else if (!stricmp(cmd, "LIST")) - return this->DoList(u, params, na, mask); + return this->DoList(u, params, u->nc, mask); else this->OnSyntaxError(u); return MOD_CONT; diff --git a/src/core/ns_alist.c b/src/core/ns_alist.c index 1d631baa2..e6218f1e1 100644 --- a/src/core/ns_alist.c +++ b/src/core/ns_alist.c @@ -46,7 +46,7 @@ class CommandNSAList : public Command if (!is_servadmin) /* Non service admins can only see their own levels */ - na = u->na; + na = findnick(u->nick); else { /* Services admins can request ALIST on nicks. @@ -61,7 +61,7 @@ class CommandNSAList : public Command if (nick) na = findnick(nick); else - na = u->na; + na = findnick(u->nick); } /* If available, get level from arguments */ diff --git a/src/core/ns_drop.c b/src/core/ns_drop.c index 33488d8f2..2d2ffc8d9 100644 --- a/src/core/ns_drop.c +++ b/src/core/ns_drop.c @@ -39,7 +39,7 @@ class CommandNSDrop : public Command return MOD_CONT; } - if (!(na = (nick ? findnick(nick) : u->na))) + if (!(na = (nick ? findnick(nick) : findnick(u->nick)))) { if (nick) { @@ -61,7 +61,7 @@ class CommandNSDrop : public Command return MOD_CONT; } - is_mine = u->na && u->na->nc == na->nc; + is_mine = u->nc && u->nc == na->nc; if (is_mine && !nick) my_nick = sstrdup(na->nick); diff --git a/src/core/ns_forbid.c b/src/core/ns_forbid.c index 5e9f396ee..aff9aec48 100644 --- a/src/core/ns_forbid.c +++ b/src/core/ns_forbid.c @@ -61,13 +61,11 @@ class CommandNSForbid : public Command if (reason) na->last_realname = sstrdup(reason); - na->u = finduser(na->nick); - if (na->u) - na->u->na = na; + User *curr = finduser(na->nick); - if (na->u) + if (curr) { - notice_lang(s_NickServ, na->u, FORCENICKCHANGE_NOW); + notice_lang(s_NickServ, curr, FORCENICKCHANGE_NOW); collide(na, 0); } diff --git a/src/core/ns_ghost.c b/src/core/ns_ghost.c index b89d8b2be..44678bbd4 100644 --- a/src/core/ns_ghost.c +++ b/src/core/ns_ghost.c @@ -28,12 +28,11 @@ class CommandNSGhost : public Command { const char *nick = params[0].c_str(); const char *pass = params.size() > 1 ? params[1].c_str() : NULL; - NickAlias *na; - User *u2; + NickAlias *na = findnick(nick); - if (!(u2 = finduser(nick))) + if (!finduser(nick)) notice_lang(s_NickServ, u, NICK_X_NOT_IN_USE, nick); - else if (!(na = u2->na)) + else if (!na) notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick); else if (na->status & NS_FORBIDDEN) notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick); @@ -63,7 +62,7 @@ class CommandNSGhost : public Command } else { - if (group_identified(u, na->nc) || (!(na->nc->flags & NI_SECURE) && is_on_access(u, na->nc))) + if (u->nc == na->nc || (!(na->nc->flags & NI_SECURE) && is_on_access(u, na->nc))) { char buf[NICKMAX + 32]; snprintf(buf, sizeof(buf), "GHOST command used by %s", u->nick); diff --git a/src/core/ns_group.c b/src/core/ns_group.c index 5648c3fe3..8115a8cc4 100644 --- a/src/core/ns_group.c +++ b/src/core/ns_group.c @@ -92,19 +92,12 @@ class CommandNSGroup : public Command notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick); else if (time(NULL) < u->lastnickreg + NSRegDelay) notice_lang(s_NickServ, u, NICK_GROUP_PLEASE_WAIT, NSRegDelay); - else if (u->na && (u->na->status & NS_FORBIDDEN)) - { - alog("%s: %s@%s tried to use GROUP from FORBIDden nick %s", s_NickServ, u->GetIdent().c_str(), u->host, u->nick); - notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, u->nick); - } - else if (u->na && (u->na->nc->flags & NI_SUSPENDED)) + else if (u->nc->flags & NI_SUSPENDED) { alog("%s: %s!%s@%s tried to use GROUP from SUSPENDED nick %s", s_NickServ, u->nick, u->GetIdent().c_str(), u->host, target->nick); notice_lang(s_NickServ, u, NICK_X_SUSPENDED, u->nick); } - else if (u->na && NSNoGroupChange) - notice_lang(s_NickServ, u, NICK_GROUP_CHANGE_DISABLED, s_NickServ); - else if (u->na && !nick_identified(u)) + else if (!nick_identified(u)) notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); else if (target && (target->nc->flags & NI_SUSPENDED)) { @@ -113,7 +106,7 @@ class CommandNSGroup : public Command } else if (target->status & NS_FORBIDDEN) notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, nick); - else if (u->na && target->nc == u->na->nc) + else if (target->nc == u->nc) notice_lang(s_NickServ, u, NICK_GROUP_SAME, target->nick); else if (NSMaxAliases && (target->nc->aliases.count >= NSMaxAliases) && !nick_is_services_admin(target->nc)) notice_lang(s_NickServ, u, NICK_GROUP_TOO_MANY, target->nick, s_NickServ, s_NickServ); @@ -128,8 +121,8 @@ class CommandNSGroup : public Command /* If the nick is already registered, drop it. * If not, check that it is valid. */ - if (u->na) - delnick(u->na); + if (findnick(u->nick)) + delnick(findnick(u->nick)); else { int prefixlen = strlen(NSGuestNickPrefix); @@ -163,9 +156,7 @@ class CommandNSGroup : public Command } } - u->na = na; u->nc = na->nc; - na->u = u; send_event(EVENT_GROUP, 1, u->nick); alog("%s: %s!%s@%s makes %s join group of %s (%s) (e-mail: %s)", s_NickServ, u->nick, u->GetIdent().c_str(), u->host, u->nick, target->nick, target->nc->display, (target->nc->email ? target->nc->email : "none")); @@ -223,17 +214,17 @@ class CommandNSGList : public Command { const char *nick = params.size() ? params[0].c_str() : NULL; - NickAlias *na, *na2; + NickCore *nc = u->nc; int is_servadmin = is_services_admin(u); int nick_ided = nick_identified(u); int i; if (nick ? (stricmp(nick, u->nick) ? !is_servadmin : !nick_ided) : !nick_ided) notice_lang(s_NickServ, u, nick_ided ? ACCESS_DENIED : NICK_IDENTIFY_REQUIRED, s_NickServ); - else if (!nick ? !(na = u->na) : !(na = findnick(nick))) + else if (nick && (!findnick(nick) || !(nc = findnick(nick)->nc))) notice_lang(s_NickServ, u, !nick ? NICK_NOT_REGISTERED : NICK_X_NOT_REGISTERED, nick); - else if (na->status & NS_FORBIDDEN) - notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick); +/* else if (na->status & NS_FORBIDDEN) + notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick);*/ else { time_t expt; @@ -241,22 +232,22 @@ class CommandNSGList : public Command char buf[BUFSIZE]; int wont_expire; - notice_lang(s_NickServ, u, nick ? NICK_GLIST_HEADER_X : NICK_GLIST_HEADER, na->nc->display); - for (i = 0; i < na->nc->aliases.count; ++i) + notice_lang(s_NickServ, u, nick ? NICK_GLIST_HEADER_X : NICK_GLIST_HEADER, nc->display); + for (i = 0; i < nc->aliases.count; ++i) { - na2 = static_cast(na->nc->aliases.list[i]); - if (na2->nc == na->nc) + NickAlias *na2 = static_cast(nc->aliases.list[i]); + if (na2->nc == nc) { if (!(wont_expire = na2->status & NS_NO_EXPIRE)) { expt = na2->last_seen + NSExpire; tm = localtime(&expt); - strftime_lang(buf, sizeof(buf), na2->u, STRFTIME_DATE_TIME_FORMAT, tm); + strftime_lang(buf, sizeof(buf), finduser(na2->nick), STRFTIME_DATE_TIME_FORMAT, tm); } notice_lang(s_NickServ, u, is_services_admin(u) && !wont_expire ? NICK_GLIST_REPLY_ADMIN : NICK_GLIST_REPLY, wont_expire ? '!' : ' ', na2->nick, buf); } } - notice_lang(s_NickServ, u, NICK_GLIST_FOOTER, na->nc->aliases.count); + notice_lang(s_NickServ, u, NICK_GLIST_FOOTER, nc->aliases.count); } return MOD_CONT; } diff --git a/src/core/ns_identify.c b/src/core/ns_identify.c index 14d4f4188..891677d17 100644 --- a/src/core/ns_identify.c +++ b/src/core/ns_identify.c @@ -38,7 +38,7 @@ class CommandNSIdentify : public Command char modes[512]; int len; - if (!(na = u->na)) + if (!(na = findnick(u->nick))) { if ((nr = findrequestnick(u->nick))) notice_lang(s_NickServ, u, NICK_IS_PREREG); @@ -74,6 +74,8 @@ class CommandNSIdentify : public Command na->status |= NS_IDENTIFIED; na->last_seen = time(NULL); + u->nc = na->nc; + snprintf(tsbuf, sizeof(tsbuf), "%lu", static_cast(u->timestamp)); if (ircd->modeonreg) @@ -99,7 +101,7 @@ class CommandNSIdentify : public Command if (NSModeOnID) do_setmodes(u); - if (NSForceEmail && u->na && !u->na->nc->email) + if (NSForceEmail && u->nc && !u->nc->email) { notice_lang(s_NickServ, u, NICK_IDENTIFY_EMAIL_REQUIRED); notice_help(s_NickServ, u, NICK_IDENTIFY_EMAIL_HOWTO); @@ -108,10 +110,6 @@ class CommandNSIdentify : public Command if (!(na->status & NS_RECOGNIZED)) check_memos(u); - /* Enable nick tracking if enabled */ - if (NSNickTracking) - nsStartNickTracking(u); - /* Clear any timers */ if (na->nc->flags & NI_KILLPROTECT) del_ns_timeout(na, TO_COLLIDE); diff --git a/src/core/ns_info.c b/src/core/ns_info.c index ac586746c..93e305d6a 100644 --- a/src/core/ns_info.c +++ b/src/core/ns_info.c @@ -21,11 +21,11 @@ class CommandNSInfo : public Command { private: // cannot be const, as it is modified - void CheckOptStr(std::string &buf, int opt, const std::string &str, NickCore *nc, NickAlias *na, bool reverse_logic = false) + void CheckOptStr(std::string &buf, int opt, const std::string &str, NickCore *nc, bool reverse_logic = false) { if (reverse_logic ? !(nc->flags & opt) : (nc->flags & opt)) { - const char *commastr = getstring(na, COMMA_SPACE); + const char *commastr = getstring(nc, COMMA_SPACE); if (!buf.empty()) buf += commastr; @@ -75,7 +75,7 @@ class CommandNSInfo : public Command else if (na->status & NS_FORBIDDEN) { if (is_oper(u) && na->last_usermask) - notice_lang(s_NickServ, u, NICK_X_FORBIDDEN_OPER, nick, na->last_usermask, na->last_realname ? na->last_realname : getstring(u->na, NO_REASON)); + notice_lang(s_NickServ, u, NICK_X_FORBIDDEN_OPER, nick, na->last_usermask, na->last_realname ? na->last_realname : getstring(u, NO_REASON)); else notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, nick); } @@ -93,12 +93,12 @@ class CommandNSInfo : public Command /* Only show hidden fields to owner and sadmins and only when the ALL * parameter is used. -TheShadow */ - if (param && !stricmp(param, "ALL") && u->na && ((nick_identified(u) && na->nc == u->na->nc) || is_servadmin)) + if (param && !stricmp(param, "ALL") && u->nc && (na->nc == u->nc || is_servadmin)) show_hidden = 1; notice_lang(s_NickServ, u, NICK_INFO_REALNAME, na->nick, na->last_realname); - if ((nick_identified(u) && na->nc == u->na->nc) || is_servadmin) + if (show_hidden) { if (nick_is_services_root(na->nc)) notice_lang(s_NickServ, u, NICK_INFO_SERVICES_ROOT, na->nick); @@ -169,13 +169,13 @@ class CommandNSInfo : public Command std::string optbuf; - CheckOptStr(optbuf, NI_KILLPROTECT, getstring(u->na, NICK_INFO_OPT_KILL), na->nc, u->na); - CheckOptStr(optbuf, NI_SECURE, getstring(u->na, NICK_INFO_OPT_SECURE), na->nc, u->na); - CheckOptStr(optbuf, NI_PRIVATE, getstring(u->na, NICK_INFO_OPT_PRIVATE), na->nc, u->na); - CheckOptStr(optbuf, NI_MSG, getstring(u->na, NICK_INFO_OPT_MSG), na->nc, u->na); - CheckOptStr(optbuf, NI_AUTOOP, getstring(u->na, NICK_INFO_OPT_AUTOOP), na->nc, u->na, true); + CheckOptStr(optbuf, NI_KILLPROTECT, getstring(u, NICK_INFO_OPT_KILL), na->nc); + CheckOptStr(optbuf, NI_SECURE, getstring(u, NICK_INFO_OPT_SECURE), na->nc); + CheckOptStr(optbuf, NI_PRIVATE, getstring(u, NICK_INFO_OPT_PRIVATE), na->nc); + CheckOptStr(optbuf, NI_MSG, getstring(u, NICK_INFO_OPT_MSG), na->nc); + CheckOptStr(optbuf, NI_AUTOOP, getstring(u, NICK_INFO_OPT_AUTOOP), na->nc, true); - notice_lang(s_NickServ, u, NICK_INFO_OPTIONS, optbuf.empty() ? getstring(u->na, NICK_INFO_OPT_NONE) : optbuf.c_str()); + notice_lang(s_NickServ, u, NICK_INFO_OPTIONS, optbuf.empty() ? getstring(u, NICK_INFO_OPT_NONE) : optbuf.c_str()); if (na->nc->flags & NI_SUSPENDED) { @@ -193,14 +193,13 @@ class CommandNSInfo : public Command { expt = na->last_seen + NSExpire; tm = localtime(&expt); - strftime_lang(buf, sizeof(buf), na->u, STRFTIME_DATE_TIME_FORMAT, tm); + strftime_lang(buf, sizeof(buf), finduser(na->nick), STRFTIME_DATE_TIME_FORMAT, tm); notice_lang(s_NickServ, u, NICK_INFO_EXPIRE, buf); } } } - if (!show_hidden && ((u->na && (na->nc == u->na->nc) && nick_identified(u)) || is_servadmin)) - notice_lang(s_NickServ, u, NICK_INFO_FOR_MORE, s_NickServ, na->nick); + notice_lang(s_NickServ, u, NICK_INFO_FOR_MORE, s_NickServ, na->nick); } return MOD_CONT; } diff --git a/src/core/ns_list.c b/src/core/ns_list.c index b7e1cf772..938fc1fbe 100644 --- a/src/core/ns_list.c +++ b/src/core/ns_list.c @@ -120,7 +120,7 @@ class CommandNSList : public Command } } - mync = nick_identified(u) ? u->na->nc : NULL; + mync = u->nc; notice_lang(s_NickServ, u, NICK_LIST_HEADER, pattern); if (!nronly) diff --git a/src/core/ns_logout.c b/src/core/ns_logout.c index a8fe171b5..4a6be4eef 100644 --- a/src/core/ns_logout.c +++ b/src/core/ns_logout.c @@ -32,20 +32,19 @@ class CommandNSLogout : public Command const char *nick = params.size() ? params[0].c_str() : NULL; const char *param = params.size() > 1 ? params[1].c_str() : NULL; User *u2; + NickAlias *na; if (!is_services_admin(u) && nick) this->OnSyntaxError(u); else if (!(u2 = (nick ? finduser(nick) : u))) notice_lang(s_NickServ, u, NICK_X_NOT_IN_USE, nick); - else if (!u2->na) + else if (!(na = findnick(u2->nick))) { if (nick) notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick); else notice_lang(s_NickServ, u, NICK_NOT_REGISTERED); } - else if (u2->na->status & NS_FORBIDDEN) - notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, u2->na->nick); else if (!nick && !nick_identified(u)) notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); else if (nick && is_services_admin(u2)) @@ -58,7 +57,9 @@ class CommandNSLogout : public Command validate_user(u2); } else - u2->na->status &= ~(NS_IDENTIFIED | NS_RECOGNIZED); + { + na->status &= ~(NS_IDENTIFIED | NS_RECOGNIZED); + } if (ircd->modeonreg) common_svsmode(u2, ircd->modeonunreg, "1"); @@ -71,13 +72,11 @@ class CommandNSLogout : public Command else notice_lang(s_NickServ, u, NICK_LOGOUT_SUCCEEDED); - /* Stop nick tracking if enabled */ - if (NSNickTracking) - nsStopNickTracking(u2); - /* Clear any timers again */ - if (u->na->nc->flags & NI_KILLPROTECT) - del_ns_timeout(u->na, TO_COLLIDE); + if (u->nc->flags & NI_KILLPROTECT) + del_ns_timeout(na, TO_COLLIDE); + + u2->nc = NULL; /* Send out an event */ send_event(EVENT_NICK_LOGOUT, 1, u2->nick); diff --git a/src/core/ns_recover.c b/src/core/ns_recover.c index 9ae60fff4..b4e3b9d44 100644 --- a/src/core/ns_recover.c +++ b/src/core/ns_recover.c @@ -33,7 +33,7 @@ class CommandNSRecover : public Command if (!(u2 = finduser(nick))) notice_lang(s_NickServ, u, NICK_X_NOT_IN_USE, nick); - else if (!(na = u2->na)) + else if (!(na = findnick(u2->nick))) notice_lang(s_NickServ, u, NICK_X_NOT_REGISTERED, nick); else if (na->status & NS_FORBIDDEN) notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick); @@ -53,7 +53,7 @@ class CommandNSRecover : public Command collide(na, 0); /* Convert NSReleaseTimeout seconds to string format */ - duration(u2->na, relstr, sizeof(relstr), NSReleaseTimeout); + duration(na->nc, relstr, sizeof(relstr), NSReleaseTimeout); notice_lang(s_NickServ, u, NICK_RECOVERED, s_NickServ, nick, relstr); } @@ -69,7 +69,7 @@ class CommandNSRecover : public Command } else { - if (group_identified(u, na->nc) || (!(na->nc->flags & NI_SECURE) && is_on_access(u, na->nc))) + if (u->nc == na->nc || (!(na->nc->flags & NI_SECURE) && is_on_access(u, na->nc))) { notice_lang(s_NickServ, u2, FORCENICKCHANGE_NOW); collide(na, 0); @@ -86,7 +86,7 @@ class CommandNSRecover : public Command char relstr[192]; /* Convert NSReleaseTimeout seconds to string format */ - duration(u->na, relstr, sizeof(relstr), NSReleaseTimeout); + duration(u->nc, relstr, sizeof(relstr), NSReleaseTimeout); notice_help(s_NickServ, u, NICK_HELP_RECOVER, relstr); do_help_limited(s_NickServ, u, this); diff --git a/src/core/ns_register.c b/src/core/ns_register.c index a79997bce..47978ad11 100644 --- a/src/core/ns_register.c +++ b/src/core/ns_register.c @@ -88,9 +88,7 @@ class CommandNSConfirm : public Command if (!force) { - u->na = na; u->nc = na->nc; - na->u = u; alog("%s: '%s' registered by %s@%s (e-mail: %s)", s_NickServ, u->nick, u->GetIdent().c_str(), u->host, nr->email ? nr->email : "none"); if (NSAddAccessOnReg) notice_lang(s_NickServ, u, NICK_REGISTERED, u->nick, na->nc->access[0]); @@ -126,10 +124,6 @@ class CommandNSConfirm : public Command notice_lang(s_NickServ, u, NICK_FORCE_REG, nr->nick); delnickrequest(nr); /* remove the nick request */ - /* Enable nick tracking if enabled */ - if (NSNickTracking) - nsStartNickTracking(u); - return MOD_CONT; } @@ -228,6 +222,7 @@ class CommandNSRegister : public CommandNSConfirm { NickRequest *nr = NULL, *anr = NULL; NickCore *nc = NULL; + NickAlias *na; int prefixlen = strlen(NSGuestNickPrefix); int nicklen = strlen(u->nick); const char *pass = params[0].c_str(); @@ -315,9 +310,10 @@ class CommandNSRegister : public CommandNSConfirm this->OnSyntaxError(u); else if (time(NULL) < u->lastnickreg + NSRegDelay) notice_lang(s_NickServ, u, NICK_REG_PLEASE_WAIT, NSRegDelay); - else if (u->na) /* i.e. there's already such a nick regged */ + else if ((na = findnick(u->nick))) { - if (u->na->status & NS_FORBIDDEN) + /* i.e. there's already such a nick regged */ + if (na->status & NS_FORBIDDEN) { alog("%s: %s@%s tried to register FORBIDden nick %s", s_NickServ, u->GetIdent().c_str(), u->host, u->nick); notice_lang(s_NickServ, u, NICK_CANNOT_BE_REGISTERED, u->nick); @@ -498,21 +494,21 @@ int do_sendregmail(User *u, NickRequest *nr) if (!nr && !u) return -1; - snprintf(buf, sizeof(buf), getstring2(NULL, NICK_REG_MAIL_SUBJECT), nr->nick); + snprintf(buf, sizeof(buf), getstring(NICK_REG_MAIL_SUBJECT), nr->nick); mail = MailRegBegin(u, nr, buf, s_NickServ); if (!mail) return -1; - fprintf(mail->pipe, getstring2(NULL, NICK_REG_MAIL_HEAD)); + fprintf(mail->pipe, getstring(NICK_REG_MAIL_HEAD)); fprintf(mail->pipe, "\n\n"); - fprintf(mail->pipe, getstring2(NULL, NICK_REG_MAIL_LINE_1), nr->nick); + fprintf(mail->pipe, getstring(NICK_REG_MAIL_LINE_1), nr->nick); fprintf(mail->pipe, "\n\n"); - fprintf(mail->pipe, getstring2(NULL, NICK_REG_MAIL_LINE_2), s_NickServ, nr->passcode); + fprintf(mail->pipe, getstring(NICK_REG_MAIL_LINE_2), s_NickServ, nr->passcode); fprintf(mail->pipe, "\n\n"); - fprintf(mail->pipe, getstring2(NULL, NICK_REG_MAIL_LINE_3)); + fprintf(mail->pipe, getstring(NICK_REG_MAIL_LINE_3)); fprintf(mail->pipe, "\n\n"); - fprintf(mail->pipe, getstring2(NULL, NICK_REG_MAIL_LINE_4)); + fprintf(mail->pipe, getstring(NICK_REG_MAIL_LINE_4)); fprintf(mail->pipe, "\n\n"); - fprintf(mail->pipe, getstring2(NULL, NICK_REG_MAIL_LINE_5), NetworkName); + fprintf(mail->pipe, getstring(NICK_REG_MAIL_LINE_5), NetworkName); fprintf(mail->pipe, "\n.\n"); MailEnd(mail); return 0; diff --git a/src/core/ns_release.c b/src/core/ns_release.c index 22e15eb82..3767fbbb8 100644 --- a/src/core/ns_release.c +++ b/src/core/ns_release.c @@ -58,7 +58,7 @@ class CommandNSRelease : public Command } else { - if (group_identified(u, na->nc) || (!(na->nc->flags & NI_SECURE) && is_on_access(u, na->nc))) + if (u->nc == na->nc || (!(na->nc->flags & NI_SECURE) && is_on_access(u, na->nc))) { release(na, 0); notice_lang(s_NickServ, u, NICK_RELEASED); @@ -74,7 +74,7 @@ class CommandNSRelease : public Command char relstr[192]; /* Convert NSReleaseTimeout seconds to string format */ - duration(u->na, relstr, sizeof(relstr), NSReleaseTimeout); + duration(u->nc, relstr, sizeof(relstr), NSReleaseTimeout); notice_help(s_NickServ, u, NICK_HELP_RELEASE, relstr); do_help_limited(s_NickServ, u, this); diff --git a/src/core/ns_saset.c b/src/core/ns_saset.c index 0e2a3a3ec..185bb592d 100644 --- a/src/core/ns_saset.c +++ b/src/core/ns_saset.c @@ -52,11 +52,6 @@ private: change_core_display(nc, param); notice_lang(s_NickServ, u, NICK_SASET_DISPLAY_CHANGED, nc->display); - - /* Enable nick tracking if enabled */ - if (NSNickTracking) - nsStartNickTracking(u); - return MOD_CONT; } @@ -73,7 +68,7 @@ private: int len = strlen(param); char tmp_pass[PASSMAX]; - if (NSSecureAdmins && u->na->nc != nc && nick_is_services_admin(nc) && !is_services_root(u)) + if (NSSecureAdmins && u->nc != nc && nick_is_services_admin(nc) && !is_services_root(u)) { notice_lang(s_NickServ, u, PERMISSION_DENIED); return MOD_CONT; @@ -138,7 +133,7 @@ private: notice_lang(s_NickServ, u, NICK_SASET_EMAIL_UNSET_IMPOSSIBLE); return MOD_CONT; } - else if (NSSecureAdmins && u->na->nc != nc && nick_is_services_admin(nc) && !is_services_root(u)) + else if (NSSecureAdmins && u->nc != nc && nick_is_services_admin(nc) && !is_services_root(u)) { notice_lang(s_NickServ, u, PERMISSION_DENIED); return MOD_CONT; diff --git a/src/core/ns_set.c b/src/core/ns_set.c index 30c171698..7e44f9f03 100644 --- a/src/core/ns_set.c +++ b/src/core/ns_set.c @@ -53,11 +53,6 @@ class CommandNSSet : public Command change_core_display(nc, param); notice_lang(s_NickServ, u, NICK_SET_DISPLAY_CHANGED, nc->display); - - /* Enable nick tracking if enabled */ - if (NSNickTracking) - nsStartNickTracking(u); - return MOD_CONT; } @@ -455,7 +450,6 @@ class CommandNSSet : public Command CommandReturn Execute(User *u, std::vector ¶ms) { const char *cmd = params[0].c_str(); - NickAlias *na = u->na; if (readonly) { @@ -463,40 +457,40 @@ class CommandNSSet : public Command return MOD_CONT; } - if (!na) - notice_lang(s_NickServ, u, NICK_NOT_REGISTERED); - else if (na->status & NS_FORBIDDEN) +/* + if (na->status & NS_FORBIDDEN) notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick); - else if (na->nc->flags & NI_SUSPENDED) - notice_lang(s_NickServ, u, NICK_X_SUSPENDED, na->nick); +*/ + if (u->nc->flags & NI_SUSPENDED) + notice_lang(s_NickServ, u, NICK_X_SUSPENDED, u->nc->display); else if (!nick_identified(u)) notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); else if (!stricmp(cmd, "DISPLAY")) - return this->DoSetDisplay(u, params, na->nc); + return this->DoSetDisplay(u, params, u->nc); else if (!stricmp(cmd, "PASSWORD")) - return this->DoSetPassword(u, params, na->nc); + return this->DoSetPassword(u, params, u->nc); else if (!stricmp(cmd, "LANGUAGE")) - return this->DoSetLanguage(u, params, na->nc); + return this->DoSetLanguage(u, params, u->nc); else if (!stricmp(cmd, "URL")) - return this->DoSetUrl(u, params, na->nc); + return this->DoSetUrl(u, params, u->nc); else if (!stricmp(cmd, "EMAIL")) - return this->DoSetEmail(u, params, na->nc); + return this->DoSetEmail(u, params, u->nc); else if (!stricmp(cmd, "ICQ")) - return this->DoSetICQ(u, params, na->nc); + return this->DoSetICQ(u, params, u->nc); else if (!stricmp(cmd, "GREET")) - return this->DoSetGreet(u, params, na->nc); + return this->DoSetGreet(u, params, u->nc); else if (!stricmp(cmd, "KILL")) - return this->DoSetKill(u, params, na->nc); + return this->DoSetKill(u, params, u->nc); else if (!stricmp(cmd, "SECURE")) - return this->DoSetSecure(u, params, na->nc); + return this->DoSetSecure(u, params, u->nc); else if (!stricmp(cmd, "PRIVATE")) - return this->DoSetPrivate(u, params, na->nc); + return this->DoSetPrivate(u, params, u->nc); else if (!stricmp(cmd, "MSG")) - return this->DoSetMsg(u, params, na->nc); + return this->DoSetMsg(u, params, u->nc); else if (!stricmp(cmd, "HIDE")) - return this->DoSetHide(u, params, na->nc); + return this->DoSetHide(u, params, u->nc); else if (!stricmp(cmd, "AUTOOP")) - return this->DoSetAutoOP(u, params, na->nc); + return this->DoSetAutoOP(u, params, u->nc); else notice_lang(s_NickServ, u, NICK_SET_UNKNOWN_OPTION, cmd); return MOD_CONT; diff --git a/src/core/ns_update.c b/src/core/ns_update.c index 9eca8daad..bd452bc88 100644 --- a/src/core/ns_update.c +++ b/src/core/ns_update.c @@ -26,20 +26,22 @@ class CommandNSUpdate : public Command CommandReturn Process(User *u, std::vector ¶ms) { - if (!nick_identified(u)) + NickAlias *na = findnick(u->nick); + + if (!na) { - notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); return MOD_CONT; } if (NSModeOnID) do_setmodes(u); check_memos(u); - if (u->na->last_realname) - delete [] u->na->last_realname; - u->na->last_realname = sstrdup(u->realname); - u->na->status |= NS_IDENTIFIED; - u->na->last_seen = time(NULL); + + if (na->last_realname) + delete [] na->last_realname; + na->last_realname = sstrdup(u->realname); + na->status |= NS_IDENTIFIED; + na->last_seen = time(NULL); if (ircd->vhost) do_on_id(u); notice_lang(s_NickServ, u, NICK_UPDATE_SUCCESS, s_NickServ); diff --git a/src/core/os_akill.c b/src/core/os_akill.c index 795d42328..7d5947db7 100644 --- a/src/core/os_akill.c +++ b/src/core/os_akill.c @@ -367,7 +367,7 @@ int akill_view(int number, Akill *ak, User *u, int *sent_header) snprintf(mask, sizeof(mask), "%s@%s", ak->user, ak->host); tm = *localtime(&ak->seton); strftime_lang(timebuf, sizeof(timebuf), u, STRFTIME_SHORT_DATE_FORMAT, &tm); - expire_left(u->na, expirebuf, sizeof(expirebuf), ak->expires); + expire_left(u->nc, expirebuf, sizeof(expirebuf), ak->expires); notice_lang(s_OperServ, u, OPER_AKILL_VIEW_FORMAT, number, mask, ak->by, timebuf, expirebuf, ak->reason); return 1; diff --git a/src/core/os_defcon.c b/src/core/os_defcon.c index fe533aada..cb73627eb 100644 --- a/src/core/os_defcon.c +++ b/src/core/os_defcon.c @@ -30,7 +30,7 @@ class CommandOSDEFCON : public Command { const char *lvl = params[0].c_str(); int newLevel = 0; - const char *langglobal = getstring(NULL, DEFCON_GLOBAL); + const char *langglobal = getstring(DEFCON_GLOBAL); if (!DefConLevel) /* If we dont have a .conf setting! */ { @@ -56,7 +56,7 @@ class CommandOSDEFCON : public Command notice_lang(s_OperServ, u, OPER_DEFCON_CHANGED, DefConLevel); defcon_sendlvls(u); alog("Defcon level changed to %d by Oper %s", newLevel, u->nick); - ircdproto->SendGlobops(s_OperServ, getstring2(NULL, OPER_DEFCON_WALL), u->nick, newLevel); + ircdproto->SendGlobops(s_OperServ, getstring(OPER_DEFCON_WALL), u->nick, newLevel); /* Global notice the user what is happening. Also any Message that the Admin would like to add. Set in config file. */ if (GlobalOnDefcon) diff --git a/src/core/os_session.c b/src/core/os_session.c index 9e1bf9666..a1c19113e 100644 --- a/src/core/os_session.c +++ b/src/core/os_session.c @@ -170,7 +170,7 @@ static int exception_view(User *u, const int index, int *sent_header) tm = *localtime(exceptions[index].time ? &exceptions[index].time : &t); strftime_lang(timebuf, sizeof(timebuf), u, STRFTIME_SHORT_DATE_FORMAT, &tm); - expire_left(u->na, expirebuf, sizeof(expirebuf), exceptions[index].expires); + expire_left(u->nc, expirebuf, sizeof(expirebuf), exceptions[index].expires); notice_lang(s_OperServ, u, OPER_EXCEPTION_VIEW_FORMAT, index + 1, exceptions[index].mask, *exceptions[index].who ? exceptions[index].who : "", timebuf, expirebuf, exceptions[index].limit, exceptions[index].reason); return 1; diff --git a/src/core/os_set.c b/src/core/os_set.c index c9781e2c9..1d4ed8523 100644 --- a/src/core/os_set.c +++ b/src/core/os_set.c @@ -158,14 +158,14 @@ class CommandOSSet : public Command u->isSuperAdmin = 1; notice_lang(s_OperServ, u, OPER_SUPER_ADMIN_ON); alog("%s: %s is a SuperAdmin ", s_OperServ, u->nick); - ircdproto->SendGlobops(s_OperServ, getstring2(NULL, OPER_SUPER_ADMIN_WALL_ON), u->nick); + ircdproto->SendGlobops(s_OperServ, getstring(OPER_SUPER_ADMIN_WALL_ON), u->nick); } else if (!stricmp(setting, "OFF")) { u->isSuperAdmin = 0; notice_lang(s_OperServ, u, OPER_SUPER_ADMIN_OFF); alog("%s: %s is no longer a SuperAdmin", s_OperServ, u->nick); - ircdproto->SendGlobops(s_OperServ, getstring2(NULL, OPER_SUPER_ADMIN_WALL_OFF), u->nick); + ircdproto->SendGlobops(s_OperServ, getstring(OPER_SUPER_ADMIN_WALL_OFF), u->nick); } else notice_lang(s_OperServ, u, OPER_SUPER_ADMIN_SYNTAX); diff --git a/src/core/os_sgline.c b/src/core/os_sgline.c index efc24acb4..9bea10147 100644 --- a/src/core/os_sgline.c +++ b/src/core/os_sgline.c @@ -368,7 +368,7 @@ int sgline_view(int number, SXLine *sx, User *u, int *sent_header) tm = *localtime(&sx->seton); strftime_lang(timebuf, sizeof(timebuf), u, STRFTIME_SHORT_DATE_FORMAT, &tm); - expire_left(u->na, expirebuf, sizeof(expirebuf), sx->expires); + expire_left(u->nc, expirebuf, sizeof(expirebuf), sx->expires); notice_lang(s_OperServ, u, OPER_SGLINE_VIEW_FORMAT, number, sx->mask, sx->by, timebuf, expirebuf, sx->reason); return 1; diff --git a/src/core/os_sqline.c b/src/core/os_sqline.c index af20d4d77..a1603008e 100644 --- a/src/core/os_sqline.c +++ b/src/core/os_sqline.c @@ -353,7 +353,7 @@ int sqline_view(int number, SXLine *sx, User *u, int *sent_header) tm = *localtime(&sx->seton); strftime_lang(timebuf, sizeof(timebuf), u, STRFTIME_SHORT_DATE_FORMAT, &tm); - expire_left(u->na, expirebuf, sizeof(expirebuf), sx->expires); + expire_left(u->nc, expirebuf, sizeof(expirebuf), sx->expires); notice_lang(s_OperServ, u, OPER_SQLINE_VIEW_FORMAT, number, sx->mask, sx->by, timebuf, expirebuf, sx->reason); return 1; diff --git a/src/core/os_szline.c b/src/core/os_szline.c index a2d442f7b..406db111f 100644 --- a/src/core/os_szline.c +++ b/src/core/os_szline.c @@ -352,7 +352,7 @@ int szline_view(int number, SXLine *sx, User *u, int *sent_header) tm = *localtime(&sx->seton); strftime_lang(timebuf, sizeof(timebuf), u, STRFTIME_SHORT_DATE_FORMAT, &tm); - expire_left(u->na, expirebuf, sizeof(expirebuf), sx->expires); + expire_left(u->nc, expirebuf, sizeof(expirebuf), sx->expires); notice_lang(s_OperServ, u, OPER_SZLINE_VIEW_FORMAT, number, sx->mask, sx->by, timebuf, expirebuf, sx->reason); return 1; -- cgit