mirror of
https://github.com/SagerNet/sing.git
synced 2025-04-06 05:17: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 {
|
return func(network, address string, conn syscall.RawConn) error {
|
||||||
interfaceName := interfaceNameFunc()
|
interfaceName := interfaceNameFunc(network, address)
|
||||||
if interfaceName == "" {
|
if interfaceName == "" {
|
||||||
return nil
|
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 {
|
return func(network, address string, conn syscall.RawConn) error {
|
||||||
index := interfaceIndexFunc()
|
index := interfaceIndexFunc(network, address)
|
||||||
return bindToInterface(conn, network, index)
|
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 {
|
return func(network, address string, conn syscall.RawConn) error {
|
||||||
interfaceName := interfaceNameFunc()
|
interfaceName := interfaceNameFunc(network, address)
|
||||||
if interfaceName == "" {
|
if interfaceName == "" {
|
||||||
return nil
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,10 +10,10 @@ func BindToInterface(manager BindManager, interfaceName string) Func {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func() string) Func {
|
func BindToInterfaceFunc(manager BindManager, interfaceNameFunc func(network, address string) string) Func {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func BindToInterfaceIndexFunc(interfaceIndexFunc func() int) Func {
|
func BindToInterfaceIndexFunc(interfaceIndexFunc func(network, address string) int) Func {
|
||||||
return nil
|
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 {
|
return func(network, address string, conn syscall.RawConn) error {
|
||||||
interfaceName := interfaceNameFunc()
|
interfaceName := interfaceNameFunc(network, address)
|
||||||
if interfaceName == "" {
|
if interfaceName == "" {
|
||||||
return nil
|
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 {
|
return func(network, address string, conn syscall.RawConn) error {
|
||||||
index := interfaceIndexFunc()
|
index := interfaceIndexFunc(network, address)
|
||||||
if index == -1 {
|
if index == -1 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/sagernet/sing/common"
|
"github.com/sagernet/sing/common"
|
||||||
"github.com/sagernet/sing/common/auth"
|
"github.com/sagernet/sing/common/auth"
|
||||||
"github.com/sagernet/sing/common/buf"
|
"github.com/sagernet/sing/common/buf"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue