summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2012-03-13 17:45:07 -0400
committerAdam <Adam@anope.org>2012-03-13 17:45:07 -0400
commita26f4b9a9a4e96ba88214e50dd49783aa1695559 (patch)
treeb713988011e52b42cee6dab33052d39f642acccb /src
parent053d6a22470062e8eee08c5522788f432d8146ab (diff)
Bug #1389 - readd RNG seed in the config and start DNS query ids off on a random number
Diffstat (limited to 'src')
-rw-r--r--src/config.cpp5
-rw-r--r--src/dns.cpp2
-rw-r--r--src/init.cpp2
3 files changed, 7 insertions, 2 deletions
diff --git a/src/config.cpp b/src/config.cpp
index f597158ea..790f5c82f 100644
--- a/src/config.cpp
+++ b/src/config.cpp
@@ -158,6 +158,10 @@ ServerConfig::ServerConfig() : config_data(), NSDefFlags(NickCoreFlagStrings), C
this->SessionAutoKillExpiry = 1800; /* 30 minutes */
}
+ /* Check the user keys */
+ if (this->Seed == 0)
+ Log() << "Configuration option options:seed should be set. It's for YOUR safety! Remember that!";
+
SetDefaultMLock(this);
if (IsFile(this->NameServer))
@@ -1135,6 +1139,7 @@ ConfigItems::ConfigItems(ServerConfig *conf)
{"networkinfo", "userlen", "10", new ValueContainerUInt(&conf->UserLen), DT_UINTEGER | DT_NORELOAD, NoValidation},
{"networkinfo", "hostlen", "64", new ValueContainerUInt(&conf->HostLen), DT_UINTEGER | DT_NORELOAD, NoValidation},
{"options", "passlen", "32", new ValueContainerUInt(&conf->PassLen), DT_UINTEGER | DT_NORELOAD, NoValidation},
+ {"options", "seed", "0", new ValueContainerLUInt(&conf->Seed), DT_LUINTEGER, NoValidation},
{"options", "nobackupokay", "no", new ValueContainerBool(&conf->NoBackupOkay), DT_BOOLEAN, NoValidation},
{"options", "strictpasswords", "no", new ValueContainerBool(&conf->StrictPasswords), DT_BOOLEAN, NoValidation},
{"options", "badpasslimit", "0", new ValueContainerUInt(&conf->BadPassLimit), DT_UINTEGER, NoValidation},
diff --git a/src/dns.cpp b/src/dns.cpp
index d9010b8f9..0a016624b 100644
--- a/src/dns.cpp
+++ b/src/dns.cpp
@@ -72,7 +72,7 @@ DNSRequest::DNSRequest(const Anope::string &addr, QueryType qt, bool cache, Modu
do
{
- static unsigned short cur_id = 0;
+ static unsigned short cur_id = rand();
this->id = cur_id++;
}
while (DNSEngine->requests.count(this->id));
diff --git a/src/init.cpp b/src/init.cpp
index 1b31c0682..4fc9c1eef 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -472,7 +472,7 @@ void Init(int ac, char **av)
InitLanguages();
/* Initialize random number generator */
- srand(time(NULL));
+ srand(Config->Seed);
/* load modules */
Log() << "Loading modules...";