Changeset 4cebb0acbd14f94545d4dbbdb4b1727384aa355c
- Timestamp:
- 07/25/12 22:14:02 (10 months ago)
- git-parent:
[394f152f69d57e46eb54186650262be1ff0d9f59], [278be6a7d225b9ab718e0c0db325c1299f5b3835]
- Files:
-
- src/modules/lua_noit.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
src/modules/lua_noit.c
r18f8b0b r278be6a 1440 1440 uLong outlen = 0; 1441 1441 int limit = 1024*1024; 1442 int allow_restart = 1; 1442 1443 int err, n = lua_gettop(L); 1443 1444 … … 1465 1466 /* got some data */ 1466 1467 int size_read = DEFLATE_CHUNK_SIZE - stream->avail_out; 1468 allow_restart = 0; 1467 1469 uLong newoutlen = outlen + size_read; 1468 1470 if(limit && newoutlen > limit) { … … 1489 1491 } 1490 1492 } 1491 else break; 1493 else if(allow_restart && err == Z_DATA_ERROR) { 1494 /* Rarely seen, but on the internet, some IIS servers seem 1495 * to not generate 'correct' deflate streams, so we use 1496 * inflateInit2 here to manually configure the stream. 1497 */ 1498 inflateEnd(stream); 1499 err = inflateInit2(stream, -MAX_WBITS); 1500 if (err != Z_OK) { 1501 break; 1502 } 1503 stream->next_in = (Bytef *)input; 1504 stream->avail_in = inlen; 1505 allow_restart = 0; 1506 continue; 1507 } 1508 else { 1509 break; 1510 } 1511 1492 1512 if(stream->avail_in == 0) break; 1493 1513 }
