diff options
author | Adam <Adam@anope.org> | 2010-08-17 19:27:37 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2010-08-17 19:27:37 -0400 |
commit | e65d8b2f3dfdb40858259b3bb48ef6998c31e62f (patch) | |
tree | fd845bdef5664d025ab19c262ae2c5e9d23d7bb2 /modules/core/cs_akick.cpp | |
parent | 2575008baa5c9d0ca789680da1a3b81dc74786f7 (diff) |
Rewrote the config reader to better handle invalid configs.
This prevents Anope from exploding when /os reload has errors.
Diffstat (limited to 'modules/core/cs_akick.cpp')
-rw-r--r-- | modules/core/cs_akick.cpp | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/modules/core/cs_akick.cpp b/modules/core/cs_akick.cpp index ee41c964b..c3d3c77b5 100644 --- a/modules/core/cs_akick.cpp +++ b/modules/core/cs_akick.cpp @@ -65,7 +65,7 @@ class AkickListCallback : public NumberList ~AkickListCallback() { if (!SentHeader) - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_NO_MATCH, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_NO_MATCH, ci->name.c_str()); } virtual void HandleNumber(unsigned Number) @@ -76,7 +76,7 @@ class AkickListCallback : public NumberList if (!SentHeader) { SentHeader = true; - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LIST_HEADER, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LIST_HEADER, ci->name.c_str()); } DoList(u, ci, Number - 1, ci->GetAkick(Number - 1)); @@ -84,7 +84,7 @@ class AkickListCallback : public NumberList static void DoList(User *u, ChannelInfo *ci, unsigned index, AutoKick *akick) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LIST_FORMAT, index + 1, akick->HasFlag(AK_ISNICK) ? akick->nc->display.c_str() :akick->mask.c_str(), !akick->reason.empty() ? akick->reason.c_str() : getstring(u, NO_REASON)); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LIST_FORMAT, index + 1, akick->HasFlag(AK_ISNICK) ? akick->nc->display.c_str() :akick->mask.c_str(), !akick->reason.empty() ? akick->reason.c_str() : getstring(u, NO_REASON)); } }; @@ -103,7 +103,7 @@ class AkickViewCallback : public AkickListCallback if (!SentHeader) { SentHeader = true; - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LIST_HEADER, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LIST_HEADER, ci->name.c_str()); } DoList(u, ci, Number - 1, ci->GetAkick(Number - 1)); @@ -122,14 +122,14 @@ class AkickViewCallback : public AkickListCallback else snprintf(timebuf, sizeof(timebuf), "%s", getstring(u, UNKNOWN)); - notice_lang(Config.s_ChanServ, u, akick->HasFlag(AK_STUCK) ? CHAN_AKICK_VIEW_FORMAT_STUCK : CHAN_AKICK_VIEW_FORMAT, index + 1, akick->HasFlag(AK_ISNICK) ? akick->nc->display.c_str() : akick->mask.c_str(), !akick->creator.empty() ? akick->creator.c_str() : getstring(u, UNKNOWN), timebuf, !akick->reason.empty() ? akick->reason.c_str() : getstring(u, NO_REASON)); + notice_lang(Config->s_ChanServ, u, akick->HasFlag(AK_STUCK) ? CHAN_AKICK_VIEW_FORMAT_STUCK : CHAN_AKICK_VIEW_FORMAT, index + 1, akick->HasFlag(AK_ISNICK) ? akick->nc->display.c_str() : akick->mask.c_str(), !akick->creator.empty() ? akick->creator.c_str() : getstring(u, UNKNOWN), timebuf, !akick->reason.empty() ? akick->reason.c_str() : getstring(u, NO_REASON)); if (akick->last_used) { char last_used[64]; tm = *localtime(&akick->last_used); strftime_lang(last_used, sizeof(last_used), u, STRFTIME_SHORT_DATE_FORMAT, &tm); - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LAST_USED, last_used); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LAST_USED, last_used); } } }; @@ -147,11 +147,11 @@ class AkickDelCallback : public NumberList ~AkickDelCallback() { if (!Deleted) - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_NO_MATCH, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_NO_MATCH, ci->name.c_str()); else if (Deleted == 1) - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_DELETED_ONE, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_DELETED_ONE, ci->name.c_str()); else - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_DELETED_SEVERAL, Deleted, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_DELETED_SEVERAL, Deleted, ci->name.c_str()); } void HandleNumber(unsigned Number) @@ -185,7 +185,7 @@ class CommandCSAKick : public Command { if (na->HasFlag(NS_FORBIDDEN)) { - notice_lang(Config.s_ChanServ, u, NICK_X_FORBIDDEN, mask.c_str()); + notice_lang(Config->s_ChanServ, u, NICK_X_FORBIDDEN, mask.c_str()); return; } @@ -195,7 +195,7 @@ class CommandCSAKick : public Command /* Check excepts BEFORE we get this far */ if (ModeManager::FindChannelModeByName(CMODE_EXCEPT) && is_excepted_mask(ci, mask)) { - notice_lang(Config.s_ChanServ, u, CHAN_EXCEPTED, mask.c_str(), ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_EXCEPTED, mask.c_str(), ci->name.c_str()); return; } @@ -205,7 +205,7 @@ class CommandCSAKick : public Command { if (nc == ci->founder || get_access_level(ci, nc) >= get_access(u, ci)) { - notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); + notice_lang(Config->s_ChanServ, u, ACCESS_DENIED); return; } } @@ -219,7 +219,7 @@ class CommandCSAKick : public Command if ((check_access(u2, ci, CA_FOUNDER) || get_access(u2, ci) >= get_access(u, ci)) && match_usermask(mask, u2)) { - notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); + notice_lang(Config->s_ChanServ, u, ACCESS_DENIED); return; } } @@ -238,7 +238,7 @@ class CommandCSAKick : public Command Anope::string buf = na2->nick + "!" + na2->last_usermask; if (Anope::Match(buf, mask)) { - notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); + notice_lang(Config->s_ChanServ, u, ACCESS_DENIED); return; } } @@ -250,14 +250,14 @@ class CommandCSAKick : public Command akick = ci->GetAkick(j); if (akick->HasFlag(AK_ISNICK) ? akick->nc == nc : mask.equals_ci(akick->mask)) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_ALREADY_EXISTS, akick->HasFlag(AK_ISNICK) ? akick->nc->display.c_str() : akick->mask.c_str(), ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_ALREADY_EXISTS, akick->HasFlag(AK_ISNICK) ? akick->nc->display.c_str() : akick->mask.c_str(), ci->name.c_str()); return; } } - if (ci->GetAkickCount() >= Config.CSAutokickMax) + if (ci->GetAkickCount() >= Config->CSAutokickMax) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_REACHED_LIMIT, Config.CSAutokickMax); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_REACHED_LIMIT, Config->CSAutokickMax); return; } @@ -268,7 +268,7 @@ class CommandCSAKick : public Command FOREACH_MOD(I_OnAkickAdd, OnAkickAdd(u, ci, akick)); - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_ADDED, mask.c_str(), ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_ADDED, mask.c_str(), ci->name.c_str()); this->DoEnforce(u, ci); } @@ -283,7 +283,7 @@ class CommandCSAKick : public Command if (!ci->GetAkickCount()) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LIST_EMPTY, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LIST_EMPTY, ci->name.c_str()); return; } @@ -302,12 +302,12 @@ class CommandCSAKick : public Command if (i == end) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_NOT_FOUND, mask.c_str(), ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_NOT_FOUND, mask.c_str(), ci->name.c_str()); return; } akick->SetFlag(AK_STUCK); - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_STUCK, akick->mask.c_str(), ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_STUCK, akick->mask.c_str(), ci->name.c_str()); if (ci->c) stick_mask(ci, akick); @@ -323,7 +323,7 @@ class CommandCSAKick : public Command if (!ci->GetAkickCount()) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LIST_EMPTY, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LIST_EMPTY, ci->name.c_str()); return; } @@ -342,12 +342,12 @@ class CommandCSAKick : public Command if (i == end) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_NOT_FOUND, mask.c_str(), ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_NOT_FOUND, mask.c_str(), ci->name.c_str()); return; } akick->UnsetFlag(AK_STUCK); - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_UNSTUCK, akick->mask.c_str(), ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_UNSTUCK, akick->mask.c_str(), ci->name.c_str()); } void DoDel(User *u, ChannelInfo *ci, const std::vector<Anope::string> ¶ms) @@ -358,7 +358,7 @@ class CommandCSAKick : public Command if (!ci->GetAkickCount()) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LIST_EMPTY, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LIST_EMPTY, ci->name.c_str()); return; } @@ -383,13 +383,13 @@ class CommandCSAKick : public Command if (i == ci->GetAkickCount()) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_NOT_FOUND, mask.c_str(), ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_NOT_FOUND, mask.c_str(), ci->name.c_str()); return; } ci->EraseAkick(i); - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_DELETED, mask.c_str(), ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_DELETED, mask.c_str(), ci->name.c_str()); } } @@ -399,7 +399,7 @@ class CommandCSAKick : public Command if (!ci->GetAkickCount()) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LIST_EMPTY, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LIST_EMPTY, ci->name.c_str()); return; } @@ -427,14 +427,14 @@ class CommandCSAKick : public Command if (!SentHeader) { SentHeader = true; - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LIST_HEADER, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LIST_HEADER, ci->name.c_str()); } AkickListCallback::DoList(u, ci, i, akick); } if (!SentHeader) - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_NO_MATCH, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_NO_MATCH, ci->name.c_str()); } } @@ -444,7 +444,7 @@ class CommandCSAKick : public Command if (!ci->GetAkickCount()) { - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LIST_EMPTY, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LIST_EMPTY, ci->name.c_str()); return; } @@ -472,14 +472,14 @@ class CommandCSAKick : public Command if (!SentHeader) { SentHeader = true; - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_LIST_HEADER, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_LIST_HEADER, ci->name.c_str()); } AkickViewCallback::DoList(u, ci, i, akick); } if (!SentHeader) - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_NO_MATCH, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_NO_MATCH, ci->name.c_str()); } } @@ -490,7 +490,7 @@ class CommandCSAKick : public Command if (!c) { - notice_lang(Config.s_ChanServ, u, CHAN_X_NOT_IN_USE, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_X_NOT_IN_USE, ci->name.c_str()); return; } @@ -502,13 +502,13 @@ class CommandCSAKick : public Command ++count; } - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_ENFORCE_DONE, ci->name.c_str(), count); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_ENFORCE_DONE, ci->name.c_str(), count); } void DoClear(User *u, ChannelInfo *ci) { ci->ClearAkick(); - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_CLEAR, ci->name.c_str()); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_CLEAR, ci->name.c_str()); } public: @@ -527,9 +527,9 @@ class CommandCSAKick : public Command if (mask.empty() && (cmd.equals_ci("ADD") || cmd.equals_ci("STICK") || cmd.equals_ci("UNSTICK") || cmd.equals_ci("DEL"))) this->OnSyntaxError(u, cmd); else if (!check_access(u, ci, CA_AKICK) && !u->Account()->HasPriv("chanserv/access/modify")) - notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); + notice_lang(Config->s_ChanServ, u, ACCESS_DENIED); else if (!cmd.equals_ci("LIST") && !cmd.equals_ci("VIEW") && !cmd.equals_ci("ENFORCE") && readonly) - notice_lang(Config.s_ChanServ, u, CHAN_AKICK_DISABLED); + notice_lang(Config->s_ChanServ, u, CHAN_AKICK_DISABLED); else if (cmd.equals_ci("ADD")) this->DoAdd(u, ci, params); else if (cmd.equals_ci("STICK")) @@ -554,18 +554,18 @@ class CommandCSAKick : public Command bool OnHelp(User *u, const Anope::string &subcommand) { - notice_help(Config.s_ChanServ, u, CHAN_HELP_AKICK); + notice_help(Config->s_ChanServ, u, CHAN_HELP_AKICK); return true; } void OnSyntaxError(User *u, const Anope::string &subcommand) { - syntax_error(Config.s_ChanServ, u, "AKICK", CHAN_AKICK_SYNTAX); + syntax_error(Config->s_ChanServ, u, "AKICK", CHAN_AKICK_SYNTAX); } void OnServHelp(User *u) { - notice_lang(Config.s_ChanServ, u, CHAN_HELP_CMD_AKICK); + notice_lang(Config->s_ChanServ, u, CHAN_HELP_CMD_AKICK); } }; |