From 2efd7df6b11e8c646d05870965bb4588d6b6d425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sat, 19 Apr 2014 15:34:12 +0200 Subject: [PATCH] remote: provide read access to the callback structure This should make it easier for bindings to dynamically override their own callbacks. --- include/git2/remote.h | 11 +++++++++++ src/remote.c | 7 +++++++ 2 files changed, 18 insertions(+) diff --git a/include/git2/remote.h b/include/git2/remote.h index d57321f03..578fcf51b 100644 --- a/include/git2/remote.h +++ b/include/git2/remote.h @@ -519,6 +519,17 @@ GIT_EXTERN(int) git_remote_init_callbacks( */ GIT_EXTERN(int) git_remote_set_callbacks(git_remote *remote, const git_remote_callbacks *callbacks); +/** + * Retrieve the current callback structure + * + * This provides read access to the callbacks structure as the remote + * sees it. + * + * @param remote the remote to query + * @return a pointer to the callbacks structure + */ +GIT_EXTERN(const git_remote_callbacks *) git_remote_get_callbacks(git_remote *remote); + /** * Get the statistics structure that is filled in by the fetch operation. */ diff --git a/src/remote.c b/src/remote.c index 243086bf9..c23a4643e 100644 --- a/src/remote.c +++ b/src/remote.c @@ -1253,6 +1253,13 @@ int git_remote_set_callbacks(git_remote *remote, const git_remote_callbacks *cal return 0; } +const git_remote_callbacks *git_remote_get_callbacks(git_remote *remote) +{ + assert(remote); + + return &remote->callbacks; +} + int git_remote_set_transport(git_remote *remote, git_transport *transport) { assert(remote && transport);