Browse files

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.

Since system_path() considers paths starting with '/' as absolute, we
have to convince it to make a Windows path by stripping the leading

Signed-off-by: Johannes Schindelin <>
  • Loading branch information...
1 parent 251c39b commit 8bad5db481312de9626325b2a7cd7392f34dbb84 @dscho dscho committed Jul 26, 2009
Showing with 17 additions and 4 deletions.
  1. +17 −4 http.c
@@ -4,6 +4,7 @@
#include "run-command.h"
#include "url.h"
#include "credential.h"
+#include "exec_cmd.h"
int active_requests;
int http_is_verbose;
@@ -138,24 +139,36 @@ static void process_curl_messages(void)
+static int git_config_path(const char **result,
+ const char *var, const char *value)
+ if (git_config_string(result, var, value))
+ return 1;
+#ifdef __MINGW32__
+ if (**result == '/')
+ *result = system_path((*result) + 1);
+ return 0;
static int http_options(const char *var, const char *value, void *cb)
if (!strcmp("http.sslverify", var)) {
curl_ssl_verify = git_config_bool(var, value);
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);
#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);
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;

0 comments on commit 8bad5db

Please sign in to comment.