diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/decode.c | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/src/decode.c b/src/decode.c index 1a912db9..ff4fcb27 100644 --- a/src/decode.c +++ b/src/decode.c @@ -219,24 +219,28 @@ Decode *a_Decode_content_init(const char *format) { Decode *dc = NULL; - if (format && !dStrcasecmp(format, "gzip")) { - _MSG("gzipped data!\n"); - - z_stream *zs; - dc = dNew(Decode, 1); - dc->buffer = dNew(char, bufsize); - dc->state = zs = dNew(z_stream, 1); - zs->zalloc = NULL; - zs->zfree = NULL; - zs->next_in = NULL; - zs->avail_in = 0; - - /* 16 is a magic number for gzip decoding */ - inflateInit2(zs, MAX_WBITS+16); - - dc->decode = Decode_gzip; - dc->free = Decode_gzip_free; - dc->leftover = NULL; /* not used */ + if (format && *format) { + if (!dStrcasecmp(format, "gzip") || !dStrcasecmp(format, "x-gzip")) { + _MSG("gzipped data!\n"); + + z_stream *zs; + dc = dNew(Decode, 1); + dc->buffer = dNew(char, bufsize); + dc->state = zs = dNew(z_stream, 1); + zs->zalloc = NULL; + zs->zfree = NULL; + zs->next_in = NULL; + zs->avail_in = 0; + + /* 16 is a magic number for gzip decoding */ + inflateInit2(zs, MAX_WBITS+16); + + dc->decode = Decode_gzip; + dc->free = Decode_gzip_free; + dc->leftover = NULL; /* not used */ + } else { + MSG("Content-Encoding '%s' not recognized.\n", format); + } } return dc; } |