]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Bugfix 1750 - support tunnelling of RTSP and other protocols that abuse HTTP by sendi...
authorrobertc <>
Sun, 3 Sep 2006 10:09:48 +0000 (10:09 +0000)
committerrobertc <>
Sun, 3 Sep 2006 10:09:48 +0000 (10:09 +0000)
src/store.cc

index 14dbfb828e41cd1a330841d938951c57935f03ec..647f7a6446510c76798f01d4f237a5242333ecd6 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store.cc,v 1.598 2006/08/19 12:31:21 robertc Exp $
+ * $Id: store.cc,v 1.599 2006/09/03 04:09:48 robertc Exp $
  *
  * DEBUG: section 20    Storage Manager
  * AUTHOR: Harvest Derived
@@ -831,7 +831,18 @@ StoreEntry::write (StoreIOBuffer writeBuffer)
     assert(store_status == STORE_PENDING);
 
     if (!writeBuffer.length)
+      {
+        /* the headers are recieved already, but we have not recieved
+         * any body data. There are BROKEN abuses of HTTP which require
+         * the headers to be passed along before any body data - see
+         * http://developer.apple.com/documentation/QuickTime/QTSS/Concepts/chapter_2_section_14.html
+         * for an example of such bad behaviour. To accomodate this, if
+         * we have a empty write arrive, we flush to our clients.
+         * -RBC 20060903
+         */
+        InvokeHandlers(this);
         return;
+      }
 
     PROF_start(StoreEntry_write);