diff options
Diffstat (limited to 'vendor/github.com/rs/xid')
-rw-r--r-- | vendor/github.com/rs/xid/hostid_darwin.go | 4 | ||||
-rw-r--r-- | vendor/github.com/rs/xid/hostid_freebsd.go | 4 | ||||
-rw-r--r-- | vendor/github.com/rs/xid/hostid_windows.go | 21 | ||||
-rw-r--r-- | vendor/github.com/rs/xid/id.go | 12 |
4 files changed, 22 insertions, 19 deletions
diff --git a/vendor/github.com/rs/xid/hostid_darwin.go b/vendor/github.com/rs/xid/hostid_darwin.go index abd06840..08351ff7 100644 --- a/vendor/github.com/rs/xid/hostid_darwin.go +++ b/vendor/github.com/rs/xid/hostid_darwin.go @@ -2,8 +2,8 @@ package xid -import "golang.org/x/sys/unix" +import "syscall" func readPlatformMachineID() (string, error) { - return unix.Sysctl("kern.uuid") + return syscall.Sysctl("kern.uuid") } diff --git a/vendor/github.com/rs/xid/hostid_freebsd.go b/vendor/github.com/rs/xid/hostid_freebsd.go index df2bd13c..be25a039 100644 --- a/vendor/github.com/rs/xid/hostid_freebsd.go +++ b/vendor/github.com/rs/xid/hostid_freebsd.go @@ -2,8 +2,8 @@ package xid -import "golang.org/x/sys/unix" +import "syscall" func readPlatformMachineID() (string, error) { - return unix.Sysctl("kern.hostuuid") + return syscall.Sysctl("kern.hostuuid") } diff --git a/vendor/github.com/rs/xid/hostid_windows.go b/vendor/github.com/rs/xid/hostid_windows.go index b8e1c2cb..ec2593ee 100644 --- a/vendor/github.com/rs/xid/hostid_windows.go +++ b/vendor/github.com/rs/xid/hostid_windows.go @@ -4,32 +4,31 @@ package xid import ( "fmt" + "syscall" "unsafe" - - "golang.org/x/sys/windows" ) func readPlatformMachineID() (string, error) { - // source: https://github.com/shirou/gopsutil/blob/master/host/host_windows.go - var h windows.Handle - err := windows.RegOpenKeyEx(windows.HKEY_LOCAL_MACHINE, windows.StringToUTF16Ptr(`SOFTWARE\Microsoft\Cryptography`), 0, windows.KEY_READ|windows.KEY_WOW64_64KEY, &h) + // source: https://github.com/shirou/gopsutil/blob/master/host/host_syscall.go + var h syscall.Handle + err := syscall.RegOpenKeyEx(syscall.HKEY_LOCAL_MACHINE, syscall.StringToUTF16Ptr(`SOFTWARE\Microsoft\Cryptography`), 0, syscall.KEY_READ|syscall.KEY_WOW64_64KEY, &h) if err != nil { return "", err } - defer windows.RegCloseKey(h) + defer syscall.RegCloseKey(h) - const windowsRegBufLen = 74 // len(`{`) + len(`abcdefgh-1234-456789012-123345456671` * 2) + len(`}`) // 2 == bytes/UTF16 + const syscallRegBufLen = 74 // len(`{`) + len(`abcdefgh-1234-456789012-123345456671` * 2) + len(`}`) // 2 == bytes/UTF16 const uuidLen = 36 - var regBuf [windowsRegBufLen]uint16 - bufLen := uint32(windowsRegBufLen) + var regBuf [syscallRegBufLen]uint16 + bufLen := uint32(syscallRegBufLen) var valType uint32 - err = windows.RegQueryValueEx(h, windows.StringToUTF16Ptr(`MachineGuid`), nil, &valType, (*byte)(unsafe.Pointer(®Buf[0])), &bufLen) + err = syscall.RegQueryValueEx(h, syscall.StringToUTF16Ptr(`MachineGuid`), nil, &valType, (*byte)(unsafe.Pointer(®Buf[0])), &bufLen) if err != nil { return "", err } - hostID := windows.UTF16ToString(regBuf[:]) + hostID := syscall.UTF16ToString(regBuf[:]) hostIDLen := len(hostID) if hostIDLen != uuidLen { return "", fmt.Errorf("HostID incorrect: %q\n", hostID) diff --git a/vendor/github.com/rs/xid/id.go b/vendor/github.com/rs/xid/id.go index 51b8d7fa..466faf26 100644 --- a/vendor/github.com/rs/xid/id.go +++ b/vendor/github.com/rs/xid/id.go @@ -42,6 +42,7 @@ package xid import ( + "bytes" "crypto/md5" "crypto/rand" "database/sql/driver" @@ -51,10 +52,9 @@ import ( "hash/crc32" "io/ioutil" "os" + "sort" "sync/atomic" "time" - "bytes" - "sort" ) // Code inspired from mgo/bson ObjectId @@ -143,9 +143,14 @@ func randInt() uint32 { // New generates a globally unique ID func New() ID { + return NewWithTime(time.Now()) +} + +// NewWithTime generates a globally unique ID with the passed in time +func NewWithTime(t time.Time) ID { var id ID // Timestamp, 4 bytes, big endian - binary.BigEndian.PutUint32(id[:], uint32(time.Now().Unix())) + binary.BigEndian.PutUint32(id[:], uint32(t.Unix())) // Machine, first 3 bytes of md5(hostname) id[4] = machineID[0] id[5] = machineID[1] @@ -339,7 +344,6 @@ func (id ID) Compare(other ID) int { return bytes.Compare(id[:], other[:]) } - type sorter []ID func (s sorter) Len() int { |