Return an error when ssh memory credentials are not supported. To not modify the external api.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
diff --git a/include/git2/transport.h b/include/git2/transport.h
index 57293d9..4008615 100644
--- a/include/git2/transport.h
+++ b/include/git2/transport.h
@@ -299,7 +299,6 @@ GIT_EXTERN(int) git_cred_default_new(git_cred **out);
*/
GIT_EXTERN(int) git_cred_username_new(git_cred **cred, const char *username);
-#ifdef GIT_SSH_MEMORY_CREDENTIALS
/**
* Create a new ssh key credential object reading the keys from memory.
*
@@ -316,7 +315,6 @@ GIT_EXTERN(int) git_cred_ssh_key_memory_new(
const char *publickey,
const char *privatekey,
const char *passphrase);
-#endif
/**
* Signature of a function which acquires a credential object.
diff --git a/src/transports/cred.c b/src/transports/cred.c
index 68007fb..c1f305d 100644
--- a/src/transports/cred.c
+++ b/src/transports/cred.c
@@ -195,7 +195,6 @@ int git_cred_ssh_key_new(
GIT_CREDTYPE_SSH_KEY);
}
-#ifdef GIT_SSH_MEMORY_CREDENTIALS
int git_cred_ssh_key_memory_new(
git_cred **cred,
const char *username,
@@ -203,6 +202,7 @@ int git_cred_ssh_key_memory_new(
const char *privatekey,
const char *passphrase)
{
+#ifdef GIT_SSH_MEMORY_CREDENTIALS
return git_cred_ssh_key_type_new(
cred,
username,
@@ -210,8 +210,12 @@ int git_cred_ssh_key_memory_new(
privatekey,
passphrase,
GIT_CREDTYPE_SSH_MEMORY);
-}
+#else
+ giterr_set(GITERR_INVALID,
+ "This version of libgit2 was not built with ssh memory credentials.");
+ return -1;
#endif
+}
static int git_cred_ssh_key_type_new(
git_cred **cred,