From 36c88422ef7537f41bd24d3ace41ee0422e531ac Mon Sep 17 00:00:00 2001 From: Arthur Schreiber Date: Sat, 2 Jun 2012 16:48:12 +0200 Subject: [PATCH 1/2] Add a failing test case for git_remote_disconnect/git_remote_connected. --- tests-clar/network/remotelocal.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests-clar/network/remotelocal.c b/tests-clar/network/remotelocal.c index 98abbbeb9..8cee7ce08 100644 --- a/tests-clar/network/remotelocal.c +++ b/tests-clar/network/remotelocal.c @@ -90,6 +90,15 @@ static void connect_to_local_repository(const char *local_repository) } +void test_network_remotelocal__connected(void) +{ + connect_to_local_repository(cl_fixture("testrepo.git")); + cl_assert(git_remote_connected(remote)); + + git_remote_disconnect(remote); + cl_assert(!git_remote_connected(remote)); +} + void test_network_remotelocal__retrieve_advertised_references(void) { int how_many_refs = 0; From e9551e86b9949df19cdbb94d7caa4b8f967bed3b Mon Sep 17 00:00:00 2001 From: Arthur Schreiber Date: Sat, 2 Jun 2012 16:52:22 +0200 Subject: [PATCH 2/2] Fix git_close/http_close/local_close to set the transport's connected attribute to 0. --- src/transports/git.c | 2 ++ src/transports/http.c | 2 ++ src/transports/local.c | 1 + 3 files changed, 5 insertions(+) diff --git a/src/transports/git.c b/src/transports/git.c index 5baa810f0..844b350be 100644 --- a/src/transports/git.c +++ b/src/transports/git.c @@ -417,6 +417,8 @@ static int git_close(git_transport *transport) return -1; } + t->parent.connected = 0; + #ifdef GIT_WIN32 WSACleanup(); #endif diff --git a/src/transports/http.c b/src/transports/http.c index 2a8ebbb09..9ea21a61d 100644 --- a/src/transports/http.c +++ b/src/transports/http.c @@ -610,6 +610,8 @@ static int http_close(git_transport *transport) return -1; } + t->parent.connected = 0; + return 0; } diff --git a/src/transports/local.c b/src/transports/local.c index 000993e69..0e1ae3752 100644 --- a/src/transports/local.c +++ b/src/transports/local.c @@ -190,6 +190,7 @@ static int local_close(git_transport *transport) { transport_local *t = (transport_local *)transport; + t->parent.connected = 0; git_repository_free(t->repo); t->repo = NULL;