@@ -15,6 +15,8 @@ import (
1515 "time"
1616
1717 clog "github.com/SenseUnit/dumbproxy/log"
18+
19+ us "github.com/Snawoot/uniqueslice"
1820)
1921
2022type serialNumberSetFile struct {
@@ -149,22 +151,20 @@ func formatSerial(serial *big.Int) string {
149151 return string (buf [:len (buf )- 1 ])
150152}
151153
152- type serialNumberKey = [ 20 ]byte
154+ type serialNumberKey = us. Handle [[ ]byte , byte ]
153155type serialNumberSet struct {
154156 sns map [serialNumberKey ]struct {}
155157}
156158
157- func normalizeSNBytes (b []byte ) serialNumberKey {
158- var k serialNumberKey
159- copy (
160- k [max (len (k )- len (b ), 0 ):],
161- b [max (len (b )- len (k ), 0 ):],
162- )
163- return k
159+ func cutLeadingZeroes (b []byte ) []byte {
160+ for len (b ) > 1 && b [0 ] == 0 {
161+ b = b [1 :]
162+ }
163+ return b
164164}
165165
166166func (s * serialNumberSet ) Has (serial * big.Int ) bool {
167- key := normalizeSNBytes ( serial .Bytes ())
167+ key := us . Make ( cutLeadingZeroes ( serial .Bytes () ))
168168 if s == nil || s .sns == nil {
169169 return false
170170 }
@@ -188,7 +188,7 @@ func newSerialNumberSetFromReader(r io.Reader, bad func(error)) (*serialNumberSe
188188 }
189189 continue
190190 }
191- set [normalizeSNBytes ( serial )] = struct {}{}
191+ set [us . Make ( cutLeadingZeroes ( serial ) )] = struct {}{}
192192 }
193193
194194 if err := scanner .Err (); err != nil {
0 commit comments