fix: unmarshal and some tests

This commit is contained in:
yusing
2025-04-13 12:24:11 +08:00
parent be87d47ebb
commit 3f2dfe14b5
6 changed files with 100 additions and 101 deletions

View File

@@ -23,7 +23,7 @@ type (
Key, Value string
}
Host string
CIDR struct{ net.IPNet }
CIDR net.IPNet
)
var ErrInvalidHTTPHeaderFilter = gperr.New("invalid http header filter")
@@ -85,7 +85,7 @@ func (h Host) Fulfill(req *http.Request, res *http.Response) bool {
return req.Host == string(h)
}
func (cidr CIDR) Fulfill(req *http.Request, res *http.Response) bool {
func (cidr *CIDR) Fulfill(req *http.Request, res *http.Response) bool {
ip, _, err := net.SplitHostPort(req.RemoteAddr)
if err != nil {
ip = req.RemoteAddr
@@ -94,5 +94,9 @@ func (cidr CIDR) Fulfill(req *http.Request, res *http.Response) bool {
if netIP == nil {
return false
}
return cidr.Contains(netIP)
return (*net.IPNet)(cidr).Contains(netIP)
}
func (cidr *CIDR) String() string {
return (*net.IPNet)(cidr).String()
}

View File

@@ -157,11 +157,9 @@ func TestHeaderFilter(t *testing.T) {
func TestCIDRFilter(t *testing.T) {
cidr := []*CIDR{{
net.IPNet{
IP: net.ParseIP("192.168.10.0"),
Mask: net.CIDRMask(24, 32),
}},
}
IP: net.ParseIP("192.168.10.0"),
Mask: net.CIDRMask(24, 32),
}}
ExpectEqual(t, cidr[0].String(), "192.168.10.0/24")
inCIDR := &http.Request{
RemoteAddr: "192.168.10.1",