[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/3.5/kdelibs/kioslave/http
From:       Dawit Alemayehu <adawit () kde ! org>
Date:       2007-09-01 20:05:59
Message-ID: 1188677159.322146.9971.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 707413 by adawit:

- Backport fix for BR# 147812.
- Propagate HTTP repsonse header before processing or it might never get propagated \
up.


 M  +23 -3     http.cc  


--- branches/KDE/3.5/kdelibs/kioslave/http/http.cc #707412:707413
@@ -3412,6 +3412,9 @@
 
   } while (!m_bEOF && (len || noHeader) && (headerSize < maxHeaderSize) && \
(gets(buffer, sizeof(buffer)-1)));  
+  // Send the current response before processing starts or it 
+  // might never get sent...
+  forwardHttpResponseHeader();
 
   // Now process the HTTP/1.1 upgrade
   QStringList::Iterator opt = upgradeOffers.begin();
@@ -4392,7 +4395,8 @@
   if (m_bChunked)
     m_iBytesLeft = NO_SIZE;
 
-  kdDebug(7113) << "(" << m_pid << ") HTTPProtocol::readBody: retrieve data. \
"<<KIO::number(m_iBytesLeft)<<" left." << endl; +  kdDebug(7113) << "(" << m_pid << \
") HTTPProtocol::readBody: retrieve data. " +                << \
KIO::number(m_iBytesLeft) << " left." << endl;  
   // Main incoming loop...  Gather everything while we can...
   m_cpMimeBuffer = false;
@@ -4530,12 +4534,28 @@
   {
      if (m_request.bCachedWrite && m_request.fcache)
         closeCacheEntry();
-     else if (m_request.bCachedWrite) kdDebug(7113) << "(" << m_pid << ") no cache \
file!\n"; +     else if (m_request.bCachedWrite) 
+        kdDebug(7113) << "(" << m_pid << ") no cache file!\n";
   }
-  else kdDebug(7113) << "(" << m_pid << ") still "<< KIO::number(m_iBytesLeft) <<" \
bytes left! can't close cache entry!\n"; +  else
+  {
+    kdDebug(7113) << "(" << m_pid << ") still "<< KIO::number(m_iBytesLeft)
+                  << " bytes left! can't close cache entry!\n";
+  }
 
+  if (sz <= 1)
+  {
+    /* kdDebug(7113) << "(" << m_pid << ") readBody: sz = " << KIO::number(sz) 
+                     << ", responseCode =" << m_responseCode << endl; */
+    if (m_responseCode >= 500 && m_responseCode <= 599)
+      error(ERR_INTERNAL_SERVER, m_state.hostname);
+    else if (m_responseCode >= 400 && m_responseCode <= 499)
+      error(ERR_DOES_NOT_EXIST, m_state.hostname);
+  }
+
   if (!dataInternal)
     data( QByteArray() );
+
   return true;
 }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic