platform: Add boxdd

This commit is contained in:
世界
2026-07-13 11:23:59 +08:00
parent 2e751ae2c7
commit a8a69228d8
37 changed files with 7256 additions and 2 deletions
+63
View File
@@ -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")
}