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 <darrint at progeny com> ---
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.
Show changes to http-pull.c +16 −2
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;