1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-09-28 14:56:33 -04:00
v2fly/app/subscription/entries/outbound/outbound.go
2023-11-26 10:55:27 +00:00

34 lines
1003 B
Go

package outbound
import (
"github.com/v2fly/v2ray-core/v5/app/subscription/entries"
"github.com/v2fly/v2ray-core/v5/app/subscription/specs"
"github.com/v2fly/v2ray-core/v5/common"
)
//go:generate go run github.com/v2fly/v2ray-core/v5/common/errors/errorgen
// NewOutboundEntriesParser internal api
func NewOutboundEntriesParser() entries.Converter {
return newOutboundEntriesParser()
}
func newOutboundEntriesParser() entries.Converter {
return &outboundEntriesParser{}
}
type outboundEntriesParser struct{}
func (o *outboundEntriesParser) ConvertToAbstractServerConfig(rawConfig []byte, kindHint string) (*specs.SubscriptionServerConfig, error) {
parser := specs.NewOutboundParser()
outbound, err := parser.ParseOutboundConfig(rawConfig)
if err != nil {
return nil, newError("failed to parse outbound config").Base(err).AtWarning()
}
return parser.ToSubscriptionServerConfig(outbound)
}
func init() {
common.Must(entries.RegisterConverter("outbound", newOutboundEntriesParser()))
}