소스 검색

Treat response is completed if EOF is received before streamFilter completes

Tatsuhiro Tsujikawa 12 년 전
부모
커밋
4410f0e56c
1개의 변경된 파일9개의 추가작업 그리고 5개의 파일을 삭제
  1. 9 5
      src/HttpSkipResponseCommand.cc

+ 9 - 5
src/HttpSkipResponseCommand.cc

@@ -148,13 +148,17 @@ bool HttpSkipResponseCommand::executeInternal()
     return processResponse();
   }
 
+  if(eof) {
+    // we may get EOF before non-sink streamFilter reports its
+    // completion. There are some broken servers to prevent
+    // streamFilter from completion. Since we just discard the
+    // response body anyway, so we assume that the response is
+    // completed.
+    return processResponse();
+  }
   bool finished = false;
   if(sinkFilterOnly_) {
-    if(eof) {
-      return processResponse();
-    } else {
-      finished = (totalLength_ == receivedBytes_);
-    }
+    finished = (totalLength_ == receivedBytes_);
   } else {
     finished = streamFilter_->finished();
   }