gettimeofday(&tv, NULL);
currentTime = tv.tv_sec * (uint64_t)1000000 + tv.tv_usec;
#endif
-#if defined(__unix__) || defined(__APPLE__)
+#if defined(__unix__) || defined(__APPLE__) || defined(__TIZENRT__)
int32_t fd = open("/dev/urandom", O_RDONLY);
if (fd >= 0)
{
{
return;
}
- for (; len--;)
+ uint16_t i, rand_idx;
+ uint8_t *loc;
+ i = len;
+ loc = location;
+ for (; i--;)
{
- *location++ = OCGetRandomByte();
+ *loc++ = OCGetRandomByte();
+ }
+ uint8_t temp;
+ i = len;
+ while(i > 1)
+ {
+ rand_idx = lrand48() % i;
+ temp = location[i - 1];
+ location[i - 1] = location[rand_idx];
+ location[rand_idx] = temp;
+ i--;
}
}
char uuidString[UUID_STRING_SIZE];
int8_t ret = OCGenerateUuidString(uuidString);
- if (ret < 0)
+ if (RAND_UUID_OK == ret)
{
- return ret;
- }
-
- uuid[ 0] = parseUuidPart(&uuidString[0]);
- uuid[ 1] = parseUuidPart(&uuidString[2]);
- uuid[ 2] = parseUuidPart(&uuidString[4]);
- uuid[ 3] = parseUuidPart(&uuidString[6]);
+ uuid[ 0] = parseUuidPart(&uuidString[0]);
+ uuid[ 1] = parseUuidPart(&uuidString[2]);
+ uuid[ 2] = parseUuidPart(&uuidString[4]);
+ uuid[ 3] = parseUuidPart(&uuidString[6]);
- uuid[ 4] = parseUuidPart(&uuidString[9]);
- uuid[ 5] = parseUuidPart(&uuidString[11]);
+ uuid[ 4] = parseUuidPart(&uuidString[9]);
+ uuid[ 5] = parseUuidPart(&uuidString[11]);
- uuid[ 6] = parseUuidPart(&uuidString[14]);
- uuid[ 7] = parseUuidPart(&uuidString[16]);
+ uuid[ 6] = parseUuidPart(&uuidString[14]);
+ uuid[ 7] = parseUuidPart(&uuidString[16]);
- uuid[ 8] = parseUuidPart(&uuidString[19]);
- uuid[ 9] = parseUuidPart(&uuidString[21]);
+ uuid[ 8] = parseUuidPart(&uuidString[19]);
+ uuid[ 9] = parseUuidPart(&uuidString[21]);
- uuid[10] = parseUuidPart(&uuidString[24]);
- uuid[11] = parseUuidPart(&uuidString[26]);
- uuid[12] = parseUuidPart(&uuidString[28]);
- uuid[13] = parseUuidPart(&uuidString[30]);
- uuid[14] = parseUuidPart(&uuidString[32]);
- uuid[15] = parseUuidPart(&uuidString[34]);
+ uuid[10] = parseUuidPart(&uuidString[24]);
+ uuid[11] = parseUuidPart(&uuidString[26]);
+ uuid[12] = parseUuidPart(&uuidString[28]);
+ uuid[13] = parseUuidPart(&uuidString[30]);
+ uuid[14] = parseUuidPart(&uuidString[32]);
+ uuid[15] = parseUuidPart(&uuidString[34]);
- return RAND_UUID_OK;
-#elif defined(HAVE_UUID_UUID_H)
+ return RAND_UUID_OK;
+ }
+#endif
+#if defined(HAVE_UUID_UUID_H)
// note: uuid_t is typedefed as unsigned char[16] on linux/apple
uuid_generate(uuid);
return RAND_UUID_OK;
}
else
{
- close(fd);
return RAND_UUID_READ_ERROR;
}
#elif defined(HAVE_UUID_UUID_H)