mirror of
https://github.com/SagerNet/sing.git
synced 2025-04-03 20:07:38 +03:00
Improve bind
This commit is contained in:
parent
185d879182
commit
d4ba8fdfac
5 changed files with 14 additions and 13 deletions
|
@ -22,9 +22,9 @@ func BindToInterface(manager BindManager, interfaceName string) Func {
|
|||
}
|
||||
}
|
||||
|
||||
func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func() string) Func {
|
||||
func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func(network, address string) string) Func {
|
||||
return func(network, address string, conn syscall.RawConn) error {
|
||||
interfaceName := interfaceNameFunc()
|
||||
interfaceName := interfaceNameFunc(network, address)
|
||||
if interfaceName == "" {
|
||||
return nil
|
||||
}
|
||||
|
@ -36,9 +36,9 @@ func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func() string) F
|
|||
}
|
||||
}
|
||||
|
||||
func BindToInterfaceIndexFunc(interfaceIndexFunc func() int) Func {
|
||||
func BindToInterfaceIndexFunc(interfaceIndexFunc func(network, address string) int) Func {
|
||||
return func(network, address string, conn syscall.RawConn) error {
|
||||
index := interfaceIndexFunc()
|
||||
index := interfaceIndexFunc(network, address)
|
||||
return bindToInterface(conn, network, index)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,9 +16,9 @@ func BindToInterface(manager BindManager, interfaceName string) Func {
|
|||
}
|
||||
}
|
||||
|
||||
func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func() string) Func {
|
||||
func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func(network, address string) string) Func {
|
||||
return func(network, address string, conn syscall.RawConn) error {
|
||||
interfaceName := interfaceNameFunc()
|
||||
interfaceName := interfaceNameFunc(network, address)
|
||||
if interfaceName == "" {
|
||||
return nil
|
||||
}
|
||||
|
@ -28,6 +28,6 @@ func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func() string) F
|
|||
}
|
||||
}
|
||||
|
||||
func BindToInterfaceIndexFunc(interfaceIndexFunc func() int) Func {
|
||||
func BindToInterfaceIndexFunc(interfaceIndexFunc func(network, address string) int) Func {
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -10,10 +10,10 @@ func BindToInterface(manager BindManager, interfaceName string) Func {
|
|||
return nil
|
||||
}
|
||||
|
||||
func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func() string) Func {
|
||||
func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func(network, address string) string) Func {
|
||||
return nil
|
||||
}
|
||||
|
||||
func BindToInterfaceIndexFunc(interfaceIndexFunc func() int) Func {
|
||||
func BindToInterfaceIndexFunc(interfaceIndexFunc func(network, address string) int) Func {
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -68,9 +68,9 @@ func BindToInterface(manager BindManager, interfaceName string) Func {
|
|||
}
|
||||
}
|
||||
|
||||
func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func() string) Func {
|
||||
func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func(network, address string) string) Func {
|
||||
return func(network, address string, conn syscall.RawConn) error {
|
||||
interfaceName := interfaceNameFunc()
|
||||
interfaceName := interfaceNameFunc(network, address)
|
||||
if interfaceName == "" {
|
||||
return nil
|
||||
}
|
||||
|
@ -82,9 +82,9 @@ func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func() string) F
|
|||
}
|
||||
}
|
||||
|
||||
func BindToInterfaceIndexFunc(interfaceIndexFunc func() int) Func {
|
||||
func BindToInterfaceIndexFunc(interfaceIndexFunc func(network, address string) int) Func {
|
||||
return func(network, address string, conn syscall.RawConn) error {
|
||||
index := interfaceIndexFunc()
|
||||
index := interfaceIndexFunc(network, address)
|
||||
if index == -1 {
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"net"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"github.com/sagernet/sing/common"
|
||||
"github.com/sagernet/sing/common/auth"
|
||||
"github.com/sagernet/sing/common/buf"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue