Explorar o código

Fix: respond to "keepalive@openssh.com" requests

Rod Hynes %!s(int64=9) %!d(string=hai) anos
pai
achega
07f19a4e1b
Modificáronse 1 ficheiros con 14 adicións e 10 borrados
  1. 14 10
      psiphon/server/tunnelServer.go

+ 14 - 10
psiphon/server/tunnelServer.go

@@ -685,17 +685,21 @@ func (sshClient *sshClient) runClient(
 
 
 		for request := range requests {
 		for request := range requests {
 
 
-			// Discard keepalive requests.
-			if request.Type == "keepalive@openssh.com" && request.WantReply == false {
-				continue
-			}
+			// Requests are processed serially; API responses must be sent in request order.
+
+			var responsePayload []byte
+			var err error
 
 
-			// Requests are processed serially; responses must be sent in request order.
-			responsePayload, err := sshAPIRequestHandler(
-				sshClient.sshServer.support,
-				sshClient.geoIPData,
-				request.Type,
-				request.Payload)
+			if request.Type == "keepalive@openssh.com" {
+				// Keepalive requests have an empty response.
+			} else {
+				// All other requests are assumed to be API requests.
+				responsePayload, err = sshAPIRequestHandler(
+					sshClient.sshServer.support,
+					sshClient.geoIPData,
+					request.Type,
+					request.Payload)
+			}
 
 
 			if err == nil {
 			if err == nil {
 				err = request.Reply(true, responsePayload)
 				err = request.Reply(true, responsePayload)