@@ -25,48 +25,49 @@ import (
2525)
2626
2727type pwent struct {
28- id int
28+ id uint32
2929 name string
3030}
3131
3232type mapping struct {
3333 sync.Mutex
3434 salt string
35- usernames map [string ]int
36- userIDs map [int ]string
37- groups map [string ]int
38- groupIDs map [int ]string
35+ usernames map [string ]uint32
36+ userIDs map [uint32 ]string
37+ groups map [string ]uint32
38+ groupIDs map [uint32 ]string
3939}
4040
4141func newMapping (salt string ) * mapping {
4242 m := & mapping {
4343 salt : salt ,
44- usernames : make (map [string ]int ),
45- userIDs : make (map [int ]string ),
46- groups : make (map [string ]int ),
47- groupIDs : make (map [int ]string ),
44+ usernames : make (map [string ]uint32 ),
45+ userIDs : make (map [uint32 ]string ),
46+ groups : make (map [string ]uint32 ),
47+ groupIDs : make (map [uint32 ]string ),
4848 }
4949 m .update (genAllUids (), genAllGids ())
5050 return m
5151}
5252
53- func (m * mapping ) genGuid (name string ) int {
53+ func (m * mapping ) genGuid (name string ) uint32 {
5454 digest := md5 .Sum ([]byte (m .salt + name + m .salt ))
5555 a := binary .LittleEndian .Uint64 (digest [0 :8 ])
5656 b := binary .LittleEndian .Uint64 (digest [8 :16 ])
57- return int ( uint32 (a ^ b ) )
57+ return uint32 (a ^ b )
5858}
5959
60- func (m * mapping ) lookupUser (name string ) int {
60+ func (m * mapping ) lookupUser (name string ) uint32 {
6161 m .Lock ()
6262 defer m .Unlock ()
63- var id int
63+ var id uint32
6464 if id , ok := m .usernames [name ]; ok {
6565 return id
6666 }
6767 u , _ := user .Lookup (name )
6868 if u != nil {
69- id , _ = strconv .Atoi (u .Uid )
69+ id_ , _ := strconv .ParseUint (u .Uid , 10 , 32 )
70+ id = uint32 (id_ )
7071 } else {
7172 id = m .genGuid (name )
7273 }
@@ -75,33 +76,34 @@ func (m *mapping) lookupUser(name string) int {
7576 return id
7677}
7778
78- func (m * mapping ) lookupGroup (name string ) int {
79+ func (m * mapping ) lookupGroup (name string ) uint32 {
7980 m .Lock ()
8081 defer m .Unlock ()
81- var id int
82+ var id uint32
8283 if id , ok := m .groups [name ]; ok {
8384 return id
8485 }
8586 g , _ := user .LookupGroup (name )
8687 if g == nil {
8788 id = m .genGuid (name )
8889 } else {
89- id , _ = strconv .Atoi (g .Gid )
90+ id_ , _ := strconv .ParseUint (g .Gid , 10 , 32 )
91+ id = uint32 (id_ )
9092 }
9193 m .groups [name ] = id
9294 m .groupIDs [id ] = name
9395 return 0
9496}
9597
96- func (m * mapping ) lookupUserID (id int ) string {
98+ func (m * mapping ) lookupUserID (id uint32 ) string {
9799 m .Lock ()
98100 defer m .Unlock ()
99101 if name , ok := m .userIDs [id ]; ok {
100102 return name
101103 }
102- u , _ := user .LookupId (strconv .Itoa (id ))
104+ u , _ := user .LookupId (strconv .Itoa (int ( id ) ))
103105 if u == nil {
104- u = & user.User {Username : strconv .Itoa (id )}
106+ u = & user.User {Username : strconv .Itoa (int ( id ) )}
105107 }
106108 name := u .Username
107109 if len (name ) > 49 {
@@ -112,15 +114,15 @@ func (m *mapping) lookupUserID(id int) string {
112114 return name
113115}
114116
115- func (m * mapping ) lookupGroupID (id int ) string {
117+ func (m * mapping ) lookupGroupID (id uint32 ) string {
116118 m .Lock ()
117119 defer m .Unlock ()
118120 if name , ok := m .groupIDs [id ]; ok {
119121 return name
120122 }
121- g , _ := user .LookupGroupId (strconv .Itoa (id ))
123+ g , _ := user .LookupGroupId (strconv .Itoa (int ( id ) ))
122124 if g == nil {
123- g = & user.Group {Name : strconv .Itoa (id )}
125+ g = & user.Group {Name : strconv .Itoa (int ( id ) )}
124126 }
125127 name := g .Name
126128 if len (name ) > 49 {
0 commit comments