mirror of https://github.com/XTLS/Xray-core
31 lines
628 B
Go
31 lines
628 B
Go
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
|
|
}
|