mirror of
https://github.com/MetaCubeX/mihomo.git
synced 2025-09-20 04:25:59 +08:00
chore: better defensive programming
This commit is contained in:
14
main.go
14
main.go
@ -62,7 +62,19 @@ func main() {
|
|||||||
// Defensive programming: panic when code mistakenly calls net.DefaultResolver
|
// Defensive programming: panic when code mistakenly calls net.DefaultResolver
|
||||||
net.DefaultResolver.PreferGo = true
|
net.DefaultResolver.PreferGo = true
|
||||||
net.DefaultResolver.Dial = func(ctx context.Context, network, address string) (net.Conn, error) {
|
net.DefaultResolver.Dial = func(ctx context.Context, network, address string) (net.Conn, error) {
|
||||||
panic("should never be called")
|
//panic("should never be called")
|
||||||
|
buf := make([]byte, 1024)
|
||||||
|
for {
|
||||||
|
n := runtime.Stack(buf, true)
|
||||||
|
if n < len(buf) {
|
||||||
|
buf = buf[:n]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
buf = make([]byte, 2*len(buf))
|
||||||
|
}
|
||||||
|
fmt.Fprintf(os.Stderr, "panic: should never be called\n\n%s", buf) // always print all goroutine stack
|
||||||
|
os.Exit(2)
|
||||||
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
_, _ = maxprocs.Set(maxprocs.Logger(func(string, ...any) {}))
|
_, _ = maxprocs.Set(maxprocs.Logger(func(string, ...any) {}))
|
||||||
|
Reference in New Issue
Block a user