diff options
| author | Carlos Martín Nieto <carlos@cmartin.tk> | 2011-06-27 20:23:47 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <carlos@cmartin.tk> | 2011-06-27 20:23:47 +0200 |
| commit | 0ac2726fdf945792028e59105d8630a91c5d3663 (patch) | |
| tree | 29d40edaa6c723c3a8b2f82e81608168c224949c /src | |
| parent | 5da5321d1753ed897a2597e4ad7ff1928aa7cbbc (diff) | |
| download | libgit2-0ac2726fdf945792028e59105d8630a91c5d3663.tar.gz | |
Slim down git_transport
Remove the unused repo and private pointers and make the direction a
flag, as it can only have two states. Change the connect signature to
use an int instead of git_net_direction and remove that enum.
Signed-off-by: Carlos Martín Nieto <carlos@cmartin.tk>
Diffstat (limited to 'src')
| -rw-r--r-- | src/remote.c | 4 | ||||
| -rw-r--r-- | src/transport.c | 4 | ||||
| -rw-r--r-- | src/transport.h | 12 | ||||
| -rw-r--r-- | src/transport_git.c | 5 | ||||
| -rw-r--r-- | src/transport_local.c | 2 |
5 files changed, 10 insertions, 17 deletions
diff --git a/src/remote.c b/src/remote.c index 59ea6a797..2812f5de6 100644 --- a/src/remote.c +++ b/src/remote.c @@ -172,7 +172,7 @@ const git_refspec *git_remote_pushspec(struct git_remote *remote) return &remote->push; } -int git_remote_connect(git_remote *remote, git_net_direction dir) +int git_remote_connect(git_remote *remote, int direction) { int error; git_transport *t; @@ -181,7 +181,7 @@ int git_remote_connect(git_remote *remote, git_net_direction dir) if (error < GIT_SUCCESS) return git__rethrow(error, "Failed to create transport"); - error = git_transport_connect(t, dir); + error = git_transport_connect(t, direction); if (error < GIT_SUCCESS) { error = git__rethrow(error, "Failed to connect the transport"); goto cleanup; diff --git a/src/transport.c b/src/transport.c index d71560bb3..204ef176f 100644 --- a/src/transport.c +++ b/src/transport.c @@ -70,9 +70,9 @@ int git_transport_new(git_transport **out, const char *url) return GIT_SUCCESS; } -int git_transport_connect(git_transport *transport, git_net_direction dir) +int git_transport_connect(git_transport *transport, int direction) { - return transport->connect(transport, dir); + return transport->connect(transport, direction); } int git_transport_ls(git_transport *transport, git_headarray *array) diff --git a/src/transport.h b/src/transport.h index 6d5f037b8..b17d9a929 100644 --- a/src/transport.h +++ b/src/transport.h @@ -32,22 +32,14 @@ struct git_transport { */ char *url; /** - * Where each transport stores its private/instance data - */ - void *private; - /** - * The repo we want to act on - */ - git_repository *repo; - /** * Whether we want to push or fetch */ - git_net_direction direction; + int direction : 1; /* 0 fetch, 1 push */ int connected : 1; /** * Connect and store the remote heads */ - int (*connect)(struct git_transport *transport, git_net_direction intent); + int (*connect)(struct git_transport *transport, int dir); /** * Give a list of references, useful for ls-remote */ diff --git a/src/transport_git.c b/src/transport_git.c index c7c8df00f..d79ab5e34 100644 --- a/src/transport_git.c +++ b/src/transport_git.c @@ -230,14 +230,15 @@ static int store_refs(transport_git *t) * Since this is a network connection, we need to parse and store the * pkt-lines at this stage and keep them there. */ -static int git_connect(git_transport *transport, git_net_direction direction) +static int git_connect(git_transport *transport, int direction) { transport_git *t = (transport_git *) transport; int error = GIT_SUCCESS; - if (direction == INTENT_PUSH) + if (direction == GIT_DIR_PUSH) return git__throw(GIT_EINVALIDARGS, "Pushing is not supported with the git protocol"); + t->parent.direction = direction; error = git_vector_init(&t->refs, 16, NULL); if (error < GIT_SUCCESS) goto cleanup; diff --git a/src/transport_local.c b/src/transport_local.c index 5dc5c26ca..bdb75ad44 100644 --- a/src/transport_local.c +++ b/src/transport_local.c @@ -26,7 +26,7 @@ static int cmp_refs(const void *a, const void *b) * Try to open the url as a git directory. The direction doesn't * matter in this case because we're calulating the heads ourselves. */ -static int local_connect(git_transport *transport, git_net_direction GIT_UNUSED(dir)) +static int local_connect(git_transport *transport, int GIT_UNUSED(direction)) { git_repository *repo; int error; |
