- if (strlen(in) != 36)
- return -1;
- for (i=0, cp = in; i <= 36; i++,cp++) {
- if ((i == 8) || (i == 13) || (i == 18) ||
- (i == 23))
- if (*cp == '-')
- continue;
- if (i== 36)
- if (*cp == 0)
- continue;
- if (!isxdigit(*cp))
- return -1;
- }
- uuid.time_low = simple_strtoul(in, NULL, 16);
- uuid.time_mid = simple_strtoul(in+9, NULL, 16);
- uuid.time_hi_and_version = simple_strtoul(in+14, NULL, 16);
- uuid.clock_seq = simple_strtoul(in+19, NULL, 16);
- cp = in+24;
- buf[2] = 0;
- for (i=0; i < 6; i++) {
- buf[0] = *cp++;
- buf[1] = *cp++;
- uuid.node[i] = simple_strtoul(buf, NULL, 16);
- }