|
|
@@ -49,9 +49,31 @@ func ListenTCP(address v2net.Address, port v2net.Port, callback ConnectionHandle
|
|
|
go hub.start()
|
|
|
return hub, nil
|
|
|
}
|
|
|
+func ListenKCPhub(address v2net.Address, port v2net.Port, callback ConnectionHandler, tlsConfig *tls.Config) (*TCPHub, error) {
|
|
|
+ listener, err := ListenKCP(address, port)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ var hub *TCPHub
|
|
|
+ if tlsConfig != nil {
|
|
|
+ tlsListener := tls.NewListener(listener, tlsConfig)
|
|
|
+ hub = &TCPHub{
|
|
|
+ listener: tlsListener,
|
|
|
+ connCallback: callback,
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ hub = &TCPHub{
|
|
|
+ listener: listener,
|
|
|
+ connCallback: callback,
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ go hub.start()
|
|
|
+ return hub, nil
|
|
|
+}
|
|
|
func ListenTCP6(address v2net.Address, port v2net.Port, callback ConnectionHandler, proxyMeta proxy.InboundHandlerMeta, tlsConfig *tls.Config) (*TCPHub, error) {
|
|
|
if proxyMeta.KcpSupported && transport.IsKcpEnabled() {
|
|
|
- return nil, errors.New("ListenTCP6: Not Implemented")
|
|
|
+ return ListenKCPhub(address, port, callback, tlsConfig)
|
|
|
} else {
|
|
|
return ListenTCP(address, port, callback, tlsConfig)
|
|
|
}
|