Code

[PATCH] Support for more CURL SSL settings via environment variables
authorNick Hengeveld <nickh@reactrix.com>
Tue, 27 Sep 2005 17:45:27 +0000 (10:45 -0700)
committerJunio C Hamano <junkio@cox.net>
Wed, 28 Sep 2005 23:38:51 +0000 (16:38 -0700)
Added support for additional CURL SSL settings via environment variables.
Client certificate/key files can be specified as well as alternate CA
information.

Signed-off-by: Nick Hengeveld <nickh@reactrix.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
http-fetch.c

index 0caec10468a1a2525713fbb90d9e212da5034def..7fc363f8ea7ca622330eb17260bf76f977875d03 100644 (file)
@@ -36,6 +36,10 @@ static int local;
 static int zret;
 
 static int curl_ssl_verify;
+static char *ssl_cert;
+static char *ssl_key;
+static char *ssl_capath;
+static char *ssl_cainfo;
 
 struct buffer
 {
@@ -522,6 +526,21 @@ int main(int argc, char **argv)
        curl_easy_setopt(curl, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
 #endif
 
+       if ((ssl_cert = getenv("GIT_SSL_CERT")) != NULL) {
+               curl_easy_setopt(curl, CURLOPT_SSLCERT, ssl_cert);
+       }
+       if ((ssl_key = getenv("GIT_SSL_KEY")) != NULL) {
+               curl_easy_setopt(curl, CURLOPT_SSLKEY, ssl_key);
+       }
+#if LIBCURL_VERSION_NUM >= 0x070908
+       if ((ssl_capath = getenv("GIT_SSL_CAPATH")) != NULL) {
+               curl_easy_setopt(curl, CURLOPT_CAPATH, ssl_capath);
+       }
+#endif
+       if ((ssl_cainfo = getenv("GIT_SSL_CAINFO")) != NULL) {
+               curl_easy_setopt(curl, CURLOPT_CAINFO, ssl_cainfo);
+       }
+
        alt = xmalloc(sizeof(*alt));
        alt->base = url;
        alt->got_indices = 0;