Documentation
¶
Index ¶
- Constants
- Variables
- func DoServerChallenge(profile *Profile) (string, error)
- func GLPClient(category string) *glpclient.Client
- func GLPPrivateClient(priv, pub, serverPub [32]byte) *glpclient.Client
- func GLPPublish(category string, e Event) error
- func GetAPIClient() *unifiedapiclient.Client
- func PauseOnError(quit func())
- func PublicPortTTL() int
- func ReadPassword() string
- func RegisterPeerServiceServer(s grpc.ServiceRegistrar, srv PeerServiceServer)
- func RunningInCLI() bool
- func SetConfig(device *device.Device, k, v string)
- func SetConfigMulti(device *device.Device, conf string)
- func SetupAPIClientCLI()
- func SetupAPIClientEnv()
- func StartPeerServiceRPC(ip net.IP, logger *device.Logger, profile Profile)
- func UPNPIGDCleanupMapped()
- type BindTechnique
- type BindTechniqueBase
- func (btm *BindTechniqueBase) AddIDToPacket(buf []byte)
- func (btm *BindTechniqueBase) BindRequestPkt(externalIP net.IP, externalPort int) []byte
- func (btm *BindTechniqueBase) InitID()
- func (btm *BindTechniqueBase) IsMessage(b []byte) bool
- func (btb *BindTechniqueBase) ParseBindRequestPkt(buf []byte) (net.IP, int, error)
- type BindTechniqueInterface
- type BindTechniquesStruct
- func (bts *BindTechniquesStruct) Add(bt BindTechnique)
- func (bts *BindTechniquesStruct) CopyNew() *BindTechniquesStruct
- func (bts *BindTechniquesStruct) Len() int
- func (bts *BindTechniquesStruct) Less(i, j int) bool
- func (bts *BindTechniquesStruct) Next() BindTechnique
- func (bts *BindTechniquesStruct) Swap(i, j int)
- type BindThroughPeerAgent
- type BufferPool
- type CanOfferForwardingReply
- func (*CanOfferForwardingReply) Descriptor() ([]byte, []int)deprecated
- func (x *CanOfferForwardingReply) GetResult() bool
- func (*CanOfferForwardingReply) ProtoMessage()
- func (x *CanOfferForwardingReply) ProtoReflect() protoreflect.Message
- func (x *CanOfferForwardingReply) Reset()
- func (x *CanOfferForwardingReply) String() string
- type CanOfferForwardingRequest
- type Connection
- type Event
- type ForwardingIsAliveReply
- func (*ForwardingIsAliveReply) Descriptor() ([]byte, []int)deprecated
- func (x *ForwardingIsAliveReply) GetResult() bool
- func (*ForwardingIsAliveReply) ProtoMessage()
- func (x *ForwardingIsAliveReply) ProtoReflect() protoreflect.Message
- func (x *ForwardingIsAliveReply) Reset()
- func (x *ForwardingIsAliveReply) String() string
- type ForwardingIsAliveRequest
- func (*ForwardingIsAliveRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ForwardingIsAliveRequest) GetId() uint64
- func (x *ForwardingIsAliveRequest) GetToken() uint64
- func (*ForwardingIsAliveRequest) ProtoMessage()
- func (x *ForwardingIsAliveRequest) ProtoReflect() protoreflect.Message
- func (x *ForwardingIsAliveRequest) Reset()
- func (x *ForwardingIsAliveRequest) String() string
- type NATPMP
- type NetworkConnection
- func (nc *NetworkConnection) CheckConnectionLiveness() bool
- func (nc *NetworkConnection) Description() string
- func (nc *NetworkConnection) GetPrivateIP() net.IP
- func (nc *NetworkConnection) GetPublicAddr() *net.UDPAddr
- func (nc *NetworkConnection) ID() uint64
- func (nc *NetworkConnection) IsMessage(b []byte) bool
- func (nc *NetworkConnection) MaxBindFailures() int
- func (nc *NetworkConnection) PrintDebug()
- func (nc *NetworkConnection) RecordInboundAttempt()
- func (nc *NetworkConnection) SetupForwarding(ct string, profile Profile) (string, *net.UDPAddr)
- func (nc *NetworkConnection) Start()
- func (nc *NetworkConnection) Token() uint64
- type NetworkEndpointEvent
- type PeerConnection
- func (pc *PeerConnection) CheckConnectionLiveness() bool
- func (pc *PeerConnection) Connected() bool
- func (pc *PeerConnection) ConnectionLivenessTolerance() time.Duration
- func (pc *PeerConnection) FindConnectionType(nee *NetworkEndpointEvent) string
- func (pc *PeerConnection) HandleNetworkEndpointEvent(nee *NetworkEndpointEvent)
- func (pc *PeerConnection) IAmTheBestTryHolder(nee *NetworkEndpointEvent) bool
- func (pc *PeerConnection) IAmTheBestWANIN(nee *NetworkEndpointEvent) bool
- func (pc *PeerConnection) IAmTheSmallestKey() bool
- func (pc *PeerConnection) ListenP2PKey() string
- func (pc *PeerConnection) OffersBridging() bool
- func (pc *PeerConnection) PublishP2PKey() string
- func (pc *PeerConnection) RemovePeer()
- func (pc *PeerConnection) Start()
- func (pc *PeerConnection) StartConnection(foundPeer chan bool) chan *NetworkEndpointEvent
- type PeerProfile
- type PeerServiceClient
- type PeerServiceServer
- type PeerServiceServerHandler
- func (s *PeerServiceServerHandler) CanOfferForwarding(ctx context.Context, in *CanOfferForwardingRequest) (*CanOfferForwardingReply, error)
- func (s *PeerServiceServerHandler) ForwardingIsAlive(ctx context.Context, in *ForwardingIsAliveRequest) (*ForwardingIsAliveReply, error)
- func (s *PeerServiceServerHandler) PrintDebug()
- func (s *PeerServiceServerHandler) SetupForwarding(ctx context.Context, in *SetupForwardingRequest) (*SetupForwardingReply, error)
- type Profile
- type PublicPort
- type RouteInfo
- type ServerChallenge
- type SetupForwardingReply
- func (*SetupForwardingReply) Descriptor() ([]byte, []int)deprecated
- func (x *SetupForwardingReply) GetId() uint64
- func (x *SetupForwardingReply) GetPublicIP() []byte
- func (x *SetupForwardingReply) GetPublicPort() int32
- func (x *SetupForwardingReply) GetRaddr() string
- func (x *SetupForwardingReply) GetToken() uint64
- func (*SetupForwardingReply) ProtoMessage()
- func (x *SetupForwardingReply) ProtoReflect() protoreflect.Message
- func (x *SetupForwardingReply) Reset()
- func (x *SetupForwardingReply) String() string
- type SetupForwardingRequest
- func (*SetupForwardingRequest) Descriptor() ([]byte, []int)deprecated
- func (x *SetupForwardingRequest) GetName() string
- func (x *SetupForwardingRequest) GetPeerConnectionType() string
- func (*SetupForwardingRequest) ProtoMessage()
- func (x *SetupForwardingRequest) ProtoReflect() protoreflect.Message
- func (x *SetupForwardingRequest) Reset()
- func (x *SetupForwardingRequest) String() string
- type UPNPIGD
- type UnimplementedPeerServiceServer
- func (UnimplementedPeerServiceServer) CanOfferForwarding(context.Context, *CanOfferForwardingRequest) (*CanOfferForwardingReply, error)
- func (UnimplementedPeerServiceServer) ForwardingIsAlive(context.Context, *ForwardingIsAliveRequest) (*ForwardingIsAliveReply, error)
- func (UnimplementedPeerServiceServer) SetupForwarding(context.Context, *SetupForwardingRequest) (*SetupForwardingReply, error)
- type UnsafePeerServiceServer
Constants ¶
const ( // These will get ordered in the BindTechniques. // Lower string == tried first if available // NAT PMP hasn't worked well in a few places so its left to be tried last BindAutomatic = BindTechnique("AUTOMATIC") BindDirectPublic = BindTechnique("DIRECT_PUBLIC") BindNATPMP = BindTechnique("NATPMP") BindSTUN = BindTechnique("STUN") BindThroughPeer = BindTechnique("THROUGH_PEER") BindUPNPIGD = BindTechnique("UPNPIGD") )
const ( ConnectionTypeLANIN = "LAN IN" ConnectionTypeLANOUT = "LAN OUT" ConnectionTypeWANIN = "WAN IN" ConnectionTypeWANOUT = "WAN OUT" ConnectionTypeWANSTUN = "WAN STUN" )
const ( EnvServer = "WG_SERVER" EnvServerPort = "WG_SERVER_PORT" EnvServerVerifyTLS = "WG_SERVER_VERIFY_TLS" EnvUsername = "WG_USERNAME" EnvPassword = "WG_PASSWORD" EnvHonorRoutes = "WG_HONOR_ROUTES" EnvBindTechnique = "WG_BIND_TECHNIQUE" EnvStaticBindTechnique = "WG_STATIC_BIND_TECHNIQUE" EnvPublicPortIP = "WG_PUBLIC_PORT_IP" EnvOffersBridging = "WG_OFFERS_BRIDGING" EnvMaxPeerBridges = "WG_MAX_PEER_BRIDGES" EnvGatewayOutboundInterface = "WG_GATEWAY_OUTBOUND_INTERFACE" EnvCLIInterractive = "WG_CLI_INTERACTIVE" EnvCLI = "WG_CLI" EnvGUIPID = "WG_GUI_PID" EnvSetupDNS = "WG_SETUP_DNS" )
const ( STATUS_CONNECTED = "CONNECTED" STATUS_ERROR = "ERROR" STATUS_FETCHING_PEERS = "FETCHING_PEERS" STATUS_NOT_READY = "" PEER_STATUS_CONNECTED = "Connected" PEER_STATUS_INITIATING_CONNECTION = "Waiting for peer to register" PEER_STATUS_CONNECT_PRIVATE = "Attempting to connect to peer via local area network" PEER_STATUS_CONNECT_PUBLIC = "Attempting to connect to peer via the Internet" )
const (
MsgNcBindPeerBridge = uint64(1)
)
const PeerServiceServerPort = 12676
Variables ¶
var APIClient *unifiedapiclient.Client
var APIClientCtx context.Context
var AutomatedMaxBindFailures = 8
var BindTechniqueNames = map[string]BindTechnique{ "DIRECT_PUBLIC": BindDirectPublic, "NATPMP": BindNATPMP, "STUN": BindSTUN, "THROUGH_PEER": BindThroughPeer, "UPNPIGD": BindUPNPIGD, }
var BindTechniques = BindTechniquesStruct{}
var ConnectedConnectionLivenessTolerance = 10 * time.Second
var DefaultBindTechnique = BindSTUN
var File_peerrpc_proto protoreflect.FileDescriptor
var InboundAttemptsTolerance = 2
var InboundAttemptsTryAtLeast = 20 * time.Second
var InitialConnectionLivenessTolerance = device.RekeyTimeout * 2
var PublicPortLivenessTolerance = 10 * time.Minute
var UserDefinedMaxBindFailures = 120
Functions ¶
func DoServerChallenge ¶
func GLPPrivateClient ¶
func GLPPublish ¶
func GetAPIClient ¶
func GetAPIClient() *unifiedapiclient.Client
func PauseOnError ¶
func PauseOnError(quit func())
func PublicPortTTL ¶
func PublicPortTTL() int
func ReadPassword ¶
func ReadPassword() string
func RegisterPeerServiceServer ¶
func RegisterPeerServiceServer(s grpc.ServiceRegistrar, srv PeerServiceServer)
func RunningInCLI ¶
func RunningInCLI() bool
func SetConfigMulti ¶
func SetupAPIClientEnv ¶
func SetupAPIClientEnv()
func StartPeerServiceRPC ¶
func UPNPIGDCleanupMapped ¶
func UPNPIGDCleanupMapped()
Types ¶
type BindTechnique ¶
type BindTechnique string
func (BindTechnique) Priority ¶
func (bt BindTechnique) Priority() int
func (BindTechnique) Weight ¶
func (bt BindTechnique) Weight() int
type BindTechniqueBase ¶
type BindTechniqueBase struct {
// contains filtered or unexported fields
}
func (*BindTechniqueBase) AddIDToPacket ¶
func (btm *BindTechniqueBase) AddIDToPacket(buf []byte)
func (*BindTechniqueBase) BindRequestPkt ¶
func (btm *BindTechniqueBase) BindRequestPkt(externalIP net.IP, externalPort int) []byte
func (*BindTechniqueBase) InitID ¶
func (btm *BindTechniqueBase) InitID()
func (*BindTechniqueBase) IsMessage ¶
func (btm *BindTechniqueBase) IsMessage(b []byte) bool
func (*BindTechniqueBase) ParseBindRequestPkt ¶
type BindTechniqueInterface ¶
type BindTechniquesStruct ¶
func (*BindTechniquesStruct) Add ¶
func (bts *BindTechniquesStruct) Add(bt BindTechnique)
func (*BindTechniquesStruct) CopyNew ¶
func (bts *BindTechniquesStruct) CopyNew() *BindTechniquesStruct
func (*BindTechniquesStruct) Len ¶
func (bts *BindTechniquesStruct) Len() int
func (*BindTechniquesStruct) Less ¶
func (bts *BindTechniquesStruct) Less(i, j int) bool
func (*BindTechniquesStruct) Next ¶
func (bts *BindTechniquesStruct) Next() BindTechnique
func (*BindTechniquesStruct) Swap ¶
func (bts *BindTechniquesStruct) Swap(i, j int)
type BindThroughPeerAgent ¶
type BindThroughPeerAgent struct { sync.Mutex BindTechniqueBase // contains filtered or unexported fields }
func NewBindThroughPeerAgent ¶
func NewBindThroughPeerAgent(connection *Connection, networkConnection *NetworkConnection) *BindThroughPeerAgent
func (*BindThroughPeerAgent) BindRequest ¶
func (btp *BindThroughPeerAgent) BindRequest(conn *net.UDPConn, sendTo chan *pkt) error
func (*BindThroughPeerAgent) ParseBindRequestPkt ¶
func (*BindThroughPeerAgent) StillAlive ¶
func (btp *BindThroughPeerAgent) StillAlive() bool
type BufferPool ¶
func NewBufferPool ¶
func NewBufferPool() *BufferPool
func (*BufferPool) Get ¶
func (bp *BufferPool) Get() []byte
func (*BufferPool) GetAliveBuffers ¶
func (bp *BufferPool) GetAliveBuffers() int
func (*BufferPool) Put ¶
func (bp *BufferPool) Put(a []byte)
type CanOfferForwardingReply ¶
type CanOfferForwardingReply struct { Result bool `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` // contains filtered or unexported fields }
func (*CanOfferForwardingReply) Descriptor
deprecated
func (*CanOfferForwardingReply) Descriptor() ([]byte, []int)
Deprecated: Use CanOfferForwardingReply.ProtoReflect.Descriptor instead.
func (*CanOfferForwardingReply) GetResult ¶
func (x *CanOfferForwardingReply) GetResult() bool
func (*CanOfferForwardingReply) ProtoMessage ¶
func (*CanOfferForwardingReply) ProtoMessage()
func (*CanOfferForwardingReply) ProtoReflect ¶
func (x *CanOfferForwardingReply) ProtoReflect() protoreflect.Message
func (*CanOfferForwardingReply) Reset ¶
func (x *CanOfferForwardingReply) Reset()
func (*CanOfferForwardingReply) String ¶
func (x *CanOfferForwardingReply) String() string
type CanOfferForwardingRequest ¶
type CanOfferForwardingRequest struct {
// contains filtered or unexported fields
}
func (*CanOfferForwardingRequest) Descriptor
deprecated
func (*CanOfferForwardingRequest) Descriptor() ([]byte, []int)
Deprecated: Use CanOfferForwardingRequest.ProtoReflect.Descriptor instead.
func (*CanOfferForwardingRequest) ProtoMessage ¶
func (*CanOfferForwardingRequest) ProtoMessage()
func (*CanOfferForwardingRequest) ProtoReflect ¶
func (x *CanOfferForwardingRequest) ProtoReflect() protoreflect.Message
func (*CanOfferForwardingRequest) Reset ¶
func (x *CanOfferForwardingRequest) Reset()
func (*CanOfferForwardingRequest) String ¶
func (x *CanOfferForwardingRequest) String() string
type Connection ¶
type Connection struct { sync.Mutex Profile *Profile Peers map[string]*PeerConnection Status string LastError error // contains filtered or unexported fields }
func NewConnection ¶
func NewConnection(logger *device.Logger) *Connection
func (*Connection) StartPeer ¶
func (c *Connection) StartPeer(device *device.Device, profile Profile, peerID string, networkConnection *NetworkConnection)
func (*Connection) Update ¶
func (c *Connection) Update(f func())
type Event ¶
type Event struct { Type string `json:"type"` Data json.RawMessage `json:"data"` Timestamp int64 `json:"timestamp"` }
type ForwardingIsAliveReply ¶
type ForwardingIsAliveReply struct { Result bool `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` // contains filtered or unexported fields }
func (*ForwardingIsAliveReply) Descriptor
deprecated
func (*ForwardingIsAliveReply) Descriptor() ([]byte, []int)
Deprecated: Use ForwardingIsAliveReply.ProtoReflect.Descriptor instead.
func (*ForwardingIsAliveReply) GetResult ¶
func (x *ForwardingIsAliveReply) GetResult() bool
func (*ForwardingIsAliveReply) ProtoMessage ¶
func (*ForwardingIsAliveReply) ProtoMessage()
func (*ForwardingIsAliveReply) ProtoReflect ¶
func (x *ForwardingIsAliveReply) ProtoReflect() protoreflect.Message
func (*ForwardingIsAliveReply) Reset ¶
func (x *ForwardingIsAliveReply) Reset()
func (*ForwardingIsAliveReply) String ¶
func (x *ForwardingIsAliveReply) String() string
type ForwardingIsAliveRequest ¶
type ForwardingIsAliveRequest struct { Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Token uint64 `protobuf:"varint,2,opt,name=token,proto3" json:"token,omitempty"` // contains filtered or unexported fields }
func (*ForwardingIsAliveRequest) Descriptor
deprecated
func (*ForwardingIsAliveRequest) Descriptor() ([]byte, []int)
Deprecated: Use ForwardingIsAliveRequest.ProtoReflect.Descriptor instead.
func (*ForwardingIsAliveRequest) GetId ¶
func (x *ForwardingIsAliveRequest) GetId() uint64
func (*ForwardingIsAliveRequest) GetToken ¶
func (x *ForwardingIsAliveRequest) GetToken() uint64
func (*ForwardingIsAliveRequest) ProtoMessage ¶
func (*ForwardingIsAliveRequest) ProtoMessage()
func (*ForwardingIsAliveRequest) ProtoReflect ¶
func (x *ForwardingIsAliveRequest) ProtoReflect() protoreflect.Message
func (*ForwardingIsAliveRequest) Reset ¶
func (x *ForwardingIsAliveRequest) Reset()
func (*ForwardingIsAliveRequest) String ¶
func (x *ForwardingIsAliveRequest) String() string
type NATPMP ¶
type NATPMP struct { sync.Mutex BindTechniqueBase // contains filtered or unexported fields }
func (*NATPMP) AddPortMapping ¶
func (*NATPMP) BindRequest ¶
type NetworkConnection ¶
type NetworkConnection struct { Connection *Connection BindTechnique BindTechnique UserDefinedBindTechnique BindTechnique BindTechniques *BindTechniquesStruct WGAddr *net.UDPAddr // contains filtered or unexported fields }
func NewNetworkConnection ¶
func NewNetworkConnection(description string, logger *device.Logger, port int) *NetworkConnection
func (*NetworkConnection) CheckConnectionLiveness ¶
func (nc *NetworkConnection) CheckConnectionLiveness() bool
func (*NetworkConnection) Description ¶
func (nc *NetworkConnection) Description() string
func (*NetworkConnection) GetPrivateIP ¶
func (nc *NetworkConnection) GetPrivateIP() net.IP
func (*NetworkConnection) GetPublicAddr ¶
func (nc *NetworkConnection) GetPublicAddr() *net.UDPAddr
func (*NetworkConnection) ID ¶
func (nc *NetworkConnection) ID() uint64
func (*NetworkConnection) IsMessage ¶
func (nc *NetworkConnection) IsMessage(b []byte) bool
func (*NetworkConnection) MaxBindFailures ¶
func (nc *NetworkConnection) MaxBindFailures() int
func (*NetworkConnection) PrintDebug ¶
func (nc *NetworkConnection) PrintDebug()
func (*NetworkConnection) RecordInboundAttempt ¶
func (nc *NetworkConnection) RecordInboundAttempt()
func (*NetworkConnection) SetupForwarding ¶
func (*NetworkConnection) Start ¶
func (nc *NetworkConnection) Start()
func (*NetworkConnection) Token ¶
func (nc *NetworkConnection) Token() uint64
type NetworkEndpointEvent ¶
type NetworkEndpointEvent struct { ID string `json:"id"` PublicEndpoint string `json:"public_endpoint"` PrivateEndpoint string `json:"private_endpoint"` Try int `json:"try"` BindTechnique BindTechnique `json:"bind_technique"` OffersBridging bool `json:"offers_bridging"` SentOn time.Time `json:"sent_on"` LaunchedAt time.Time `json:"launched_at"` }
func (NetworkEndpointEvent) ToJSON ¶
func (nee NetworkEndpointEvent) ToJSON() []byte
type PeerConnection ¶
type PeerConnection struct { MyProfile Profile PeerProfile PeerProfile Status string ConnectionType string // contains filtered or unexported fields }
func NewPeerConnection ¶
func NewPeerConnection(d *device.Device, logger *device.Logger, myProfile Profile, peerProfile PeerProfile, networkConnection *NetworkConnection) *PeerConnection
func (*PeerConnection) CheckConnectionLiveness ¶
func (pc *PeerConnection) CheckConnectionLiveness() bool
func (*PeerConnection) Connected ¶
func (pc *PeerConnection) Connected() bool
func (*PeerConnection) ConnectionLivenessTolerance ¶
func (pc *PeerConnection) ConnectionLivenessTolerance() time.Duration
func (*PeerConnection) FindConnectionType ¶
func (pc *PeerConnection) FindConnectionType(nee *NetworkEndpointEvent) string
func (*PeerConnection) HandleNetworkEndpointEvent ¶
func (pc *PeerConnection) HandleNetworkEndpointEvent(nee *NetworkEndpointEvent)
func (*PeerConnection) IAmTheBestTryHolder ¶
func (pc *PeerConnection) IAmTheBestTryHolder(nee *NetworkEndpointEvent) bool
func (*PeerConnection) IAmTheBestWANIN ¶
func (pc *PeerConnection) IAmTheBestWANIN(nee *NetworkEndpointEvent) bool
func (*PeerConnection) IAmTheSmallestKey ¶
func (pc *PeerConnection) IAmTheSmallestKey() bool
func (*PeerConnection) ListenP2PKey ¶
func (pc *PeerConnection) ListenP2PKey() string
func (*PeerConnection) OffersBridging ¶
func (pc *PeerConnection) OffersBridging() bool
func (*PeerConnection) PublishP2PKey ¶
func (pc *PeerConnection) PublishP2PKey() string
func (*PeerConnection) RemovePeer ¶
func (pc *PeerConnection) RemovePeer()
func (*PeerConnection) Start ¶
func (pc *PeerConnection) Start()
func (*PeerConnection) StartConnection ¶
func (pc *PeerConnection) StartConnection(foundPeer chan bool) chan *NetworkEndpointEvent
type PeerProfile ¶
type PeerProfile struct {
remoteclients.Peer
}
func GetPeerProfile ¶
func GetPeerProfile(id string) (PeerProfile, error)
type PeerServiceClient ¶
type PeerServiceClient interface { CanOfferForwarding(ctx context.Context, in *CanOfferForwardingRequest, opts ...grpc.CallOption) (*CanOfferForwardingReply, error) SetupForwarding(ctx context.Context, in *SetupForwardingRequest, opts ...grpc.CallOption) (*SetupForwardingReply, error) ForwardingIsAlive(ctx context.Context, in *ForwardingIsAliveRequest, opts ...grpc.CallOption) (*ForwardingIsAliveReply, error) }
PeerServiceClient is the client API for PeerService service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
func ConnectPeerServiceClient ¶
func ConnectPeerServiceClient(addr string) (PeerServiceClient, *grpc.ClientConn)
func NewPeerServiceClient ¶
func NewPeerServiceClient(cc grpc.ClientConnInterface) PeerServiceClient
type PeerServiceServer ¶
type PeerServiceServer interface { CanOfferForwarding(context.Context, *CanOfferForwardingRequest) (*CanOfferForwardingReply, error) SetupForwarding(context.Context, *SetupForwardingRequest) (*SetupForwardingReply, error) ForwardingIsAlive(context.Context, *ForwardingIsAliveRequest) (*ForwardingIsAliveReply, error) // contains filtered or unexported methods }
PeerServiceServer is the server API for PeerService service. All implementations must embed UnimplementedPeerServiceServer for forward compatibility
type PeerServiceServerHandler ¶
type PeerServiceServerHandler struct { sync.Mutex UnimplementedPeerServiceServer // contains filtered or unexported fields }
func NewPeerServiceServerHandler ¶
func NewPeerServiceServerHandler(logger *device.Logger, profile Profile) *PeerServiceServerHandler
func (*PeerServiceServerHandler) CanOfferForwarding ¶
func (s *PeerServiceServerHandler) CanOfferForwarding(ctx context.Context, in *CanOfferForwardingRequest) (*CanOfferForwardingReply, error)
func (*PeerServiceServerHandler) ForwardingIsAlive ¶
func (s *PeerServiceServerHandler) ForwardingIsAlive(ctx context.Context, in *ForwardingIsAliveRequest) (*ForwardingIsAliveReply, error)
func (*PeerServiceServerHandler) PrintDebug ¶
func (s *PeerServiceServerHandler) PrintDebug()
func (*PeerServiceServerHandler) SetupForwarding ¶
func (s *PeerServiceServerHandler) SetupForwarding(ctx context.Context, in *SetupForwardingRequest) (*SetupForwardingReply, error)
type Profile ¶
type Profile struct { remoteclients.Peer PrivateKey string `json:"private_key"` // contains filtered or unexported fields }
func (*Profile) FillProfileFromServer ¶
func (p *Profile) FillProfileFromServer(connection *Connection, logger *device.Logger) error
func (*Profile) ParseRoutes ¶
func (*Profile) SetupGateway ¶
func (*Profile) SetupRoutes ¶
type PublicPort ¶
type PublicPort struct { sync.Mutex BindTechniqueBase // contains filtered or unexported fields }
func NewPublicPort ¶
func NewPublicPort() *PublicPort
func (*PublicPort) BindRequest ¶
func (pp *PublicPort) BindRequest(conn *net.UDPConn, sendTo chan *pkt) error
type ServerChallenge ¶
type ServerChallenge struct { Challenge string `json:"challenge"` PublicKey string `json:"public_key"` BytesChallenge []byte BytesPublicKey [32]byte }
func GetServerChallenge ¶
func GetServerChallenge(profile *Profile) (ServerChallenge, error)
type SetupForwardingReply ¶
type SetupForwardingReply struct { Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Token uint64 `protobuf:"varint,2,opt,name=token,proto3" json:"token,omitempty"` Raddr string `protobuf:"bytes,3,opt,name=raddr,proto3" json:"raddr,omitempty"` PublicIP []byte `protobuf:"bytes,4,opt,name=publicIP,proto3" json:"publicIP,omitempty"` PublicPort int32 `protobuf:"varint,5,opt,name=publicPort,proto3" json:"publicPort,omitempty"` // contains filtered or unexported fields }
func (*SetupForwardingReply) Descriptor
deprecated
func (*SetupForwardingReply) Descriptor() ([]byte, []int)
Deprecated: Use SetupForwardingReply.ProtoReflect.Descriptor instead.
func (*SetupForwardingReply) GetId ¶
func (x *SetupForwardingReply) GetId() uint64
func (*SetupForwardingReply) GetPublicIP ¶
func (x *SetupForwardingReply) GetPublicIP() []byte
func (*SetupForwardingReply) GetPublicPort ¶
func (x *SetupForwardingReply) GetPublicPort() int32
func (*SetupForwardingReply) GetRaddr ¶
func (x *SetupForwardingReply) GetRaddr() string
func (*SetupForwardingReply) GetToken ¶
func (x *SetupForwardingReply) GetToken() uint64
func (*SetupForwardingReply) ProtoMessage ¶
func (*SetupForwardingReply) ProtoMessage()
func (*SetupForwardingReply) ProtoReflect ¶
func (x *SetupForwardingReply) ProtoReflect() protoreflect.Message
func (*SetupForwardingReply) Reset ¶
func (x *SetupForwardingReply) Reset()
func (*SetupForwardingReply) String ¶
func (x *SetupForwardingReply) String() string
type SetupForwardingRequest ¶
type SetupForwardingRequest struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` PeerConnectionType string `protobuf:"bytes,2,opt,name=peerConnectionType,proto3" json:"peerConnectionType,omitempty"` // contains filtered or unexported fields }
func (*SetupForwardingRequest) Descriptor
deprecated
func (*SetupForwardingRequest) Descriptor() ([]byte, []int)
Deprecated: Use SetupForwardingRequest.ProtoReflect.Descriptor instead.
func (*SetupForwardingRequest) GetName ¶
func (x *SetupForwardingRequest) GetName() string
func (*SetupForwardingRequest) GetPeerConnectionType ¶
func (x *SetupForwardingRequest) GetPeerConnectionType() string
func (*SetupForwardingRequest) ProtoMessage ¶
func (*SetupForwardingRequest) ProtoMessage()
func (*SetupForwardingRequest) ProtoReflect ¶
func (x *SetupForwardingRequest) ProtoReflect() protoreflect.Message
func (*SetupForwardingRequest) Reset ¶
func (x *SetupForwardingRequest) Reset()
func (*SetupForwardingRequest) String ¶
func (x *SetupForwardingRequest) String() string
type UPNPIGD ¶
type UPNPIGD struct { sync.Mutex BindTechniqueBase // contains filtered or unexported fields }
func NewUPNPIGD ¶
func NewUPNPIGD() *UPNPIGD
func (*UPNPIGD) AddPortMapping ¶
func (*UPNPIGD) BindRequest ¶
func (*UPNPIGD) DelPortMapping ¶
type UnimplementedPeerServiceServer ¶
type UnimplementedPeerServiceServer struct { }
UnimplementedPeerServiceServer must be embedded to have forward compatible implementations.
func (UnimplementedPeerServiceServer) CanOfferForwarding ¶
func (UnimplementedPeerServiceServer) CanOfferForwarding(context.Context, *CanOfferForwardingRequest) (*CanOfferForwardingReply, error)
func (UnimplementedPeerServiceServer) ForwardingIsAlive ¶
func (UnimplementedPeerServiceServer) ForwardingIsAlive(context.Context, *ForwardingIsAliveRequest) (*ForwardingIsAliveReply, error)
func (UnimplementedPeerServiceServer) SetupForwarding ¶
func (UnimplementedPeerServiceServer) SetupForwarding(context.Context, *SetupForwardingRequest) (*SetupForwardingReply, error)
type UnsafePeerServiceServer ¶
type UnsafePeerServiceServer interface {
// contains filtered or unexported methods
}
UnsafePeerServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to PeerServiceServer will result in compilation errors.
Source Files
¶
- api_client.go
- bind_technique_base.go
- bind_techniques.go
- bind_through_peer.go
- buffer_pool.go
- config.go
- connection.go
- constants.go
- env_constants.go
- event.go
- natpmp.go
- network_connection.go
- peer_connection.go
- peerrpc.go
- peerrpc.pb.go
- peerrpc_grpc.pb.go
- peerrpc_handlers.go
- profile.go
- profile_linux.go
- publicport.go
- read_password.go
- upnpigd.go
- util.go
- wg.go