-#if 0
-
- /*
- * This will only finish once we return a UUID that is not in use.
- */
- while (1)
- {
- /*
- * Okay. The rules for generating a UID go like this...
- * -- > ABCDEFGHIJKLMNOPQRSTUVWXYZ --> 012345679 --> WRAP
- * That is, we start at A. When we reach Z, we go to 0. At 9, we go to
- * A again, in an iterative fashion.. so..
- * AAA9 -> AABA, and so on. -- w00t
- */
-
- /* start at the end of the current UID string, work backwards. don't trample on SID! */
- for (i = UUID_LENGTH - 2; i > 3; i--)
- {
- if (current_uid[i] == 'Z')
- {
- /* reached the end of alphabetical, go to numeric range */
- current_uid[i] = '0';
- }
- else if (current_uid[i] == '9')
- {
- /* we reached the end of the sequence, set back to A */
- current_uid[i] = 'A';
-
- /* we also need to increment the next digit. */
- continue;
- }
- else
- {
- /* most common case .. increment current UID */
- current_uid[i]++;
- }
-
- if (current_uid[3] == 'Z')
- {
- /*
- * Ugh. We have run out of room.. roll back around to the
- * start of the UUID namespace. -- w00t
- */
- this->InitialiseUID();
-
- /*
- * and now we need to break the inner for () to continue the while (),
- * which will start the checking process over again. -- w00t
- */
- break;
-
- }
-
- if (this->FindUUID(current_uid))
- {
- /*
- * It's in use. We need to try the loop again.
- */
- continue;
- }
-
- return current_uid;
- }
- }
-#endif