ssmapi.go 685 B

123456789101112131415161718192021222324
  1. package experimental
  2. import (
  3. "os"
  4. "github.com/sagernet/sing-box/adapter"
  5. "github.com/sagernet/sing-box/log"
  6. "github.com/sagernet/sing-box/option"
  7. )
  8. type SSMServerConstructor = func(router adapter.Router, logger log.Logger, options option.SSMAPIOptions) (adapter.SSMServer, error)
  9. var ssmServerConstructor SSMServerConstructor
  10. func RegisterSSMServerConstructor(constructor SSMServerConstructor) {
  11. ssmServerConstructor = constructor
  12. }
  13. func NewSSMServer(router adapter.Router, logger log.Logger, options option.SSMAPIOptions) (adapter.SSMServer, error) {
  14. if ssmServerConstructor == nil {
  15. return nil, os.ErrInvalid
  16. }
  17. return ssmServerConstructor(router, logger, options)
  18. }