兼容Android环境运行导致无法解析DNS问题,修改默认UDP队列长度从128到1024

This commit is contained in:
wenyifan
2022-08-14 12:36:36 +08:00
parent 9d2210368c
commit af51714e49
5 changed files with 34 additions and 11 deletions

View File

@ -1,10 +1,12 @@
package main
import (
"context"
"crypto/tls"
"errors"
"flag"
"fmt"
"net"
"net/http"
"os"
"runtime"
@ -35,14 +37,15 @@ func init() {
flag.StringVar(&configureFile, "C", "", "configure file")
flag.BoolVar(&baseCfg.Debug, "D", false, "enable debug log")
flag.BoolVar(&printVersion, "V", false, "print version")
flag.StringVar(&baseCfg.ExternalResolver, "NS", "", "External DNS Server")
if pprofEnabled {
flag.StringVar(&pprofAddr, "P", ":6060", "profiling HTTP server address")
}
flag.Parse()
if printVersion {
fmt.Fprintf(os.Stdout, "gost %s (%s %s/%s)\nEnhanced:\n%s\n",
gost.Version, runtime.Version(), runtime.GOOS, runtime.GOARCH, gost.Enhanced)
fmt.Fprintf(os.Stdout, "gost %s (%s %s/%s)\n",
gost.Version, runtime.Version(), runtime.GOOS, runtime.GOARCH)
os.Exit(0)
}
@ -85,6 +88,17 @@ func main() {
gost.DefaultTLSConfig = tlsConfig
if baseCfg.ExternalResolver != "" {
gost.DefaultExternalResolver = parseResolver(baseCfg.ExternalResolver)
gost.DefaultExternalResolver.Init()
} else if os.Getenv("ANDROID_ROOT") != "" {
log.Logf("Android detected modify default DNS server to %v", gost.DefaultDNSServer)
net.DefaultResolver = &net.Resolver{Dial: func(ctx context.Context, network, address string) (net.Conn, error) {
d := net.Dialer{}
return d.DialContext(ctx, network, gost.DefaultDNSServer)
}, PreferGo: true}
}
if err := start(); err != nil {
log.Log(err)
os.Exit(1)

View File

@ -28,10 +28,11 @@ func (l *stringList) Set(value string) error {
}
type route struct {
ServeNodes stringList
ChainNodes stringList
Retries int
Mark int
ServeNodes stringList
ChainNodes stringList
Retries int
Mark int
ExternalResolver string
}
func (r *route) parseChain() (*gost.Chain, error) {