summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2015-08-19 00:46:28 +0200
committerCarlos Martín Nieto <cmn@dwim.me>2015-08-19 02:23:18 +0200
commit57af0b928ec8dd12c443c9479973ad3e39f258b4 (patch)
tree895632779547a976f068d90e04b414a15f283000
parent47ed7e5acd5fe9fd8dfc1a6b9aac7603a50da25c (diff)
downloadlibgit2-cmn/smart-callbacks.tar.gz
cred: add a free function wrappercmn/smart-callbacks
-rw-r--r--include/git2/transport.h11
-rw-r--r--src/transports/cred.c8
2 files changed, 19 insertions, 0 deletions
diff --git a/include/git2/transport.h b/include/git2/transport.h
index fd55eac0a..0ec241699 100644
--- a/include/git2/transport.h
+++ b/include/git2/transport.h
@@ -307,6 +307,17 @@ GIT_EXTERN(int) git_cred_ssh_key_memory_new(
const char *privatekey,
const char *passphrase);
+
+/**
+ * Free a credential.
+ *
+ * This is only necessary if you own the object; that is, if you are a
+ * transport.
+ *
+ * @param cred the object to free
+ */
+GIT_EXTERN(void) git_cred_free(git_cred *cred);
+
/**
* Signature of a function which acquires a credential object.
*
diff --git a/src/transports/cred.c b/src/transports/cred.c
index 044b2a262..49ede48bf 100644
--- a/src/transports/cred.c
+++ b/src/transports/cred.c
@@ -378,3 +378,11 @@ int git_cred_username_new(git_cred **cred, const char *username)
*cred = (git_cred *) c;
return 0;
}
+
+void git_cred_free(git_cred *cred)
+{
+ if (!cred)
+ return;
+
+ cred->free(cred);
+}