+
+NSResult NSGenerateUUIDStr(char uuidStr[UUID_STRING_SIZE])
+{
+ uint8_t uuid[UUID_SIZE] = { 0, };
+
+ if (RAND_UUID_OK == OCGenerateUuid(uuid))
+ {
+ if (RAND_UUID_OK == OCConvertUuidToString(uuid, uuidStr))
+ {
+ return NS_OK;
+ }
+ }
+ return NS_ERROR;
+}
+
+char * NSGetValueFromQuery(char *query, char * compareKey)
+{
+
+ char *key = NULL;
+ char *value = NULL;
+ char *restOfQuery = NULL;
+ int numKeyValuePairsParsed = 0;
+
+ NS_LOG_V(INFO, "NS Query Params = %s", query);
+
+ char *keyValuePair = strtok_r (query, NS_QUERY_SEPARATOR, &restOfQuery);
+
+ while(keyValuePair)
+ {
+ if (numKeyValuePairsParsed >= 2)
+ {
+ NS_LOG(ERROR, "More than 2 queries params in URI.");
+ return NULL;
+ }
+
+ key = strtok_r(keyValuePair, NS_KEY_VALUE_DELIMITER, &value);
+
+ if (!key || !value)
+ {
+ NS_LOG(ERROR, "More than 2 queries params in URI.");
+ return NULL;
+ }
+
+ if (strcmp(key, compareKey) == 0)
+ {
+ return value;
+ }
+
+ ++numKeyValuePairsParsed;
+
+ keyValuePair = strtok_r(NULL, NS_QUERY_SEPARATOR, &restOfQuery);
+ }
+
+ return NULL;
+}