Commit 923c1652 by Edward Thomson

transport: add capabilities query function

parent b5237767
...@@ -47,6 +47,16 @@ struct git_transport { ...@@ -47,6 +47,16 @@ struct git_transport {
const git_remote_connect_options *connect_opts); const git_remote_connect_options *connect_opts);
/** /**
* Gets the capabilities for this remote repository.
*
* This function may be called after a successful call to
* `connect()`.
*/
int GIT_CALLBACK(capabilities)(
unsigned int *capabilities,
git_transport *transport);
/**
* Get the list of available references in the remote repository. * Get the list of available references in the remote repository.
* *
* This function may be called after a successful call to * This function may be called after a successful call to
......
...@@ -256,6 +256,14 @@ static int local_set_connect_opts( ...@@ -256,6 +256,14 @@ static int local_set_connect_opts(
return git_remote_connect_options_normalize(&t->connect_opts, t->owner->repo, connect_opts); return git_remote_connect_options_normalize(&t->connect_opts, t->owner->repo, connect_opts);
} }
static int local_capabilities(unsigned int *capabilities, git_transport *transport)
{
GIT_UNUSED(transport);
*capabilities = 0;
return 0;
}
static int local_ls(const git_remote_head ***out, size_t *size, git_transport *transport) static int local_ls(const git_remote_head ***out, size_t *size, git_transport *transport)
{ {
transport_local *t = (transport_local *)transport; transport_local *t = (transport_local *)transport;
...@@ -721,6 +729,7 @@ int git_transport_local(git_transport **out, git_remote *owner, void *param) ...@@ -721,6 +729,7 @@ int git_transport_local(git_transport **out, git_remote *owner, void *param)
t->parent.version = GIT_TRANSPORT_VERSION; t->parent.version = GIT_TRANSPORT_VERSION;
t->parent.connect = local_connect; t->parent.connect = local_connect;
t->parent.set_connect_opts = local_set_connect_opts; t->parent.set_connect_opts = local_set_connect_opts;
t->parent.capabilities = local_capabilities;
t->parent.negotiate_fetch = local_negotiate_fetch; t->parent.negotiate_fetch = local_negotiate_fetch;
t->parent.download_pack = local_download_pack; t->parent.download_pack = local_download_pack;
t->parent.push = local_push; t->parent.push = local_push;
......
...@@ -226,6 +226,14 @@ static int git_smart__set_connect_opts( ...@@ -226,6 +226,14 @@ static int git_smart__set_connect_opts(
return git_remote_connect_options_normalize(&t->connect_opts, t->owner->repo, opts); return git_remote_connect_options_normalize(&t->connect_opts, t->owner->repo, opts);
} }
static int git_smart__capabilities(unsigned int *capabilities, git_transport *transport)
{
GIT_UNUSED(transport);
*capabilities = 0;
return 0;
}
static int git_smart__ls(const git_remote_head ***out, size_t *size, git_transport *transport) static int git_smart__ls(const git_remote_head ***out, size_t *size, git_transport *transport)
{ {
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent); transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
...@@ -423,6 +431,7 @@ int git_transport_smart(git_transport **out, git_remote *owner, void *param) ...@@ -423,6 +431,7 @@ int git_transport_smart(git_transport **out, git_remote *owner, void *param)
t->parent.version = GIT_TRANSPORT_VERSION; t->parent.version = GIT_TRANSPORT_VERSION;
t->parent.connect = git_smart__connect; t->parent.connect = git_smart__connect;
t->parent.set_connect_opts = git_smart__set_connect_opts; t->parent.set_connect_opts = git_smart__set_connect_opts;
t->parent.capabilities = git_smart__capabilities;
t->parent.close = git_smart__close; t->parent.close = git_smart__close;
t->parent.free = git_smart__free; t->parent.free = git_smart__free;
t->parent.negotiate_fetch = git_smart__negotiate_fetch; t->parent.negotiate_fetch = git_smart__negotiate_fetch;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment