mirror of
https://github.com/MatsuriDayo/nekoray.git
synced 2025-12-18 04:54:38 +03:00
fix
This commit is contained in:
@@ -17,7 +17,8 @@ import (
|
||||
)
|
||||
|
||||
var instance *libcore.V2RayInstance
|
||||
var getNekorayTunIndex = func() int { return 0 }
|
||||
var getNekorayTunIndex = func() int { return 0 } // Windows only
|
||||
var underlyingNetDialer *net.Dialer // Windows only
|
||||
|
||||
func setupCore() {
|
||||
// TODO del
|
||||
@@ -27,6 +28,9 @@ func setupCore() {
|
||||
// localdns setup
|
||||
resolver_def := &net.Resolver{PreferGo: false}
|
||||
resolver_go := &net.Resolver{PreferGo: true}
|
||||
if underlyingNetDialer != nil {
|
||||
resolver_go.Dial = underlyingNetDialer.DialContext
|
||||
}
|
||||
localdns.SetLookupFunc(func(network string, host string) (ips []net.IP, err error) {
|
||||
// fix old sekai
|
||||
defer func() {
|
||||
|
||||
@@ -23,7 +23,7 @@ func init() {
|
||||
bindInterfaceIndex := getBindInterfaceIndex(address)
|
||||
if bindInterfaceIndex != 0 {
|
||||
if err := bindInterface(fd, bindInterfaceIndex, true, true); err != nil {
|
||||
log.Println("bind inbound interface", err)
|
||||
log.Println("bind inbound interface", network, address, err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
@@ -41,12 +41,33 @@ func init() {
|
||||
v6 = false
|
||||
}
|
||||
if err := bindInterface(fd, bindInterfaceIndex, v4, v6); err != nil {
|
||||
log.Println("bind outbound interface", err)
|
||||
log.Println("bind outbound interface", network, address, err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
underlyingNetDialer = &net.Dialer{
|
||||
Control: func(network, address string, c syscall.RawConn) error {
|
||||
c.Control(func(fd uintptr) {
|
||||
bindInterfaceIndex := getBindInterfaceIndex(address)
|
||||
if bindInterfaceIndex != 0 {
|
||||
var v4, v6 bool
|
||||
if strings.HasSuffix(network, "6") {
|
||||
v4 = false
|
||||
v6 = true
|
||||
} else {
|
||||
v4 = true
|
||||
v6 = false
|
||||
}
|
||||
if err := bindInterface(fd, bindInterfaceIndex, v4, v6); err != nil {
|
||||
log.Println("underlyingNetDialer: bind interface", network, address, err)
|
||||
}
|
||||
}
|
||||
})
|
||||
return nil
|
||||
},
|
||||
}
|
||||
//
|
||||
updateRoutes()
|
||||
iphlpapi.RegisterNotifyRouteChange2(func(callerContext uintptr, row uintptr, notificationType uint32) uintptr {
|
||||
|
||||
@@ -34,7 +34,7 @@ func main() {
|
||||
} else {
|
||||
// 1. nekoray stop it self and run "updater.exe"
|
||||
Copy("./updater.exe", "./updater.old")
|
||||
exec.Command("./updater.old").Start()
|
||||
exec.Command("./updater.old", os.Args[1:]...).Start()
|
||||
}
|
||||
} else {
|
||||
// 1. update files
|
||||
|
||||
Reference in New Issue
Block a user