OSDN Git Service

Fix bugs of automatic software update.
[ffftp/ffftp.git] / updater.c
index 76ed554..ad70f62 100644 (file)
--- a/updater.c
+++ b/updater.c
@@ -50,32 +50,37 @@ BOOL ReadFileViaHTTPW(void* pOut, DWORD Length, DWORD* pLength, LPCWSTR UserAgen
 {\r
        BOOL bResult;\r
        HINTERNET hSession;\r
+       DWORD Buffer;\r
        HINTERNET hConnect;\r
        HINTERNET hRequest;\r
        bResult = FALSE;\r
        if(hSession = WinHttpOpen(UserAgent, WINHTTP_ACCESS_TYPE_NO_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0))\r
        {\r
-               if(hConnect = WinHttpConnect(hSession, ServerName, INTERNET_DEFAULT_HTTP_PORT, 0))\r
+               Buffer = WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS;\r
+               if(WinHttpSetOption(hSession, WINHTTP_OPTION_REDIRECT_POLICY, &Buffer, sizeof(DWORD)))\r
                {\r
-                       if(hRequest = WinHttpOpenRequest(hConnect, L"GET", ObjectName, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0))\r
+                       if(hConnect = WinHttpConnect(hSession, ServerName, INTERNET_DEFAULT_HTTP_PORT, 0))\r
                        {\r
-                               if(WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0))\r
+                               if(hRequest = WinHttpOpenRequest(hConnect, L"GET", ObjectName, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0))\r
                                {\r
-                                       if(WinHttpReceiveResponse(hRequest, NULL))\r
+                                       if(WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0))\r
                                        {\r
-                                               if(WinHttpQueryDataAvailable(hRequest, pLength))\r
+                                               if(WinHttpReceiveResponse(hRequest, NULL))\r
                                                {\r
-                                                       if(*pLength <= Length)\r
+                                                       if(WinHttpQueryDataAvailable(hRequest, pLength))\r
                                                        {\r
-                                                               if(WinHttpReadData(hRequest, pOut, Length, pLength))\r
-                                                                       bResult = TRUE;\r
+                                                               if(*pLength <= Length)\r
+                                                               {\r
+                                                                       if(WinHttpReadData(hRequest, pOut, Length, pLength))\r
+                                                                               bResult = TRUE;\r
+                                                               }\r
                                                        }\r
                                                }\r
                                        }\r
+                                       WinHttpCloseHandle(hRequest);\r
                                }\r
-                               WinHttpCloseHandle(hRequest);\r
+                               WinHttpCloseHandle(hConnect);\r
                        }\r
-                       WinHttpCloseHandle(hConnect);\r
                }\r
                WinHttpCloseHandle(hSession);\r
        }\r