From a26f4b9a9a4e96ba88214e50dd49783aa1695559 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 13 Mar 2012 17:45:07 -0400 Subject: Bug #1389 - readd RNG seed in the config and start DNS query ids off on a random number --- src/config.cpp | 5 +++++ src/dns.cpp | 2 +- src/init.cpp | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src') 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..."; -- cgit