sing-box/adapter/network.go

55 lines
1.2 KiB
Go
Raw Normal View History

2024-11-10 12:11:21 +08:00
package adapter
import (
2024-11-12 19:37:10 +08:00
"time"
C "github.com/sagernet/sing-box/constant"
2024-11-10 12:11:21 +08:00
"github.com/sagernet/sing-tun"
"github.com/sagernet/sing/common/control"
)
type NetworkManager interface {
Lifecycle
2024-11-10 12:11:21 +08:00
InterfaceFinder() control.InterfaceFinder
UpdateInterfaces() error
2024-11-11 16:23:45 +08:00
DefaultNetworkInterface() *NetworkInterface
NetworkInterfaces() []NetworkInterface
2024-11-10 12:11:21 +08:00
AutoDetectInterface() bool
AutoDetectInterfaceFunc() control.Func
2024-11-12 19:37:10 +08:00
ProtectFunc() control.Func
DefaultOptions() NetworkOptions
2024-11-10 12:11:21 +08:00
RegisterAutoRedirectOutputMark(mark uint32) error
AutoRedirectOutputMark() uint32
NetworkMonitor() tun.NetworkUpdateMonitor
InterfaceMonitor() tun.DefaultInterfaceMonitor
PackageManager() tun.PackageManager
WIFIState() WIFIState
ResetNetwork()
}
2024-11-11 16:23:45 +08:00
2024-11-12 19:37:10 +08:00
type NetworkOptions struct {
2024-11-13 19:05:28 +08:00
NetworkStrategy C.NetworkStrategy
NetworkType []C.InterfaceType
FallbackNetworkType []C.InterfaceType
FallbackDelay time.Duration
BindInterface string
RoutingMark uint32
2024-11-12 19:37:10 +08:00
}
2024-11-11 16:23:45 +08:00
type InterfaceUpdateListener interface {
InterfaceUpdated()
}
type WIFIState struct {
SSID string
BSSID string
}
type NetworkInterface struct {
control.Interface
2024-11-13 19:05:28 +08:00
Type C.InterfaceType
2024-11-11 16:23:45 +08:00
DNSServers []string
Expensive bool
Constrained bool
}