mirror of https://github.com/cbeuw/Cloak
34 lines
456 B
Go
34 lines
456 B
Go
package client
|
|
|
|
import (
|
|
"net"
|
|
)
|
|
|
|
type Transport interface {
|
|
Handshake(rawConn net.Conn, authInfo AuthInfo) (sessionKey [32]byte, err error)
|
|
net.Conn
|
|
}
|
|
|
|
type TransportConfig struct {
|
|
mode string
|
|
|
|
wsUrl string
|
|
|
|
browser browser
|
|
}
|
|
|
|
func (t TransportConfig) CreateTransport() Transport {
|
|
switch t.mode {
|
|
case "cdn":
|
|
return &WSOverTLS{
|
|
wsUrl: t.wsUrl,
|
|
}
|
|
case "direct":
|
|
return &DirectTLS{
|
|
browser: t.browser,
|
|
}
|
|
default:
|
|
return nil
|
|
}
|
|
}
|