From 77206d4c6d0cf9b9c92c21a8ff62b6771568a90d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johan=20Sundstr=C3=B6m?= <oyasumi@gmail.com> Date: Sat, 25 Nov 2000 06:41:44 +0100 Subject: [PATCH] Improved fault tolerance. Rev: lib/modules/Protocols.pmod/HTTP.pmod/Query.pike:1.25 --- lib/modules/Protocols.pmod/HTTP.pmod/Query.pike | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike index 86d6b7b240..e163d890c5 100644 --- a/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike +++ b/lib/modules/Protocols.pmod/HTTP.pmod/Query.pike @@ -468,6 +468,7 @@ object sync_request(string server, int port, string query, if(con && con->_fd && con->query_address() == server + " " + port && + headers && headers->connection && lower_case( headers->connection ) != "close") { #ifdef HTTP_QUERY_DEBUG @@ -562,11 +563,11 @@ string data() #endif int len=(int)headers["content-length"]; int l; - if (zero_type(len)) + if(zero_type( len )) l=0x7fffffff; else l=len-strlen(buf)+datapos; - if (l>0 && con) + if(l>0 && con) { if(headers->server == "WebSTAR") { // Some servers reporting this name exhibit some really hideous behaviour: @@ -577,6 +578,8 @@ string data() else buf += con->read(l); } + if(zero_type( len )) + len = sizeof( data ) - datapos - 1; #ifdef HTTP_QUERY_NOISE werror("buf[datapos..] : %O\n", buf[datapos ..min(sizeof(buf), datapos+19)]); -- GitLab