Handle http.* config variables pointing to files gracefully on Windows

On Windows, we would like to be able to have a default http.sslCAinfo
that points to an MSys path (i.e. relative to the installation root of
Git).  As Git is a MinGW program, it has to handle the conversion
of the MSys path into a MinGW32 path itself.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin
2009-07-26 05:08:42 +02:00
parent c71fac52e4
commit b7d572cbf2

18
http.c
View File

@@ -1,5 +1,6 @@
#include "http.h"
#include "pack.h"
#include "exec_cmd.h"
int data_received;
int active_requests;
@@ -129,6 +130,15 @@ static void process_curl_messages(void)
}
#endif
static int git_config_path(const char **result,
const char *var, const char *value)
{
if (git_config_string(result, var, value))
return 1;
*result = system_path(*result);
return 0;
}
static int http_options(const char *var, const char *value, void *cb)
{
if (!strcmp("http.sslverify", var)) {
@@ -136,17 +146,17 @@ static int http_options(const char *var, const char *value, void *cb)
return 0;
}
if (!strcmp("http.sslcert", var))
return git_config_string(&ssl_cert, var, value);
return git_config_path(&ssl_cert, var, value);
#if LIBCURL_VERSION_NUM >= 0x070903
if (!strcmp("http.sslkey", var))
return git_config_string(&ssl_key, var, value);
return git_config_path(&ssl_key, var, value);
#endif
#if LIBCURL_VERSION_NUM >= 0x070908
if (!strcmp("http.sslcapath", var))
return git_config_string(&ssl_capath, var, value);
return git_config_path(&ssl_capath, var, value);
#endif
if (!strcmp("http.sslcainfo", var))
return git_config_string(&ssl_cainfo, var, value);
return git_config_path(&ssl_cainfo, var, value);
if (!strcmp("http.sslcertpasswordprotected", var)) {
if (git_config_bool(var, value))
ssl_cert_password_required = 1;