|
|
@@ -129,7 +129,7 @@ func (this *DokodemoDoor) ListenTCP() error {
|
|
|
func (this *DokodemoDoor) HandleTCPConnection(conn *hub.Connection) {
|
|
|
defer conn.Close()
|
|
|
|
|
|
- dest := v2net.TCPDestination(this.address, this.port)
|
|
|
+ var dest v2net.Destination
|
|
|
if this.config.FollowRedirect {
|
|
|
originalDest := GetOriginalDestination(conn)
|
|
|
if originalDest != nil {
|
|
|
@@ -137,6 +137,14 @@ func (this *DokodemoDoor) HandleTCPConnection(conn *hub.Connection) {
|
|
|
dest = originalDest
|
|
|
}
|
|
|
}
|
|
|
+ if dest == nil && this.address != nil && this.port > v2net.Port(0) {
|
|
|
+ dest = v2net.TCPDestination(this.address, this.port)
|
|
|
+ }
|
|
|
+
|
|
|
+ if dest == nil {
|
|
|
+ log.Info("Dokodemo: Unknown destination, stop forwarding...")
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
ray := this.packetDispatcher.DispatchToOutbound(dest)
|
|
|
defer ray.InboundOutput().Release()
|