Hi,
I am trying to inflate a negotiated deflated Gnutella TCP connection.
The way I am going about this is the following:
e.g. direction = client to server:
1. Append packet to buffered stream.
2. pass stream to inflate()
3. if returns 0 (Z_OK) (successfully begun inflating but not finished), wait for next packet
4. else if returns Z_STREAM_END, pass inflated stream to function to parse Gnutella message(s). clean out buffer.
I have gone through numerous deflated TCP connections with this method, but inflate() only ever returns 0 (Z_OK).
Therefore I never reach the end of stream, even though this TCP connection is finished with a handshake. So I am never able to parse the Gnutella content.
Am I going about this the correct way? If not, where am I going wrong? If I am, why do I never reach end of stream?
Any help would be appreciated.
Thanks
,
Cathal