Commit 8d863aa20595f2645840a5735805509f32d7c873

Vicent Martí 2013-05-31T06:01:59

Merge pull request #1621 from NHDaly/clone_transport_flags Added support for setting transport flags (No check SSL cert) to git_clo...

diff --git a/include/git2/clone.h b/include/git2/clone.h
index 20df491..5858b4e 100644
--- a/include/git2/clone.h
+++ b/include/git2/clone.h
@@ -51,6 +51,8 @@ GIT_BEGIN_DECL
  * - `cred_acquire_cb` is a callback to be used if credentials are required
  *   during the initial fetch.
  * - `cred_acquire_payload` is the payload for the above callback.
+ * - `transport_flags` is flags used to create transport if no transport is
+ *   provided.
  * - `transport` is a custom transport to be used for the initial fetch.  NULL
  *   means use the transport autodetected from the URL.
  * - `remote_callbacks` may be used to specify custom progress callbacks for
@@ -75,6 +77,7 @@ typedef struct git_clone_options {
 	const char *push_spec;
 	git_cred_acquire_cb cred_acquire_cb;
 	void *cred_acquire_payload;
+    git_transport_flags_t transport_flags;
 	git_transport *transport;
 	git_remote_callbacks *remote_callbacks;
 	git_remote_autotag_option_t remote_autotag;
diff --git a/src/clone.c b/src/clone.c
index 4f76326..191040d 100644
--- a/src/clone.c
+++ b/src/clone.c
@@ -336,6 +336,10 @@ static int create_and_configure_origin(
 	    (error = git_remote_set_pushurl(origin, options->pushurl)) < 0)
 		goto on_error;
 
+	if (options->transport_flags == GIT_TRANSPORTFLAGS_NO_CHECK_CERT) {
+        git_remote_check_cert(origin, 0);
+    }
+
 	if ((error = git_remote_save(origin)) < 0)
 		goto on_error;