Using iopipe to stream a gzipped file
    Steven Schveighoffer 
    schveiguy at yahoo.com
       
    Thu Jan  4 02:44:09 UTC 2018
    
    
  
On 1/3/18 12:03 PM, Andrew wrote:
> Thanks for looking into this.
> 
So it looks like the file you have is a concatenated gzip file. If I 
gunzip the file and recompress it, it works properly.
Looking at the docs of zlib inflate [1]:
" Unlike the gunzip utility and gzread() ..., inflate() will not 
automatically decode concatenated gzip streams. inflate() will return 
Z_STREAM_END at the end of the gzip stream.  The state would need to be 
reset to continue decoding a subsequent gzip stream."
So what is happening is the inflate function is returning Z_STREAM_END, 
and I'm considering the stream done from that return code.
I'm not sure yet how to fix this. I suppose I can check if any more data 
exists, and then re-init and continue. I have to look up what a 
concatenated gzip file is. gzread isn't good for generic purposes, 
because it requires an actual file input (I want to support any input 
type, including memory data).
-Steve
[1] https://github.com/dlang/phobos/blob/master/etc/c/zlib.d#L874
    
    
More information about the Digitalmars-d-learn
mailing list