From: Darrin Thompson Date: Mon, 20 Jun 2005 23:48:31 GMT Subject: [PATCH] Add more curl options to git-http-pull Message-ID: <1119311311.3926.26.camel@localhost.localdomain> All, This patch makes git-http-pull work with basic http auth and ssl when you aren't using a real cert. Also, it makes curl's verbose output available, which is useful for debugging. Apologies as I expect my mail client is munging this patch slightly. Signed-off-by: Darrin Thompson --- Create option to turn off ssl peer verification. Create option to provide username:password to curl. Make -v additive. When -v is specified twice, turn on CURLOPT_VERBOSE. diff --git a/http-pull.c b/http-pull.c --- a/http-pull.c +++ b/http-pull.c @@ -15,6 +15,8 @@ static z_stream stream; static int local; static int zret; +static int curl_ssl_verify_enabled = 1; +static char *curl_user_pwd = NULL; static size_t fwrite_sha1_file(void *ptr, size_t eltsize, size_t nmemb, void *data) { @@ -117,12 +119,17 @@ int main(int argc, char **argv) get_tree = 1; get_history = 1; } else if (argv[arg][1] == 'v') { - get_verbosely = 1; + get_verbosely += 1; + } else if (argv[arg][1] == 'S') { + curl_ssl_verify_enabled = 0; + } else if (argv[arg][1] == 'u') { + arg++; + curl_user_pwd = argv[arg]; } arg++; } if (argc < arg + 2) { - usage("git-http-pull [-c] [-t] [-a] [-d] [-v] [--recover] commit-id url"); + usage("git-http-pull [-u] user:passwd [-S] [-c] [-t] [-a] [-d] [-v] [--recover] commit-id url"); return 1; } commit_id = argv[arg]; @@ -131,6 +138,13 @@ int main(int argc, char **argv) curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); + if (curl_user_pwd) { + curl_easy_setopt(curl, CURLOPT_USERPWD, curl_user_pwd); + } + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, curl_ssl_verify_enabled); + if (get_verbosely >= 2) { + curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); + } base = url;