From 6335c574809a3fa7e8fee936c141c340f273fb31 Mon Sep 17 00:00:00 2001
From: "Mirar (Pontus Hagland)" <pike@sort.mirar.org>
Date: Tue, 17 Aug 1999 13:43:03 +0200
Subject: [PATCH] bugfix; IIS (couldn'tve guessed that one, right) sends \n\n
 instead of \r\n\r\n to separate the headers from the data...

Rev: lib/modules/Protocols.pmod/HTTP.pmod/Query.pike:1.7
---
 lib/modules/Protocols.pmod/HTTP.pmod/Query.pike | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike
index 830bdadfe6..0834ee7a91 100644
--- a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike
+++ b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike
@@ -139,13 +139,16 @@ static void ponder_answer()
    // read until we have all headers
 
    int i=0;
+   int j=0;
 
    for (;;)
    {
       string s;
 
       if (i<0) i=0;
-      if ((i=search(buf,"\r\n\r\n",i))!=-1) break;
+      j=search(buf,"\r\n\r\n",i); if (j==-1) j=10000000;
+      i=search(buf,"\n\n",i);     if (i==-1) i=10000000;
+      if ((j=min(i,j))!=10000000)  break;
 
       s=con->read(8192,1);
       if (s=="") { i=strlen(buf); break; }
@@ -155,7 +158,9 @@ static void ponder_answer()
    }
 
    headerbuf=buf[..i-1];
-   datapos=i+4;
+
+   if (buf[i..i+1]=="\n\n") datapos=i+2;
+   else datapos=i+4;
 
    // split headers
 
-- 
GitLab