Просмотр исходного кода

Fix: cleanup call to ClientConnected

- log errors returned from ClientConnected

- return to the top of the new channel loop
  immediately after handling PACKET_TUNNEL_CHANNEL_TYPE
Rod Hynes 8 лет назад
Родитель
Сommit
6ddcc20519
1 измененных файлов с 7 добавлено и 1 удалено
  1. 7 1
      psiphon/server/tunnelServer.go

+ 7 - 1
psiphon/server/tunnelServer.go

@@ -1347,12 +1347,18 @@ func (sshClient *sshClient) runTunnel(
 				return updaters
 			}
 
-			sshClient.sshServer.support.PacketTunnelServer.ClientConnected(
+			err = sshClient.sshServer.support.PacketTunnelServer.ClientConnected(
 				sshClient.sessionID,
 				packetTunnelChannel,
 				checkAllowedTCPPortFunc,
 				checkAllowedUDPPortFunc,
 				flowActivityUpdaterMaker)
+			if err == nil {
+				log.WithContextFields(LogFields{"error": err}).Warning("start packet tunnel client failed")
+				sshClient.setPacketTunnelChannel(nil)
+			}
+
+			continue
 		}
 
 		if newChannel.ChannelType() != "direct-tcpip" {