summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoger Gee <rpg11a@acu.edu>2017-06-10 11:46:09 -0500
committerRoger Gee <rpg11a@acu.edu>2017-06-10 11:46:09 -0500
commite141f079965c80d87fb6792272284b885b826c32 (patch)
tree976fcee9b4f4c67e51f07d49f3519281007ec303 /src
parente476d5288cd8195063f775418efd7b7154880beb (diff)
downloadlibgit2-e141f079965c80d87fb6792272284b885b826c32.tar.gz
smart_protocol: fix parsing of server ACK responses
Fix ACK parsing in wait_while_ack() internal function. This patch handles the case where multi_ack_detailed mode sends 'ready' ACKs. The existing functionality would bail out too early, thus causing the processing of the ensuing packfile to fail if/when 'ready' ACKs were sent.
Diffstat (limited to 'src')
-rw-r--r--src/transports/smart_protocol.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/transports/smart_protocol.c b/src/transports/smart_protocol.c
index 25e78c65a..8146fa163 100644
--- a/src/transports/smart_protocol.c
+++ b/src/transports/smart_protocol.c
@@ -325,7 +325,8 @@ static int wait_while_ack(gitno_buffer *buf)
if (pkt->type == GIT_PKT_ACK &&
(pkt->status != GIT_ACK_CONTINUE &&
- pkt->status != GIT_ACK_COMMON)) {
+ pkt->status != GIT_ACK_COMMON &&
+ pkt->status != GIT_ACK_READY)) {
git__free(pkt);
return 0;
}