[PATCH] Support more http features: https no cert, .netrc -> auth
authorDarrin Thompson <darrint@progeny.com>
Wed, 13 Jul 2005 02:12:40 +0000 (21:12 -0500)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sat, 23 Jul 2005 00:48:45 +0000 (17:48 -0700)
Cause setting environment variable GIT_SSL_NO_VERIFY to turn off
curl's ssl peer verification.

Only use curl for http transfers, instead of curl and wget.

Make curl check ~/.netrc for credentials.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
git-fetch-script
http-pull.c

index b44cf3f..34ddfc8 100755 (executable)
@@ -9,8 +9,11 @@ merge_store="$_remote_store"
 TMP_HEAD="$GIT_DIR/TMP_HEAD"
 
 case "$merge_repo" in
-http://*)
-       head=$(wget -q -O - "$merge_repo/$merge_head") || exit 1
+http://* | https://*)
+        if [ -n "$GIT_SSL_NO_VERIFY" ]; then
+            curl_extra_args="-k"
+        fi
+       head=$(curl -ns $curl_extra_args "$merge_repo/$merge_head") || exit 1
        echo Fetching "$merge_head" using http
        git-http-pull -v -a "$head" "$merge_repo/"
        ;;
index 1f9d60b..b2cecae 100644 (file)
@@ -16,6 +16,8 @@ static z_stream stream;
 static int local;
 static int zret;
 
+static int curl_ssl_verify;
+
 struct buffer
 {
         size_t posn;
@@ -173,6 +175,10 @@ int main(int argc, char **argv)
 
        curl = curl_easy_init();
 
+       curl_ssl_verify = gitenv("GIT_SSL_NO_VERIFY") ? 0 : 1;
+       curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, curl_ssl_verify);
+       curl_easy_setopt(curl, CURLOPT_NETRC, CURL_NETRC_OPTIONAL);
+
        base = url;
 
        if (pull(commit_id))