refactored some stuff, added healthcheck support, fixed 'include file' reload not showing in log

This commit is contained in:
yusing
2024-10-12 13:56:38 +08:00
parent 64e30f59e8
commit d47b672aa5
41 changed files with 783 additions and 421 deletions

View File

@@ -9,20 +9,21 @@ import (
type CIDR net.IPNet
func (*CIDR) ConvertFrom(val any) (any, E.NestedError) {
cidr, ok := val.(string)
func (cidr *CIDR) ConvertFrom(val any) E.NestedError {
cidrStr, ok := val.(string)
if !ok {
return nil, E.TypeMismatch[string](val)
return E.TypeMismatch[string](val)
}
if !strings.Contains(cidr, "/") {
cidr += "/32" // single IP
if !strings.Contains(cidrStr, "/") {
cidrStr += "/32" // single IP
}
_, ipnet, err := net.ParseCIDR(cidr)
_, ipnet, err := net.ParseCIDR(cidrStr)
if err != nil {
return nil, E.Invalid("CIDR", cidr)
return E.Invalid("CIDR", cidr)
}
return (*CIDR)(ipnet), nil
*cidr = CIDR(*ipnet)
return nil
}
func (cidr *CIDR) Contains(ip net.IP) bool {

View File

@@ -1,10 +1,22 @@
package types
import "net/url"
import (
urlPkg "net/url"
)
type URL struct{ *url.URL }
type URL struct {
*urlPkg.URL
}
func NewURL(url *url.URL) URL {
func ParseURL(url string) (URL, error) {
u, err := urlPkg.Parse(url)
if err != nil {
return URL{}, err
}
return URL{URL: u}, nil
}
func NewURL(url *urlPkg.URL) URL {
return URL{url}
}
@@ -19,6 +31,10 @@ func (u URL) MarshalText() (text []byte, err error) {
return []byte(u.String()), nil
}
func (u URL) Equals(other URL) bool {
func (u URL) Equals(other *URL) bool {
return u.URL == other.URL || u.String() == other.String()
}
func (u URL) JoinPath(path string) URL {
return URL{u.URL.JoinPath(path)}
}