Commit 5587a9c9 by Vicent Martí

Merge pull request #658 from schu/remote-disconnect

remote: don't free transport on disconnect
parents 52877c89 42ea35c0
......@@ -93,6 +93,9 @@ int fetch(git_repository *repo, int argc, char **argv)
} while (!data.finished);
printf("\rReceived %d/%d objects in %d bytes\n", stats.processed, stats.total, bytes);
// Disconnect the underlying connection to prevent from idling.
git_remote_disconnect(remote);
// Update the references in the remote's namespace to point to the
// right commits. This may be needed even if there was no packfile
// to download, which can happen e.g. when the branches have been
......
......@@ -381,13 +381,8 @@ void git_remote_disconnect(git_remote *remote)
{
assert(remote);
if (remote->transport != NULL) {
if (remote->transport->connected)
if (remote->transport != NULL && remote->transport->connected)
remote->transport->close(remote->transport);
remote->transport->free(remote->transport);
remote->transport = NULL;
}
}
void git_remote_free(git_remote *remote)
......@@ -395,14 +390,21 @@ void git_remote_free(git_remote *remote)
if (remote == NULL)
return;
if (remote->transport != NULL) {
git_remote_disconnect(remote);
remote->transport->free(remote->transport);
remote->transport = NULL;
}
git_vector_free(&remote->refs);
git__free(remote->fetch.src);
git__free(remote->fetch.dst);
git__free(remote->push.src);
git__free(remote->push.dst);
git__free(remote->url);
git__free(remote->name);
git_vector_free(&remote->refs);
git_remote_disconnect(remote);
git__free(remote);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment