Documentation ¶
Index ¶
- Constants
- Variables
- func AddrContains(a, b net.Addr) bool
- func Ed25519PublicKeyToMeepoID(pubk ed25519.PublicKey) string
- func ErrSendPacket(err error) errSendPacket
- func MeepoIDToEd25519PublicKey(peerID string) (pubk ed25519.PublicKey, err error)
- func NewAclAddr(n, s string) net.Addr
- func SendMessageError(err error) sendMessageError
- func SessionChannelClosedError(session int32) error
- func SessionChannelExistError(session int32) error
- func SessionChannelNotExistError(session int32) error
- func SkipPacketSigning() ofn.OFN
- func UnsupportedMessageDecodeDriverError(messageIdentifier string) error
- func WithAcl(acl Acl) ofn.OFN
- func WithAsSignaling(b bool) ofn.OFN
- func WithAuthorizationName(name string) ofn.OFN
- func WithAuthorizationSecret(secret string) ofn.OFN
- func WithED25519KeyPair(pubk ed25519.PublicKey, prik ed25519.PrivateKey) ofn.OFN
- func WithGatherTimeout(d time.Duration) ofn.OFN
- func WithGracePeriod(s string) ofn.OFN
- func WithHost(host string) ofn.OFN
- func WithICEServers(iceServers []string) ofn.OFN
- func WithLocalAddress(local net.Addr) ofn.OFN
- func WithLogger(logger logrus.FieldLogger) ofn.OFN
- func WithMeepo(mp *Meepo) ofn.OFN
- func WithName(name string) ofn.OFN
- func WithPacket(p packet.Packet) ofn.OFN
- func WithPort(port int32) ofn.OFN
- func WithSecret(secret string) ofn.OFN
- func WithSignalingEngine(se signaling.Engine) ofn.OFN
- func WithSinkFirst() ofn.OFN
- func WithSourceFirst() ofn.OFN
- func WithSubject(sub string) ofn.OFN
- func WithWebrtcAPI(webrtcAPI *webrtc.API) ofn.OFN
- type Acl
- type AclChallenge
- type AclEntity
- type AclPolicy
- type BroadcastRequestHandler
- type CloseTeleportationRequest
- type CloseTeleportationResponse
- type CloseTransportOption
- type Copier
- type DoTeleportRequest
- type DoTeleportResponse
- type GetTeleportationFunc
- type GetTeleportationOption
- type Meepo
- func (mp *Meepo) Authenticate(subject string, opts ...auth.AuthenticateOption) (err error)
- func (mp *Meepo) Authorize(subject, object, action string, opts ...auth.AuthorizeOption) error
- func (mp *Meepo) CloseTeleportation(name string) error
- func (mp *Meepo) CloseTransport(peerID string) error
- func (mp *Meepo) GetAuthorizationName() string
- func (mp *Meepo) GetID() string
- func (mp *Meepo) GetTeleportation(name string, opts ...GetTeleportationOption) (teleportation.Teleportation, error)
- func (mp *Meepo) ListTeleportations() ([]teleportation.Teleportation, error)
- func (mp *Meepo) ListTransports() ([]transport.Transport, error)
- func (mp *Meepo) NewTeleportation(id string, remote net.Addr, opts ...NewTeleportationOption) (teleportation.Teleportation, error)
- func (mp *Meepo) NewTransport(peerID string) (transport.Transport, error)
- func (mp *Meepo) Ping(id string, payload string) error
- func (mp *Meepo) SetWireHandler(h signaling.WireHandler)
- func (mp *Meepo) Teleport(peerID string, remote net.Addr, opts ...TeleportOption) (net.Addr, error)
- func (mp *Meepo) Version() *version.V
- func (mp *Meepo) Wire(peerID string, src *signaling.Descriptor) (*signaling.Descriptor, error)
- type MeepoBroadcastRequestHandler
- type MeepoRequestHandler
- type Method
- type NewAclOption
- type NewMeepoOption
- type NewSocks5ServerOption
- type NewTeleportationOption
- type NewTeleportationRequest
- type NewTeleportationResponse
- type PingRequest
- type PongResponse
- type RequestHandler
- type SignalingEngineWrapper
- type Socks5Server
- type TeleportOption
- type WireRequest
- type WireResponse
Constants ¶
View Source
const (
MAX_HOP_LIMITED = 16
)
View Source
const (
MEEPO_ID_MAGIC_CODE = byte(0x22)
)
View Source
const SOCKS5_DOMAIN_SUFFIX = ".mpo"
Variables ¶
View Source
var ( ACL_ANY string = "*" ACL_ANY_ADDR = &aclAddr{n: "*", s: "*"} ACL_ANY_ENTITY = NewAclEntity(ACL_ANY, ACL_ANY_ADDR) )
View Source
var ( ErrInvalidPeerID = fmt.Errorf("invalid peer id") ErrTransportExist = fmt.Errorf("transport exists") ErrTeleportationNotExist = fmt.Errorf("teleportation not exists") ErrWaitResponseTimeout = fmt.Errorf("wait response timeout") ErrNotWirable = fmt.Errorf("not wirable") ErrUnsupportedSocks5Command = fmt.Errorf("unsupported socks5 command") ErrNetworkUnreachable = fmt.Errorf("network unreachable") ErrUnsupportedNetworkType = fmt.Errorf("unsupported network type") ErrNotBroadcastPacket = fmt.Errorf("not braoadcast packet") ErrOutOfEdge = fmt.Errorf("out of edge") ErrTransportNotExist = fmt.Errorf("transport not exists") ErrUnexpectedMessage = fmt.Errorf("unexpected message") ErrUnsupportedMethod = fmt.Errorf("unsupported method") ErrUnexpectedType = fmt.Errorf("unexpected type") ErrNotFound = fmt.Errorf("not found") ErrUnauthenticated = fmt.Errorf("unauthenticated") ErrIncorrectSignature = fmt.Errorf("incorrect signature") ErrIncorrectPassword = fmt.Errorf("incorrect password") ErrAclNotAllowed = fmt.Errorf("acl: not allowed") ErrInvalidAclPolicyString = fmt.Errorf("invalid acl policy string") )
View Source
var SOCKS5ADDR = new(socks5Addr)
Functions ¶
func AddrContains ¶
func ErrSendPacket ¶
func ErrSendPacket(err error) errSendPacket
func NewAclAddr ¶
func SendMessageError ¶
func SendMessageError(err error) sendMessageError
func SkipPacketSigning ¶
func WithAsSignaling ¶
func WithAuthorizationName ¶
func WithAuthorizationSecret ¶
func WithED25519KeyPair ¶
func WithGracePeriod ¶
func WithICEServers ¶
func WithLogger ¶
func WithLogger(logger logrus.FieldLogger) ofn.OFN
func WithSecret ¶
func WithSinkFirst ¶
func WithSourceFirst ¶
func WithSubject ¶
func WithWebrtcAPI ¶
Types ¶
type Acl ¶
type Acl interface {
Allowed(AclChallenge) error
}
func NewAcl ¶
func NewAcl(opts ...NewAclOption) Acl
type AclChallenge ¶
func NewAclChallenge ¶
func NewAclChallenge(source, destination AclEntity) AclChallenge
type AclPolicy ¶
type AclPolicy interface { Source() AclEntity Destination() AclEntity Contains(AclChallenge) bool String() string }
func NewAclPolicy ¶
func ParseAclPolicies ¶
func ParseAclPolicy ¶
ParseAclPolicy:
Policy: [[[<src-id>:]<src-addr-network>:]<src-addr-host>:<src-addr-port>,][[<dst-id>:]<dst-addr-network>:]<dst-addr-host>:<dst-addr-port> Rules: src-addr-network and dst-addr-network only support tcp or socks5 now. Examples: * => *:*:*:*,*:*:*:* 192.168.1.1:22 => *:*:*:*,*:*:192.168.1.1:22 10.0.0.0/24:* => *:*:*:*,*:*:10.0.0.0/24:* tcp:10.0.0.1:22 => *:*:*:*,*:tcp:10.0.0.1:22 a:*:10.0.0.1:22 => *:*:*:*,a:*:10.0.0.1:22 socks5:*:*,127.0.0.1:80 => *:socks5:*:*,*:*:127.0.0.1:80
type BroadcastRequestHandler ¶
type BroadcastRequestHandler interface { Handle(transport.DataChannel, packet.BroadcastPacket) HandleBroadcast(transport.DataChannel, packet.BroadcastPacket) }
type CloseTeleportationRequest ¶
type CloseTeleportationRequest struct {
Name string
}
type CloseTeleportationResponse ¶
type CloseTeleportationResponse struct{}
type CloseTransportOption ¶
type DoTeleportRequest ¶
type DoTeleportResponse ¶
type DoTeleportResponse struct{}
type GetTeleportationFunc ¶
type GetTeleportationFunc func(string) (teleportation.Teleportation, bool)
type GetTeleportationOption ¶
type Meepo ¶
type Meepo struct {
// contains filtered or unexported fields
}
func NewMeepo ¶
func NewMeepo(opts ...NewMeepoOption) (*Meepo, error)
func (*Meepo) Authenticate ¶
func (mp *Meepo) Authenticate(subject string, opts ...auth.AuthenticateOption) (err error)
func (*Meepo) Authorize ¶
func (mp *Meepo) Authorize(subject, object, action string, opts ...auth.AuthorizeOption) error
func (*Meepo) CloseTeleportation ¶
func (*Meepo) CloseTransport ¶
func (*Meepo) GetAuthorizationName ¶
func (*Meepo) GetTeleportation ¶
func (mp *Meepo) GetTeleportation(name string, opts ...GetTeleportationOption) (teleportation.Teleportation, error)
func (*Meepo) ListTeleportations ¶
func (mp *Meepo) ListTeleportations() ([]teleportation.Teleportation, error)
func (*Meepo) NewTeleportation ¶
func (mp *Meepo) NewTeleportation(id string, remote net.Addr, opts ...NewTeleportationOption) (teleportation.Teleportation, error)
func (*Meepo) NewTransport ¶
func (*Meepo) SetWireHandler ¶
func (mp *Meepo) SetWireHandler(h signaling.WireHandler)
func (*Meepo) Wire ¶
func (mp *Meepo) Wire(peerID string, src *signaling.Descriptor) (*signaling.Descriptor, error)
type MeepoBroadcastRequestHandler ¶
type MeepoBroadcastRequestHandler struct {
// contains filtered or unexported fields
}
func (*MeepoBroadcastRequestHandler) Handle ¶
func (h *MeepoBroadcastRequestHandler) Handle(dc transport.DataChannel, in packet.BroadcastPacket)
func (*MeepoBroadcastRequestHandler) HandleBroadcast ¶
func (h *MeepoBroadcastRequestHandler) HandleBroadcast(dc transport.DataChannel, in packet.BroadcastPacket)
type MeepoRequestHandler ¶
type MeepoRequestHandler func(transport.DataChannel, packet.Packet)
func (MeepoRequestHandler) Handle ¶
func (h MeepoRequestHandler) Handle(dc transport.DataChannel, in packet.Packet)
type Method ¶
type Method string
const (
METHOD_CLOSE_TELEPORTATION Method = "closeTeleportation"
)
const (
METHOD_CLOSE_TRANSPORT Method = "closeTransport"
)
const (
METHOD_PING Method = "ping"
)
const (
METHOD_WIRE Method = "wire"
)
type NewAclOption ¶
func WithAllowPolicies ¶
func WithAllowPolicies(ps []AclPolicy) NewAclOption
func WithBlockPolicies ¶
func WithBlockPolicies(ps []AclPolicy) NewAclOption
type NewMeepoOption ¶
type NewSocks5ServerOption ¶
type NewTeleportationOption ¶
type NewTeleportationRequest ¶
type NewTeleportationResponse ¶
type NewTeleportationResponse struct{}
type PingRequest ¶
type PingRequest struct {
Payload string
}
type PongResponse ¶
type PongResponse struct {
Payload string
}
type RequestHandler ¶
type RequestHandler interface {
Handle(transport.DataChannel, packet.Packet)
}
type SignalingEngineWrapper ¶
type SignalingEngineWrapper struct {
// contains filtered or unexported fields
}
func (*SignalingEngineWrapper) Close ¶
func (e *SignalingEngineWrapper) Close() error
func (*SignalingEngineWrapper) OnWire ¶
func (e *SignalingEngineWrapper) OnWire(h signaling.WireHandler)
func (*SignalingEngineWrapper) Wire ¶
func (e *SignalingEngineWrapper) Wire(dst, src *signaling.Descriptor) (*signaling.Descriptor, error)
type Socks5Server ¶
type Socks5Server interface { Start(context.Context) error Stop(context.Context) error Wait() error }
func NewSocks5Server ¶
func NewSocks5Server(opts ...NewSocks5ServerOption) (Socks5Server, error)
type TeleportOption ¶
type WireRequest ¶
type WireRequest struct {
Descriptor *signaling.Descriptor
}
type WireResponse ¶
type WireResponse struct {
Descriptor *signaling.Descriptor
}
Source Files ¶
- acl.go
- authentication.go
- authorization.go
- broadcast_request.go
- close_teleportation.go
- close_transport.go
- copy.go
- crypt.go
- error.go
- list_teleportations.go
- list_transports.go
- meepo.go
- method.go
- new_teleportation.go
- new_transport.go
- option.go
- ping.go
- request.go
- socks5.go
- teleport.go
- teleportation.go
- transport.go
- util.go
- version.go
- wire.go
Click to show internal directories.
Click to hide internal directories.