platform: Add boxdd
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/sagernet/sing-box/daemon"
|
||||
E "github.com/sagernet/sing/common/exceptions"
|
||||
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
var _ daemon.ManagedHandler = (*managedHandler)(nil)
|
||||
|
||||
type managedHandler struct {
|
||||
daemon *Daemon
|
||||
}
|
||||
|
||||
func (h *managedHandler) ServiceStop() error {
|
||||
if h.daemon.closed {
|
||||
return os.ErrClosed
|
||||
}
|
||||
options, err := loadStartOptions()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return h.daemon.stopServiceLocked(options.OwnerUserID)
|
||||
}
|
||||
|
||||
func (h *managedHandler) ServiceReload() error {
|
||||
if h.daemon.closed {
|
||||
return os.ErrClosed
|
||||
}
|
||||
configContent, err := loadServiceConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
options, err := loadStartOptions()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = h.daemon.startService(configContent, options)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
options.WasRunning = true
|
||||
return saveStartOptions(options)
|
||||
}
|
||||
|
||||
func (h *managedHandler) SystemProxyStatus() (*daemon.SystemProxyStatus, error) {
|
||||
return &daemon.SystemProxyStatus{}, nil
|
||||
}
|
||||
|
||||
func (h *managedHandler) SetSystemProxyEnabled(enabled bool) error {
|
||||
if !enabled {
|
||||
return nil
|
||||
}
|
||||
return status.Error(codes.FailedPrecondition, "the system proxy is not available")
|
||||
}
|
||||
|
||||
func (h *managedHandler) TriggerNativeCrash() error {
|
||||
return E.New("native crash is not supported")
|
||||
}
|
||||
Reference in New Issue
Block a user