Hi, I am trying to write an implementation of git clone over ssh and am a little confused how to determine a server response has ended. Specifically, after a client sends its requested 'want', the server sends the pack content over. However, how does the client know to stop reading data? If I run a simple read() of the file descriptor: A. If I use reading blocking, the client will wait until new data is available, potentially forever. B. If I use non-blocking, the client might terminate reading for new data, when in reality new data is in transit. I do not see a mechanism to specify the size or to indicate the end of the pack content. Am I missing something? Thanks --- Farhan Khan PGP Fingerprint: 1312 89CE 663E 1EB2 179C 1C83 C41D 2281 F8DA C0DE