Procházet zdrojové kódy

Check if we could process data recieved to prevent endless loop.

mingodad před 13 roky
rodič
revize
7ad8d9d3a4
1 změnil soubory, kde provedl 6 přidání a 2 odebrání
  1. 6 2
      SquiLu-ourbiz/happyhttp.nut

+ 6 - 2
SquiLu-ourbiz/happyhttp.nut

@@ -168,6 +168,7 @@ class HappyHttpConnection {
 			{
 				local r = m_Outstanding[0];
 				local u = r->pump( buf, used, a-used );
+				if(u == 0) throw("Bad data received !");
 
 				// delete response once completed
 				if( r->completed() )	m_Outstanding.remove(0);
@@ -364,9 +365,11 @@ class HappyHttpResponse {
 		assert( datasize != 0 );
 		local count = datasize;
 		local data_idx = 0;
-		//print(data);
-		while( count > 0 && m_State != Response_state.COMPLETE )
+		local last_count = 0;
+		
+		while( count > 0 && m_State != Response_state.COMPLETE  && last_count != count)
 		{
+			last_count = count;
 			if( m_State == Response_state.STATUSLINE ||
 				m_State == Response_state.HEADERS ||
 				m_State == Response_state.TRAILERS ||
@@ -418,6 +421,7 @@ class HappyHttpResponse {
 				data_idx += bytesused;
 				count -= bytesused;
 			}
+			//os.sleep(0.001);
 		}
 		// return number of bytes used
 		return datasize - count;