X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fserver.cpp;h=adaaa7d2cbeb767644704f712b70c7a06b013271;hb=34b2dde776b332116d04cea356843b324ab099fb;hp=092826361ecfee713a787852b2469763ad221f2c;hpb=1a339033f34d0ce6719ef4f5308b757ef43cbfd2;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/server.cpp b/src/server.cpp index 092826361..adaaa7d2c 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -138,17 +138,18 @@ void InspIRCd::IncrementUID(int pos) */ std::string InspIRCd::GetUID() { - static int curindex = -1; + static bool inited = false; /* - * If -1, we're setting up. Copy SID into the first three digits, 9's to the rest, null term at the end + * If we're setting up, copy SID into the first three digits, 9's to the rest, null term at the end * Why 9? Well, we increment before we find, otherwise we have an unnecessary copy, and I want UID to start at AAA..AA * and not AA..AB. So by initialising to 99999, we force it to rollover to AAAAA on the first IncrementUID call. * Kind of silly, but I like how it looks. * -- w */ - if (curindex == -1) + if (!inited) { + inited = true; current_uid[0] = Config->sid[0]; current_uid[1] = Config->sid[1]; current_uid[2] = Config->sid[2]; @@ -156,8 +157,6 @@ std::string InspIRCd::GetUID() for (int i = 3; i < (UUID_LENGTH - 1); i++) current_uid[i] = '9'; - curindex = UUID_LENGTH - 2; // look at the end of the string now kthx, ignore null - // Null terminator. Important. current_uid[UUID_LENGTH - 1] = '\0'; } @@ -165,7 +164,7 @@ std::string InspIRCd::GetUID() while (1) { // Add one to the last UID - this->IncrementUID(curindex); + this->IncrementUID(UUID_LENGTH - 2); if (this->FindUUID(current_uid)) {