Merge branch 'master' into all-handlers
diff --git a/data.go b/data.go index 90e40ce..e93971b 100644 --- a/data.go +++ b/data.go
@@ -4,7 +4,6 @@ "database/sql" "github.com/30x/apid" "sync" - "time" "fmt" "crypto/rand" "errors" @@ -307,11 +306,13 @@ */ func generateUUID() string { - unix32bits := uint32(time.Now().UTC().Unix()) - buff := make([]byte, 12) + buff := make([]byte, 16) numRead, err := rand.Read(buff) if numRead != len(buff) || err != nil { panic(err) } - return fmt.Sprintf("%x-%x-%x-%x-%x-%x", unix32bits, buff[0:2], buff[2:4], buff[4:6], buff[6:8], buff[8:]) + /* uuid v4 spec */ + buff[6] = (buff[6] | 0x40) & 0x4F + buff[8] = (buff[8] | 0x80) & 0xBF + return fmt.Sprintf("%x-%x-%x-%x-%x", buff[0:4], buff[4:6], buff[6:8], buff[8:10], buff[10:]) }