summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2015-03-24 14:03:51 -0400
committerEdward Thomson <ethomson@edwardthomson.com>2015-03-24 14:03:51 -0400
commitc5e071873c1aa4a751202aedeefac7ddb982576c (patch)
tree2d2492b5ecf70c3ea88bbd24de3528f1530ba0b4 /src
parentaa7a4a507786ed9ad414d76843debafc61f1f334 (diff)
parent142e5379ca850b718c9775cab5e30504503defd0 (diff)
downloadlibgit2-c5e071873c1aa4a751202aedeefac7ddb982576c.tar.gz
Merge pull request #2990 from leoyanggit/custom_param
Add a custom param to git_smart_subtransport_definition
Diffstat (limited to 'src')
-rw-r--r--src/transport.c6
-rw-r--r--src/transports/git.c4
-rw-r--r--src/transports/http.c4
-rw-r--r--src/transports/smart.c2
-rw-r--r--src/transports/ssh.c6
-rw-r--r--src/transports/winhttp.c4
6 files changed, 18 insertions, 8 deletions
diff --git a/src/transport.c b/src/transport.c
index a41ea0add..fc9c692b8 100644
--- a/src/transport.c
+++ b/src/transport.c
@@ -18,10 +18,10 @@ typedef struct transport_definition {
void *param;
} transport_definition;
-static git_smart_subtransport_definition http_subtransport_definition = { git_smart_subtransport_http, 1 };
-static git_smart_subtransport_definition git_subtransport_definition = { git_smart_subtransport_git, 0 };
+static git_smart_subtransport_definition http_subtransport_definition = { git_smart_subtransport_http, 1, NULL };
+static git_smart_subtransport_definition git_subtransport_definition = { git_smart_subtransport_git, 0, NULL };
#ifdef GIT_SSH
-static git_smart_subtransport_definition ssh_subtransport_definition = { git_smart_subtransport_ssh, 0 };
+static git_smart_subtransport_definition ssh_subtransport_definition = { git_smart_subtransport_ssh, 0, NULL };
#endif
static transport_definition local_transport_definition = { "file://", git_transport_local, NULL };
diff --git a/src/transports/git.c b/src/transports/git.c
index 726712dff..7e0a47414 100644
--- a/src/transports/git.c
+++ b/src/transports/git.c
@@ -341,10 +341,12 @@ static void _git_free(git_smart_subtransport *subtransport)
git__free(t);
}
-int git_smart_subtransport_git(git_smart_subtransport **out, git_transport *owner)
+int git_smart_subtransport_git(git_smart_subtransport **out, git_transport *owner, void *param)
{
git_subtransport *t;
+ GIT_UNUSED(param);
+
if (!out)
return -1;
diff --git a/src/transports/http.c b/src/transports/http.c
index 0cd33002f..6b100df7a 100644
--- a/src/transports/http.c
+++ b/src/transports/http.c
@@ -1008,10 +1008,12 @@ static void http_free(git_smart_subtransport *subtransport)
git__free(t);
}
-int git_smart_subtransport_http(git_smart_subtransport **out, git_transport *owner)
+int git_smart_subtransport_http(git_smart_subtransport **out, git_transport *owner, void *param)
{
http_subtransport *t;
+ GIT_UNUSED(param);
+
if (!out)
return -1;
diff --git a/src/transports/smart.c b/src/transports/smart.c
index 69b9d22cc..85a49e543 100644
--- a/src/transports/smart.c
+++ b/src/transports/smart.c
@@ -409,7 +409,7 @@ int git_transport_smart(git_transport **out, git_remote *owner, void *param)
return -1;
}
- if (definition->callback(&t->wrapped, &t->parent) < 0) {
+ if (definition->callback(&t->wrapped, &t->parent, definition->param) < 0) {
git__free(t);
return -1;
}
diff --git a/src/transports/ssh.c b/src/transports/ssh.c
index 33d0898ec..c5b081151 100644
--- a/src/transports/ssh.c
+++ b/src/transports/ssh.c
@@ -754,13 +754,15 @@ static int list_auth_methods(int *out, LIBSSH2_SESSION *session, const char *use
#endif
int git_smart_subtransport_ssh(
- git_smart_subtransport **out, git_transport *owner)
+ git_smart_subtransport **out, git_transport *owner, void *param)
{
#ifdef GIT_SSH
ssh_subtransport *t;
assert(out);
+ GIT_UNUSED(param);
+
t = git__calloc(sizeof(ssh_subtransport), 1);
GITERR_CHECK_ALLOC(t);
@@ -773,6 +775,7 @@ int git_smart_subtransport_ssh(
return 0;
#else
GIT_UNUSED(owner);
+ GIT_UNUSED(param);
assert(out);
*out = NULL;
@@ -793,6 +796,7 @@ int git_transport_ssh_with_paths(git_transport **out, git_remote *owner, void *p
git_smart_subtransport_definition ssh_definition = {
git_smart_subtransport_ssh,
0, /* no RPC */
+ NULL,
};
if (paths->count != 2) {
diff --git a/src/transports/winhttp.c b/src/transports/winhttp.c
index f93a031f1..f84e2ae9f 100644
--- a/src/transports/winhttp.c
+++ b/src/transports/winhttp.c
@@ -1327,10 +1327,12 @@ static void winhttp_free(git_smart_subtransport *subtransport)
git__free(t);
}
-int git_smart_subtransport_http(git_smart_subtransport **out, git_transport *owner)
+int git_smart_subtransport_http(git_smart_subtransport **out, git_transport *owner, void *param)
{
winhttp_subtransport *t;
+ GIT_UNUSED(param);
+
if (!out)
return -1;