How to determine when to stop receiving pack content
- From
Farhan Khan <farhan@farhan.codes>
- Date
- Aug 10, 2019, 23:47 UTC
- Message-ID
- <c1754835efe3aa8a5ac93ee2db4a99c5@farhan.codes>
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