mirror of
https://git.proxmox.com/git/libgit2
synced 2025-06-18 05:34:24 +00:00
Add git_remote_disconnect
It can be useful to separate disconnecting from actually destroying the object. Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
This commit is contained in:
parent
0ca7ca3ef7
commit
4cf01e9a1a
@ -123,6 +123,16 @@ GIT_EXTERN(int) git_remote_ls(git_remote *remote, git_headarray *refs);
|
|||||||
*/
|
*/
|
||||||
GIT_EXTERN(int) git_remote_download(char **filename, git_remote *remote);
|
GIT_EXTERN(int) git_remote_download(char **filename, git_remote *remote);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disconnect from the remote
|
||||||
|
*
|
||||||
|
* Close the connection to the remote and free the underlying
|
||||||
|
* transport.
|
||||||
|
*
|
||||||
|
* @param remote the remote to disconnect from
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(void) git_remote_disconnect(git_remote *remote);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Free the memory associated with a remote
|
* Free the memory associated with a remote
|
||||||
*
|
*
|
||||||
|
17
src/remote.c
17
src/remote.c
@ -267,6 +267,16 @@ int git_remote_update_tips(struct git_remote *remote)
|
|||||||
return GIT_SUCCESS;
|
return GIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void git_remote_disconnect(git_remote *remote)
|
||||||
|
{
|
||||||
|
if (remote->transport != NULL) {
|
||||||
|
if (remote->transport->connected)
|
||||||
|
remote->transport->close(remote->transport);
|
||||||
|
|
||||||
|
remote->transport->free(remote->transport);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void git_remote_free(git_remote *remote)
|
void git_remote_free(git_remote *remote)
|
||||||
{
|
{
|
||||||
if (remote == NULL)
|
if (remote == NULL)
|
||||||
@ -278,11 +288,6 @@ void git_remote_free(git_remote *remote)
|
|||||||
git__free(remote->push.dst);
|
git__free(remote->push.dst);
|
||||||
git__free(remote->url);
|
git__free(remote->url);
|
||||||
git__free(remote->name);
|
git__free(remote->name);
|
||||||
if (remote->transport != NULL) {
|
git_remote_disconnect(remote);
|
||||||
if (remote->transport->connected)
|
|
||||||
remote->transport->close(remote->transport);
|
|
||||||
|
|
||||||
remote->transport->free(remote->transport);
|
|
||||||
}
|
|
||||||
git__free(remote);
|
git__free(remote);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user