diff options
| author | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-07-24 17:10:57 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-07-30 20:28:16 +0200 |
| commit | 114dc6e14c47ff574b4c97d4519782de3f9d28b2 (patch) | |
| tree | 85283b30f80129d66017361acf06120bc6379413 /src/transports/git.c | |
| parent | 64d01de8a7802ebec031f921496747bf09426df1 (diff) | |
| download | libgit2-114dc6e14c47ff574b4c97d4519782de3f9d28b2.tar.gz | |
network: implement multi_ack for the git transport
Diffstat (limited to 'src/transports/git.c')
| -rw-r--r-- | src/transports/git.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/transports/git.c b/src/transports/git.c index 4fcde2d37..f5cdfe7a4 100644 --- a/src/transports/git.c +++ b/src/transports/git.c @@ -179,6 +179,12 @@ static int detect_caps(transport_git *t) continue; } + if(!git__prefixcmp(ptr, GIT_CAP_MULTI_ACK)) { + caps->common = caps->multi_ack = 1; + ptr += strlen(GIT_CAP_MULTI_ACK); + continue; + } + /* We don't know this capability, so skip it */ ptr = strchr(ptr, ' '); } @@ -303,6 +309,10 @@ int git_transport_git(git_transport **out) GITERR_CHECK_ALLOC(t); memset(t, 0x0, sizeof(transport_git)); + if (git_vector_init(&t->parent.common, 8, NULL)) { + git__free(t); + return -1; + } t->parent.connect = git_connect; t->parent.negotiation_step = git_negotiation_step; |
