Browse Source

Merge branch 'mv/ssl-ftp-curl'

Does anybody really use commit walkers over (s)ftp?

* mv/ssl-ftp-curl:
  Support FTP-over-SSL/TLS for regular FTP
maint
Junio C Hamano 12 years ago
parent
commit
574d51b575
  1. 8
      Documentation/config.txt
  2. 10
      http.c
  3. 9
      http.h

8
Documentation/config.txt

@ -1465,6 +1465,14 @@ http.sslCAPath:: @@ -1465,6 +1465,14 @@ http.sslCAPath::
with when fetching or pushing over HTTPS. Can be overridden
by the 'GIT_SSL_CAPATH' environment variable.

http.sslTry::
Attempt to use AUTH SSL/TLS and encrypted data transfers
when connecting via regular FTP protocol. This might be needed
if the FTP server requires it for security reasons or you wish
to connect securely whenever remote FTP server supports it.
Default is false since it might trigger certificate verification
errors on misconfigured servers.

http.maxRequests::
How many HTTP requests to launch in parallel. Can be overridden
by the 'GIT_HTTP_MAX_REQUESTS' environment variable. Default is 5.

10
http.c

@ -31,6 +31,7 @@ static CURL *curl_default; @@ -31,6 +31,7 @@ static CURL *curl_default;
char curl_errorstr[CURL_ERROR_SIZE];

static int curl_ssl_verify = -1;
static int curl_ssl_try;
static const char *ssl_cert;
#if LIBCURL_VERSION_NUM >= 0x070903
static const char *ssl_key;
@ -163,6 +164,10 @@ static int http_options(const char *var, const char *value, void *cb) @@ -163,6 +164,10 @@ static int http_options(const char *var, const char *value, void *cb)
ssl_cert_password_required = 1;
return 0;
}
if (!strcmp("http.ssltry", var)) {
curl_ssl_try = git_config_bool(var, value);
return 0;
}
if (!strcmp("http.minsessions", var)) {
min_curl_sessions = git_config_int(var, value);
#ifndef USE_CURL_MULTI
@ -306,6 +311,11 @@ static CURL *get_curl_handle(void) @@ -306,6 +311,11 @@ static CURL *get_curl_handle(void)
if (curl_ftp_no_epsv)
curl_easy_setopt(result, CURLOPT_FTP_USE_EPSV, 0);

#ifdef CURLOPT_USE_SSL
if (curl_ssl_try)
curl_easy_setopt(result, CURLOPT_USE_SSL, CURLUSESSL_TRY);
#endif

if (curl_http_proxy) {
curl_easy_setopt(result, CURLOPT_PROXY, curl_http_proxy);
curl_easy_setopt(result, CURLOPT_PROXYAUTH, CURLAUTH_ANY);

9
http.h

@ -42,6 +42,15 @@ @@ -42,6 +42,15 @@
#define NO_CURL_IOCTL
#endif

/*
* CURLOPT_USE_SSL was known as CURLOPT_FTP_SSL up to 7.16.4,
* and the constants were known as CURLFTPSSL_*
*/
#if !defined(CURLOPT_USE_SSL) && defined(CURLOPT_FTP_SSL)
#define CURLOPT_USE_SSL CURLOPT_FTP_SSL
#define CURLUSESSL_TRY CURLFTPSSL_TRY
#endif

struct slot_results {
CURLcode curl_result;
long http_code;

Loading…
Cancel
Save