1
0
mirror of https://github.com/anope/anope.git synced 2026-07-02 01:46:39 +02:00

Rewrote the config reader to better handle invalid configs.

This prevents Anope from exploding when /os reload has errors.
This commit is contained in:
Adam
2010-08-17 19:27:37 -04:00
parent 2575008baa
commit e65d8b2f3d
195 changed files with 3133 additions and 3249 deletions
+20 -20
View File
@@ -23,23 +23,23 @@ class CommandNSAccess : public Command
if (nc->access.empty())
{
notice_lang(Config.s_NickServ, u, NICK_ACCESS_LIST_X_EMPTY, nc->display.c_str());
notice_lang(Config->s_NickServ, u, NICK_ACCESS_LIST_X_EMPTY, nc->display.c_str());
return MOD_CONT;
}
if (nc->HasFlag(NI_SUSPENDED))
{
notice_lang(Config.s_NickServ, u, NICK_X_SUSPENDED, nc->display.c_str());
notice_lang(Config->s_NickServ, u, NICK_X_SUSPENDED, nc->display.c_str());
return MOD_CONT;
}
notice_lang(Config.s_NickServ, u, NICK_ACCESS_LIST_X, params[1].c_str());
notice_lang(Config->s_NickServ, u, NICK_ACCESS_LIST_X, params[1].c_str());
for (i = 0, end = nc->access.size(); i < end; ++i)
{
Anope::string access = nc->GetAccess(i);
if (!mask.empty() && !Anope::Match(access, mask))
continue;
u->SendMessage(Config.s_NickServ, " %s", access.c_str());
u->SendMessage(Config->s_NickServ, " %s", access.c_str());
}
return MOD_CONT;
@@ -53,20 +53,20 @@ class CommandNSAccess : public Command
return MOD_CONT;
}
if (nc->access.size() >= Config.NSAccessMax)
if (nc->access.size() >= Config->NSAccessMax)
{
notice_lang(Config.s_NickServ, u, NICK_ACCESS_REACHED_LIMIT, Config.NSAccessMax);
notice_lang(Config->s_NickServ, u, NICK_ACCESS_REACHED_LIMIT, Config->NSAccessMax);
return MOD_CONT;
}
if (nc->FindAccess(mask))
{
notice_lang(Config.s_NickServ, u, NICK_ACCESS_ALREADY_PRESENT, mask.c_str());
notice_lang(Config->s_NickServ, u, NICK_ACCESS_ALREADY_PRESENT, mask.c_str());
return MOD_CONT;
}
nc->AddAccess(mask);
notice_lang(Config.s_NickServ, u, NICK_ACCESS_ADDED, mask.c_str());
notice_lang(Config->s_NickServ, u, NICK_ACCESS_ADDED, mask.c_str());
return MOD_CONT;
}
@@ -81,11 +81,11 @@ class CommandNSAccess : public Command
if (!nc->FindAccess(mask))
{
notice_lang(Config.s_NickServ, u, NICK_ACCESS_NOT_FOUND, mask.c_str());
notice_lang(Config->s_NickServ, u, NICK_ACCESS_NOT_FOUND, mask.c_str());
return MOD_CONT;
}
notice_lang(Config.s_NickServ, u, NICK_ACCESS_DELETED, mask.c_str());
notice_lang(Config->s_NickServ, u, NICK_ACCESS_DELETED, mask.c_str());
nc->EraseAccess(mask);
return MOD_CONT;
@@ -97,17 +97,17 @@ class CommandNSAccess : public Command
if (nc->access.empty())
{
notice_lang(Config.s_NickServ, u, NICK_ACCESS_LIST_EMPTY, u->nick.c_str());
notice_lang(Config->s_NickServ, u, NICK_ACCESS_LIST_EMPTY, u->nick.c_str());
return MOD_CONT;
}
notice_lang(Config.s_NickServ, u, NICK_ACCESS_LIST);
notice_lang(Config->s_NickServ, u, NICK_ACCESS_LIST);
for (i = 0, end = nc->access.size(); i < end; ++i)
{
Anope::string access = nc->GetAccess(i);
if (!mask.empty() && !Anope::Match(access, mask))
continue;
u->SendMessage(Config.s_NickServ, " %s", access.c_str());
u->SendMessage(Config->s_NickServ, " %s", access.c_str());
}
return MOD_CONT;
@@ -128,15 +128,15 @@ class CommandNSAccess : public Command
if (!mask.empty() && mask.find('@') == Anope::string::npos)
{
notice_lang(Config.s_NickServ, u, BAD_USERHOST_MASK);
notice_lang(Config.s_NickServ, u, MORE_INFO, Config.s_NickServ.c_str(), "ACCESS");
notice_lang(Config->s_NickServ, u, BAD_USERHOST_MASK);
notice_lang(Config->s_NickServ, u, MORE_INFO, Config->s_NickServ.c_str(), "ACCESS");
}
/*
else if (na->HasFlag(NS_FORBIDDEN))
notice_lang(Config.s_NickServ, u, NICK_X_FORBIDDEN, na->nick);
notice_lang(Config->s_NickServ, u, NICK_X_FORBIDDEN, na->nick);
*/
else if (u->Account()->HasFlag(NI_SUSPENDED))
notice_lang(Config.s_NickServ, u, NICK_X_SUSPENDED, u->Account()->display.c_str());
notice_lang(Config->s_NickServ, u, NICK_X_SUSPENDED, u->Account()->display.c_str());
else if (cmd.equals_ci("ADD"))
return this->DoAdd(u, u->Account(), mask);
else if (cmd.equals_ci("DEL"))
@@ -150,18 +150,18 @@ class CommandNSAccess : public Command
bool OnHelp(User *u, const Anope::string &subcommand)
{
notice_help(Config.s_NickServ, u, NICK_HELP_ACCESS);
notice_help(Config->s_NickServ, u, NICK_HELP_ACCESS);
return true;
}
void OnSyntaxError(User *u, const Anope::string &subcommand)
{
syntax_error(Config.s_NickServ, u, "ACCESS", NICK_ACCESS_SYNTAX);
syntax_error(Config->s_NickServ, u, "ACCESS", NICK_ACCESS_SYNTAX);
}
void OnServHelp(User *u)
{
notice_lang(Config.s_NickServ, u, NICK_HELP_CMD_ACCESS);
notice_lang(Config->s_NickServ, u, NICK_HELP_CMD_ACCESS);
}
};