summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNaram Qashat cyberbotx@cyberbotx.com <Naram Qashat cyberbotx@cyberbotx.com@5417fbe8-f217-4b02-8779-1006273d7864>2008-10-05 00:23:15 +0000
committerNaram Qashat cyberbotx@cyberbotx.com <Naram Qashat cyberbotx@cyberbotx.com@5417fbe8-f217-4b02-8779-1006273d7864>2008-10-05 00:23:15 +0000
commita02f8503e75eb4bb03c79a8d4c4e93a825302fff (patch)
tree4a83da0d9471237054c8d573cae0315bd6f5c9fa /src
parent31c4135150927b8f382198f3cf6323247bb50763 (diff)
Removed directives from old config that are being handled by the new config parser.
Also put in the needed support for handling directives which can't be changed in a reload of the configuration. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1419 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r--src/config.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/config.c b/src/config.c
index b612352ab..d8fcefe8b 100644
--- a/src/config.c
+++ b/src/config.c
@@ -546,12 +546,12 @@ int ServerConfig::Read(bool bail)
*
* We may need to add some other validation functions to handle certain things, we can handle that later.
* Any questions about these, w00t, feel free to ask. */
- {"uplink", "type", "", new ValueContainerChar(IRCDModule), DT_CHARPTR, ValidateNotEmpty},
- {"uplink", "host", "", new ValueContainerChar(RemoteServer), DT_HOSTNAME, ValidateNotEmpty},
- {"uplink", "port", "0", new ValueContainerInt(&RemotePort), DT_INTEGER, ValidatePort},
- {"uplink", "password", "", new ValueContainerChar(RemotePassword), DT_NOSPACES, ValidateNotEmpty},
- {"nickserv", "nick", "NickServ", new ValueContainerChar(s_NickServ), DT_CHARPTR, ValidateNotEmpty},
- {"nickserv", "descrption", "Nickname Registration Service", new ValueContainerChar(desc_NickServ), DT_CHARPTR, ValidateNotEmpty},
+ {"uplink", "type", "", new ValueContainerChar(IRCDModule), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
+ {"uplink", "host", "", new ValueContainerChar(RemoteServer), DT_HOSTNAME | DT_NORELOAD, ValidateNotEmpty},
+ {"uplink", "port", "0", new ValueContainerInt(&RemotePort), DT_INTEGER | DT_NORELOAD, ValidatePort},
+ {"uplink", "password", "", new ValueContainerChar(RemotePassword), DT_NOSPACES | DT_NORELOAD, ValidateNotEmpty},
+ {"nickserv", "nick", "NickServ", new ValueContainerChar(s_NickServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
+ {"nickserv", "descrption", "Nickname Registration Service", new ValueContainerChar(desc_NickServ), DT_CHARPTR | DT_NORELOAD, ValidateNotEmpty},
{NULL, NULL, NULL, NULL, DT_NOTHING, NoValidation}
};
/* These tags can occur multiple times, and therefore they have special code to read them
@@ -580,9 +580,13 @@ int ServerConfig::Read(bool bail)
for (int Index = 0; Values[Index].tag; ++Index) {
char item[BUFSIZE];
int dt = Values[Index].datatype;
- bool allow_newlines = dt & DT_ALLOW_NEWLINE, allow_wild = dt & DT_ALLOW_WILD;
+ bool allow_newlines = dt & DT_ALLOW_NEWLINE, allow_wild = dt & DT_ALLOW_WILD, noreload = dt & DT_NORELOAD;
dt &= ~DT_ALLOW_NEWLINE;
dt &= ~DT_ALLOW_WILD;
+ dt &= ~DT_NORELOAD;
+ // If the value is set to not allow reloading and we are reloading (bail will be false), skip the item
+ if (noreload && !bail)
+ continue;
ConfValue(config_data, Values[Index].tag, Values[Index].value, Values[Index].default_value, 0, item, BUFSIZE, allow_newlines);
ValueItem vi(item);
if (!Values[Index].validation_function(this, Values[Index].tag, Values[Index].value, vi))
@@ -657,9 +661,13 @@ int ServerConfig::Read(bool bail)
ValueList vl;
for (int valuenum = 0; MultiValues[Index].items[valuenum]; ++valuenum) {
int dt = MultiValues[Index].datatype[valuenum];
- bool allow_newlines = dt & DT_ALLOW_NEWLINE, allow_wild = dt & DT_ALLOW_WILD;
+ bool allow_newlines = dt & DT_ALLOW_NEWLINE, allow_wild = dt & DT_ALLOW_WILD, noreload = dt & DT_NORELOAD;
dt &= ~DT_ALLOW_NEWLINE;
dt &= ~DT_ALLOW_WILD;
+ dt &= ~DT_NORELOAD;
+ // If the value is set to not allow reloading and we are reloading (bail will be false), skip the item
+ if (noreload && !bail)
+ continue;
switch (dt) {
case DT_NOSPACES: {
char item[BUFSIZE];
@@ -1217,7 +1225,6 @@ Directive directives[] = {
{"HostServAlias", {{PARAM_STRING, 0, &s_HostServAlias},
{PARAM_STRING, 0, &desc_HostServAlias}}},
{"HostSetters", {{PARAM_STRING, PARAM_RELOAD, &HostSetter}}},
- {"IRCDModule", {{PARAM_STRING, 0, &IRCDModule}}},
{"LogChannel", {{PARAM_STRING, PARAM_RELOAD, &LogChannel}}},
{"LogBot", {{PARAM_SET, PARAM_RELOAD, &LogBot}}},
{"HelpServName", {{PARAM_STRING, 0, &s_HelpServ},
@@ -1271,8 +1278,6 @@ Directive directives[] = {
{"NSEmailReg", {{PARAM_SET, PARAM_RELOAD, &NSEmailReg}}},
{"NickCoreModules", {{PARAM_STRING, PARAM_RELOAD, &NickCoreModules}}},
{"NickRegDelay", {{PARAM_POSINT, PARAM_RELOAD, &NickRegDelay}}},
- {"NickServName", {{PARAM_STRING, 0, &s_NickServ},
- {PARAM_STRING, 0, &desc_NickServ}}},
{"NickServAlias", {{PARAM_STRING, 0, &s_NickServAlias},
{PARAM_STRING, 0, &desc_NickServAlias}}},
{"NoBackupOkay", {{PARAM_SET, PARAM_RELOAD, &NoBackupOkay}}},
@@ -1319,9 +1324,6 @@ Directive directives[] = {
{PARAM_STRING, 0, &desc_OperServAlias}}},
{"PIDFile", {{PARAM_STRING, 0, &PIDFilename}}},
{"ReadTimeout", {{PARAM_TIME, PARAM_RELOAD, &ReadTimeout}}},
- {"RemoteServer", {{PARAM_STRING, 0, &RemoteServer},
- {PARAM_PORT, 0, &RemotePort},
- {PARAM_STRING, 0, &RemotePassword}}},
{"RemoteServer2", {{PARAM_STRING, 0, &RemoteServer2},
{PARAM_PORT, 0, &RemotePort2},
{PARAM_STRING, 0, &RemotePassword2}}},
@@ -1697,7 +1699,6 @@ int read_config(int reload)
fclose(config);
if (!reload) {
- CHECK(RemoteServer);
CHECK(ServerName);
CHECK(ServerDesc);
@@ -1727,13 +1728,11 @@ int read_config(int reload)
}
}
- CHECK(IRCDModule);
CHECK(EncModule);
CHECK(NetworkName);
if (!reload) {
CHEK2(temp_userhost, ServiceUser);
- CHEK2(s_NickServ, NickServName);
CHEK2(s_ChanServ, ChanServName);
CHEK2(s_MemoServ, MemoServName);
CHEK2(s_HelpServ, HelpServName);