OSDN Git Service

Check http_proxy environment.
authorFrank Li <lznuaa@gmail.com>
Sat, 22 Aug 2009 05:51:47 +0000 (13:51 +0800)
committerFrank Li <lznuaa@gmail.com>
Sat, 22 Aug 2009 05:51:47 +0000 (13:51 +0800)
If environment http_proxy setting,  don't use setting dialog proxy data.

Signed-off-by: Frank Li <lznuaa@gmail.com>
src/Git/Git.cpp

index 344312f..4e6f847 100644 (file)
@@ -826,7 +826,7 @@ BOOL CGit::CheckMsysGitDir()
        }\r
 \r
        TCHAR *oldpath,*home;\r
-       size_t homesize,size;\r
+       size_t homesize,size,httpsize;\r
 \r
        // set HOME if not set already\r
        _tgetenv_s(&homesize, NULL, 0, _T("HOME"));\r
@@ -840,31 +840,36 @@ BOOL CGit::CheckMsysGitDir()
 \r
 #ifndef _TORTOISESHELL\r
        //set http_proxy\r
-       CString regServeraddress_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-host"), _T(""));\r
-       CString regServerport_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-port"), _T(""));\r
-       CString regUsername_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-username"), _T(""));\r
-       CString regPassword_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-password"), _T(""));\r
-       CString regTimeout_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-timeout"), _T(""));\r
-       CString regExceptions_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-exceptions"), _T(""));\r
-\r
-       CString http_proxy;\r
-       if(!regServeraddress_copy.IsEmpty())\r
+       _tgetenv_s(&httpsize, NULL, 0, _T("http_proxy"));\r
+       if (!httpsize)\r
        {\r
-               http_proxy=_T("http://");\r
-               if(!regUsername_copy.IsEmpty())\r
+               CString regServeraddress_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-host"), _T(""));\r
+               CString regServerport_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-port"), _T(""));\r
+               CString regUsername_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-username"), _T(""));\r
+               CString regPassword_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-password"), _T(""));\r
+               CString regTimeout_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-timeout"), _T(""));\r
+               CString regExceptions_copy = CRegString(_T("Software\\TortoiseGit\\Servers\\global\\http-proxy-exceptions"), _T(""));\r
+\r
+               CString http_proxy;\r
+               if(!regServeraddress_copy.IsEmpty())\r
                {\r
-                       http_proxy += regUsername_copy;\r
-                       http_proxy += _T(":")+regPassword_copy;\r
-                       http_proxy += _T("@");\r
-               }\r
-               http_proxy+=regServeraddress_copy;\r
-               if(!regServerport_copy.IsEmpty())\r
-               {\r
-                       http_proxy +=_T(":")+regServerport_copy;\r
+                       if(regServeraddress_copy.Left(4) != _T("http"))\r
+                               http_proxy=_T("http://");\r
+\r
+                       if(!regUsername_copy.IsEmpty())\r
+                       {\r
+                               http_proxy += regUsername_copy;\r
+                               http_proxy += _T(":")+regPassword_copy;\r
+                               http_proxy += _T("@");\r
+                       }\r
+                       http_proxy+=regServeraddress_copy;\r
+                       if(!regServerport_copy.IsEmpty())\r
+                       {\r
+                               http_proxy +=_T(":")+regServerport_copy;\r
+                       }\r
+                       _tputenv_s(_T("http_proxy"),http_proxy);\r
                }\r
-               _tputenv_s(_T("http_proxy"),http_proxy);\r
        }\r
-       \r
        //setup ssh client\r
        CString sshclient=CRegString(_T("Software\\TortoiseGit\\SSH"));\r
 \r