Răsfoiți Sursa

Fix: always send status code 206 when client sets Range header

Rod Hynes 9 ani în urmă
părinte
comite
3ad80153fe
1 a modificat fișierele cu 6 adăugiri și 0 ștergeri
  1. 6 0
      psiphon/server/meek.go

+ 6 - 0
psiphon/server/meek.go

@@ -347,6 +347,12 @@ func (server *MeekServer) ServeHTTP(responseWriter http.ResponseWriter, request
 
 		multiWriter := io.MultiWriter(session.cachedResponse, responseWriter)
 
+		// The client expects 206, not 200, whenever it sets a Range header,
+		// which it may do even when no cached response is prepared.
+		if isRetry {
+			responseWriter.WriteHeader(http.StatusPartialContent)
+		}
+
 		// pumpWrites causes a TunnelServer/SSH goroutine blocking on a Write to
 		// write its downstream traffic through to the response body.