mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-21 14:39:10 +00:00
Merge pull request #658 from schu/remote-disconnect
remote: don't free transport on disconnect
This commit is contained in:
commit
5587a9c930
@ -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
|
||||
|
18
src/remote.c
18
src/remote.c
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user