summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@elego.de>2012-07-21 17:52:51 +0200
committerCarlos Martín Nieto <cmn@elego.de>2012-07-21 18:44:01 +0200
commitb3aaa7a7c887006d38b7262b73575d40f51beca5 (patch)
treef6ab0f132ebf96d598074e11a61922e73e2f4f87 /src
parent5d9cfa07ac62ad15ebb669b01e723a990450383e (diff)
downloadlibgit2-b3aaa7a7c887006d38b7262b73575d40f51beca5.tar.gz
Add a struct for network callbacks
Currently only update_tips is used, but it prepares the way for progress output during download.
Diffstat (limited to 'src')
-rw-r--r--src/remote.c13
-rw-r--r--src/remote.h1
2 files changed, 11 insertions, 3 deletions
diff --git a/src/remote.c b/src/remote.c
index 00e108a0a..e661fff86 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -331,7 +331,7 @@ int git_remote_download(git_remote *remote, git_off_t *bytes, git_indexer_stats
return git_fetch_download_pack(remote, bytes, stats);
}
-int git_remote_update_tips(git_remote *remote, int (*cb)(const char *refname, const git_oid *a, const git_oid *b))
+int git_remote_update_tips(git_remote *remote)
{
int error = 0;
unsigned int i = 0;
@@ -381,8 +381,8 @@ int git_remote_update_tips(git_remote *remote, int (*cb)(const char *refname, co
git_reference_free(ref);
- if (cb != NULL) {
- if (cb(refname.ptr, &old, &head->oid) < 0)
+ if (remote->callbacks.update_tips != NULL) {
+ if (remote->callbacks.update_tips(refname.ptr, &old, &head->oid, remote->callbacks.data) < 0)
goto on_error;
}
}
@@ -525,3 +525,10 @@ void git_remote_check_cert(git_remote *remote, int check)
remote->check_cert = check;
}
+
+void git_remote_set_callbacks(git_remote *remote, git_remote_callbacks *callbacks)
+{
+ assert(remote && callbacks);
+
+ memcpy(&remote->callbacks, callbacks, sizeof(git_remote_callbacks));
+}
diff --git a/src/remote.h b/src/remote.h
index 0949ad434..3360b6249 100644
--- a/src/remote.h
+++ b/src/remote.h
@@ -19,6 +19,7 @@ struct git_remote {
struct git_refspec push;
git_transport *transport;
git_repository *repo;
+ git_remote_callbacks callbacks;
unsigned int need_pack:1,
check_cert;
};