| OLD | NEW | 
|---|
| 1 #include "PluginStdAfx.h" | 1 #include "PluginStdAfx.h" | 
| 2 | 2 | 
| 3 // Internet / FTP | 3 // Internet / FTP | 
| 4 #include <wininet.h> | 4 #include <wininet.h> | 
| 5 | 5 | 
| 6 // IP adapter | 6 // IP adapter | 
| 7 #include <iphlpapi.h> | 7 #include <iphlpapi.h> | 
| 8 | 8 | 
| 9 #include "PluginSettings.h" | 9 #include "PluginSettings.h" | 
| 10 #include "PluginSystem.h" | 10 #include "PluginSystem.h" | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 50     unescapedUrl.ReleaseBuffer(); | 50     unescapedUrl.ReleaseBuffer(); | 
| 51     unescapedUrl.Truncate(cb); | 51     unescapedUrl.Truncate(cb); | 
| 52 | 52 | 
| 53     url.ReleaseBuffer(); | 53     url.ReleaseBuffer(); | 
| 54     url = unescapedUrl; | 54     url = unescapedUrl; | 
| 55   } | 55   } | 
| 56 | 56 | 
| 57   return url; | 57   return url; | 
| 58 } | 58 } | 
| 59 | 59 | 
|  | 60 void UnescapeUrl(std::wstring& url) | 
|  | 61 { | 
|  | 62   try | 
|  | 63   { | 
|  | 64     DWORD result_length = INTERNET_MAX_URL_LENGTH; | 
|  | 65     std::unique_ptr<wchar_t[]> result(new wchar_t[result_length]); | 
|  | 66     HRESULT hr = UrlUnescapeW(const_cast<wchar_t*>(url.c_str()), result.get(), &
     result_length, 0); | 
|  | 67     if (hr == S_OK) | 
|  | 68     { | 
|  | 69       url = std::wstring(result.get(), result_length); | 
|  | 70     } | 
|  | 71     /* | 
|  | 72      * Do nothing. This masks error return values from UrlUnescape without loggi
     ng the error. | 
|  | 73      */ | 
|  | 74   } | 
|  | 75   catch(std::bad_alloc e) | 
|  | 76   { | 
|  | 77     /* | 
|  | 78      * When the code has a systematic way of handling bad_alloc, we'll rethrow (
     probably). | 
|  | 79      * Until then, we mask the exception and make no modification. | 
|  | 80      */ | 
|  | 81   } | 
|  | 82   catch(...) | 
|  | 83   { | 
|  | 84     // no modification if any other exception | 
|  | 85   } | 
|  | 86 } | 
| 60 | 87 | 
| 61 void CPluginClientBase::LogPluginError(DWORD errorCode, int errorId, int errorSu
     bid, const CString& description, bool isAsync, DWORD dwProcessId, DWORD dwThread
     Id) | 88 void CPluginClientBase::LogPluginError(DWORD errorCode, int errorId, int errorSu
     bid, const CString& description, bool isAsync, DWORD dwProcessId, DWORD dwThread
     Id) | 
| 62 { | 89 { | 
| 63   // Prevent circular references | 90   // Prevent circular references | 
| 64   if (CPluginSettings::HasInstance() && isAsync) | 91   if (CPluginSettings::HasInstance() && isAsync) | 
| 65   { | 92   { | 
| 66     DEBUG_ERROR_CODE_EX(errorCode, description, dwProcessId, dwThreadId); | 93     DEBUG_ERROR_CODE_EX(errorCode, description, dwProcessId, dwThreadId); | 
| 67 | 94 | 
| 68     CString pluginError; | 95     CString pluginError; | 
| 69     pluginError.Format(L"%2.2d%2.2d", errorId, errorSubid); | 96     pluginError.Format(L"%2.2d%2.2d", errorId, errorSubid); | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 109 | 136 | 
| 110       hasError = true; | 137       hasError = true; | 
| 111 | 138 | 
| 112       s_pluginErrors.erase(it); | 139       s_pluginErrors.erase(it); | 
| 113     } | 140     } | 
| 114   } | 141   } | 
| 115   s_criticalSectionLocal.Unlock(); | 142   s_criticalSectionLocal.Unlock(); | 
| 116 | 143 | 
| 117   return hasError; | 144   return hasError; | 
| 118 } | 145 } | 
| OLD | NEW | 
|---|