aboutsummaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/net/publicsuffix/list.go
diff options
context:
space:
mode:
authorJordan <me@jordan.im>2023-08-18 00:08:21 -0700
committerJordan <me@jordan.im>2023-08-18 00:08:21 -0700
commit61553158764c6801578076c72d8bffb423e343cc (patch)
tree5d45cf4b6699eebf01e9f2b6ac9ff0000819ebd2 /vendor/golang.org/x/net/publicsuffix/list.go
parent001a042ccba1c3faf340d8217ee8d15efa60dc05 (diff)
downloadkeep-61553158764c6801578076c72d8bffb423e343cc.tar.gz
keep-61553158764c6801578076c72d8bffb423e343cc.zip
misc: go get -u; go mod tidy; go mod vendor
Diffstat (limited to 'vendor/golang.org/x/net/publicsuffix/list.go')
-rw-r--r--vendor/golang.org/x/net/publicsuffix/list.go27
1 files changed, 24 insertions, 3 deletions
diff --git a/vendor/golang.org/x/net/publicsuffix/list.go b/vendor/golang.org/x/net/publicsuffix/list.go
index e2fddd6..d56e9e7 100644
--- a/vendor/golang.org/x/net/publicsuffix/list.go
+++ b/vendor/golang.org/x/net/publicsuffix/list.go
@@ -101,10 +101,10 @@ loop:
break
}
- u := nodes[f] >> (nodesBitsTextOffset + nodesBitsTextLength)
+ u := uint32(nodes.get(f) >> (nodesBitsTextOffset + nodesBitsTextLength))
icannNode = u&(1<<nodesBitsICANN-1) != 0
u >>= nodesBitsICANN
- u = children[u&(1<<nodesBitsChildren-1)]
+ u = children.get(u & (1<<nodesBitsChildren - 1))
lo = u & (1<<childrenBitsLo - 1)
u >>= childrenBitsLo
hi = u & (1<<childrenBitsHi - 1)
@@ -156,7 +156,7 @@ func find(label string, lo, hi uint32) uint32 {
// nodeLabel returns the label for the i'th node.
func nodeLabel(i uint32) string {
- x := nodes[i]
+ x := nodes.get(i)
length := x & (1<<nodesBitsTextLength - 1)
x >>= nodesBitsTextLength
offset := x & (1<<nodesBitsTextOffset - 1)
@@ -180,3 +180,24 @@ func EffectiveTLDPlusOne(domain string) (string, error) {
}
return domain[1+strings.LastIndex(domain[:i], "."):], nil
}
+
+type uint32String string
+
+func (u uint32String) get(i uint32) uint32 {
+ off := i * 4
+ return (uint32(u[off])<<24 |
+ uint32(u[off+1])<<16 |
+ uint32(u[off+2])<<8 |
+ uint32(u[off+3]))
+}
+
+type uint40String string
+
+func (u uint40String) get(i uint32) uint64 {
+ off := uint64(i * (nodesBits / 8))
+ return uint64(u[off])<<32 |
+ uint64(u[off+1])<<24 |
+ uint64(u[off+2])<<16 |
+ uint64(u[off+3])<<8 |
+ uint64(u[off+4])
+}