From 43785884688c635cf25199f71d0ef37d522001a0 Mon Sep 17 00:00:00 2001 From: robertc <> Date: Sun, 3 Sep 2006 10:09:48 +0000 Subject: [PATCH] Bugfix 1750 - support tunnelling of RTSP and other protocols that abuse HTTP by sending just the headers and then waiting for out of band indicators to finish the reply. --- src/store.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/store.cc b/src/store.cc index 14dbfb828e..647f7a6446 100644 --- a/src/store.cc +++ b/src/store.cc @@ -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); -- 2.47.2