diff options
author | Adam <Adam@anope.org> | 2014-01-04 17:54:04 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2014-01-04 17:54:04 -0500 |
commit | 201ad9c1916e97f830d6d6d21f172744437893f8 (patch) | |
tree | f75ca03d8554ef1d0c6fc487bc2d27e82f010562 /src/servers.cpp | |
parent | 45c0bf8f3289f664853dbf36cd33473c01653da1 (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.cpp | 6 |
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; } |