package protocol import ( "github.com/xtls/xray-core/common/net" ) type ServerSpec struct { Destination net.Destination User *MemoryUser } func NewServerSpec(dest net.Destination, user *MemoryUser) *ServerSpec { return &ServerSpec{ Destination: dest, User: user, } } func NewServerSpecFromPB(spec *ServerEndpoint) (*ServerSpec, error) { dest := net.TCPDestination(spec.Address.AsAddress(), net.Port(spec.Port)) var dUser *MemoryUser if spec.User != nil { user, err := spec.User.ToMemoryUser() if err != nil { return nil, err } dUser = user } return NewServerSpec(dest, dUser), nil }