27 lines
710 B
Go
27 lines
710 B
Go
package main
|
|
|
|
import (
|
|
"github.com/sagernet/sing-box/adapter"
|
|
"github.com/sagernet/sing-box/daemon"
|
|
)
|
|
|
|
type daemonPlatform interface {
|
|
adapter.PlatformInterface
|
|
PrepareOwner(identity peerIdentity) error
|
|
RestoreOwner(state ownerState) error
|
|
ReleaseOwner() error
|
|
ResetPlatformOptions() error
|
|
SetSystemProxyPreference(enabled bool)
|
|
SystemProxyStatus() (*daemon.SystemProxyStatus, error)
|
|
SetSystemProxyEnabled(enabled bool) error
|
|
HandleSessionChange(eventType uint32, sessionID uint32, state ownerState) (uint32, bool, error)
|
|
Close() error
|
|
}
|
|
|
|
func (d *Daemon) preparePlatformOwnerLocked(identity peerIdentity) error {
|
|
if d.platform == nil {
|
|
return nil
|
|
}
|
|
return d.platform.PrepareOwner(identity)
|
|
}
|