diff options
-rw-r--r-- | src/config.c | 33 |
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); |