outbound.go 1003 B

123456789101112131415161718192021222324252627282930313233
  1. package outbound
  2. import (
  3. "github.com/v2fly/v2ray-core/v5/app/subscription/entries"
  4. "github.com/v2fly/v2ray-core/v5/app/subscription/specs"
  5. "github.com/v2fly/v2ray-core/v5/common"
  6. )
  7. //go:generate go run github.com/v2fly/v2ray-core/v5/common/errors/errorgen
  8. // NewOutboundEntriesParser internal api
  9. func NewOutboundEntriesParser() entries.Converter {
  10. return newOutboundEntriesParser()
  11. }
  12. func newOutboundEntriesParser() entries.Converter {
  13. return &outboundEntriesParser{}
  14. }
  15. type outboundEntriesParser struct{}
  16. func (o *outboundEntriesParser) ConvertToAbstractServerConfig(rawConfig []byte, kindHint string) (*specs.SubscriptionServerConfig, error) {
  17. parser := specs.NewOutboundParser()
  18. outbound, err := parser.ParseOutboundConfig(rawConfig)
  19. if err != nil {
  20. return nil, newError("failed to parse outbound config").Base(err).AtWarning()
  21. }
  22. return parser.ToSubscriptionServerConfig(outbound)
  23. }
  24. func init() {
  25. common.Must(entries.RegisterConverter("outbound", newOutboundEntriesParser()))
  26. }