summaryrefslogtreecommitdiff
path: root/src/servers.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-01-04 17:54:04 -0500
committerAdam <Adam@anope.org>2014-01-04 17:54:04 -0500
commit201ad9c1916e97f830d6d6d21f172744437893f8 (patch)
treef75ca03d8554ef1d0c6fc487bc2d27e82f010562 /src/servers.cpp
parent45c0bf8f3289f664853dbf36cd33473c01653da1 (diff)
Always run uid/sid generation loop at least once to not reuse older ids immediately
Diffstat (limited to 'src/servers.cpp')
-rw-r--r--src/servers.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/servers.cpp b/src/servers.cpp
index a3403fc45..7699e64ca 100644
--- a/src/servers.cpp
+++ b/src/servers.cpp
@@ -368,11 +368,12 @@ const Anope::string Servers::TS6_UID_Retrieve()
static Anope::string current_uid = "AAAAAA";
- while (User::Find(Me->GetSID() + current_uid) != NULL)
+ do
{
int current_len = current_uid.length() - 1;
while (current_len >= 0 && nextID(current_uid[current_len--]) == 'A');
}
+ while (User::Find(Me->GetSID() + current_uid) != NULL);
return Me->GetSID() + current_uid;
}
@@ -386,11 +387,12 @@ const Anope::string Servers::TS6_SID_Retrieve()
if (current_sid.empty())
current_sid = "00A";
- while (Server::Find(current_sid) != NULL)
+ do
{
int current_len = current_sid.length() - 1;
while (current_len >= 0 && nextID(current_sid[current_len--]) == 'A');
}
+ while (Server::Find(current_sid) != NULL);
return current_sid;
}