mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	Merge e336bfdc44 into bdff2dc45c
				
					
				
			This commit is contained in:
		
						commit
						27aad53a08
					
				
					 10 changed files with 99 additions and 118 deletions
				
			
		|  | @ -19,7 +19,7 @@ TARGET        := $(word 1,$(subst -, ,$(TUPLE))) | ||||||
| DEF_SUFFIX    := $(if $(TARGET:x86_64=),.def,.def64) | DEF_SUFFIX    := $(if $(TARGET:x86_64=),.def,.def64) | ||||||
| 
 | 
 | ||||||
| .PHONY: all | .PHONY: all | ||||||
| all: dwmapi-delaylib.lib version-delaylib.lib wintrust-delaylib.lib | all: dwmapi-delaylib.lib version-delaylib.lib wininet-delaylib.lib wintrust-delaylib.lib | ||||||
| 
 | 
 | ||||||
| %.def64: %.def | %.def64: %.def | ||||||
| 	$(AM_V_SED) "s/@.*//" $< >$@ | 	$(AM_V_SED) "s/@.*//" $< >$@ | ||||||
|  |  | ||||||
|  | @ -367,7 +367,7 @@ uninstall-am: | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| .PHONY: all | .PHONY: all | ||||||
| all: dwmapi-delaylib.lib version-delaylib.lib wintrust-delaylib.lib | all: dwmapi-delaylib.lib version-delaylib.lib wininet-delaylib.lib wintrust-delaylib.lib | ||||||
| 
 | 
 | ||||||
| %.def64: %.def | %.def64: %.def | ||||||
| 	$(AM_V_SED) "s/@.*//" $< >$@ | 	$(AM_V_SED) "s/@.*//" $< >$@ | ||||||
|  |  | ||||||
							
								
								
									
										13
									
								
								.mingw/wininet.def
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.mingw/wininet.def
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | ||||||
|  | EXPORTS | ||||||
|  |   HttpQueryInfoA@20 | ||||||
|  |   HttpOpenRequestA@32 | ||||||
|  |   HttpSendRequestA@20 | ||||||
|  |   InternetCloseHandle@4 | ||||||
|  |   InternetConnectA@32 | ||||||
|  |   InternetCrackUrlA@16 | ||||||
|  |   InternetGetConnectedState@8 | ||||||
|  |   InternetGetLastResponseInfoA@12 | ||||||
|  |   InternetOpenA@20 | ||||||
|  |   InternetReadFile@16 | ||||||
|  |   InternetSetOptionA@16 | ||||||
|  | 
 | ||||||
|  | @ -133,12 +133,12 @@ | ||||||
|       <AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions> |       <AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;Wininet.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
|       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> | ||||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> |       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||||
|       <SubSystem>Windows</SubSystem> |       <SubSystem>Windows</SubSystem> | ||||||
|       <TargetMachine>MachineX86</TargetMachine> |       <TargetMachine>MachineX86</TargetMachine> | ||||||
|       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs> |       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;Wininet.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs> | ||||||
|     </Link> |     </Link> | ||||||
|     <ResourceCompile> |     <ResourceCompile> | ||||||
|       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|  | @ -162,12 +162,12 @@ | ||||||
|       <AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions> |       <AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;Wininet.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
|       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> | ||||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> |       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||||
|       <SubSystem>Windows</SubSystem> |       <SubSystem>Windows</SubSystem> | ||||||
|       <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories> |       <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories> | ||||||
|       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> |       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;Wininet.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> | ||||||
|     </Link> |     </Link> | ||||||
|     <ResourceCompile> |     <ResourceCompile> | ||||||
|       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|  | @ -193,12 +193,12 @@ | ||||||
|       <AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions> |       <AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;Wininet.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
|       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> | ||||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> |       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||||
|       <SubSystem>Windows</SubSystem> |       <SubSystem>Windows</SubSystem> | ||||||
|       <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories> |       <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories> | ||||||
|       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> |       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;Wininet.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> | ||||||
|     </Link> |     </Link> | ||||||
|     <ResourceCompile> |     <ResourceCompile> | ||||||
|       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|  | @ -229,12 +229,12 @@ | ||||||
|       <AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions> |       <AdditionalOptions>/utf-8 $(ExternalCompilerOptions) %(AdditionalOptions)</AdditionalOptions> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;Wininet.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
|       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> | ||||||
|       <GenerateDebugInformation>true</GenerateDebugInformation> |       <GenerateDebugInformation>true</GenerateDebugInformation> | ||||||
|       <SubSystem>Windows</SubSystem> |       <SubSystem>Windows</SubSystem> | ||||||
|       <TargetMachine>MachineX64</TargetMachine> |       <TargetMachine>MachineX64</TargetMachine> | ||||||
|       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs> |       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;Wininet.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs> | ||||||
|     </Link> |     </Link> | ||||||
|     <ResourceCompile> |     <ResourceCompile> | ||||||
|       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|  | @ -260,13 +260,13 @@ | ||||||
|       <StringPooling>true</StringPooling> |       <StringPooling>true</StringPooling> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;Wininet.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
|       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> | ||||||
|       <GenerateDebugInformation>false</GenerateDebugInformation> |       <GenerateDebugInformation>false</GenerateDebugInformation> | ||||||
|       <SubSystem>Windows</SubSystem> |       <SubSystem>Windows</SubSystem> | ||||||
|       <TargetMachine>MachineX86</TargetMachine> |       <TargetMachine>MachineX86</TargetMachine> | ||||||
|       <AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions> |       <AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions> | ||||||
|       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs> |       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;Wininet.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs> | ||||||
|     </Link> |     </Link> | ||||||
|     <ResourceCompile> |     <ResourceCompile> | ||||||
|       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|  | @ -292,13 +292,13 @@ | ||||||
|       <StringPooling>true</StringPooling> |       <StringPooling>true</StringPooling> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;Wininet.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
|       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> | ||||||
|       <GenerateDebugInformation>false</GenerateDebugInformation> |       <GenerateDebugInformation>false</GenerateDebugInformation> | ||||||
|       <SubSystem>Windows</SubSystem> |       <SubSystem>Windows</SubSystem> | ||||||
|       <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories> |       <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\arm</AdditionalLibraryDirectories> | ||||||
|       <AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions> |       <AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions> | ||||||
|       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> |       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;Wininet.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> | ||||||
|     </Link> |     </Link> | ||||||
|     <ResourceCompile> |     <ResourceCompile> | ||||||
|       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|  | @ -326,13 +326,13 @@ | ||||||
|       <StringPooling>true</StringPooling> |       <StringPooling>true</StringPooling> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;Wininet.lib;wintrust.lib;ole32.lib;advapi32.lib;gdi32.lib;shell32.lib;comdlg32.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
|       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> | ||||||
|       <GenerateDebugInformation>false</GenerateDebugInformation> |       <GenerateDebugInformation>false</GenerateDebugInformation> | ||||||
|       <SubSystem>Windows</SubSystem> |       <SubSystem>Windows</SubSystem> | ||||||
|       <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories> |       <AdditionalLibraryDirectories>C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\um\arm64</AdditionalLibraryDirectories> | ||||||
|       <AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions> |       <AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions> | ||||||
|       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> |       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;Wininet.dll;wintrust.dll;ole32.dll;advapi32.dll;gdi32.dll;shell32.dll;comdlg32.dll;%(DelayLoadDLLs)</DelayLoadDLLs> | ||||||
|     </Link> |     </Link> | ||||||
|     <ResourceCompile> |     <ResourceCompile> | ||||||
|       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|  | @ -363,13 +363,13 @@ | ||||||
|       <StringPooling>true</StringPooling> |       <StringPooling>true</StringPooling> | ||||||
|     </ClCompile> |     </ClCompile> | ||||||
|     <Link> |     <Link> | ||||||
|       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies> |       <AdditionalDependencies>advapi32.lib;comctl32.lib;crypt32.lib;gdi32.lib;ole32.lib;dwmapi.lib;setupapi.lib;shell32.lib;shlwapi.lib;version.lib;Wininet.lib;wintrust.lib;%(AdditionalDependencies)</AdditionalDependencies> | ||||||
|       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> |       <UACExecutionLevel>RequireAdministrator</UACExecutionLevel> | ||||||
|       <GenerateDebugInformation>false</GenerateDebugInformation> |       <GenerateDebugInformation>false</GenerateDebugInformation> | ||||||
|       <SubSystem>Windows</SubSystem> |       <SubSystem>Windows</SubSystem> | ||||||
|       <TargetMachine>MachineX64</TargetMachine> |       <TargetMachine>MachineX64</TargetMachine> | ||||||
|       <AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions> |       <AdditionalOptions>/BREPRO %(AdditionalOptions)</AdditionalOptions> | ||||||
|       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs> |       <DelayLoadDLLs>advapi32.dll;comctl32.dll;crypt32.dll;gdi32.dll;ole32.dll;dwmapi.dll;setupapi.dll;shell32.dll;shlwapi.dll;version.dll;Wininet.dll;wintrust.dll;%(DelayLoadDLLs)</DelayLoadDLLs> | ||||||
|     </Link> |     </Link> | ||||||
|     <ResourceCompile> |     <ResourceCompile> | ||||||
|       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> |       <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions> | ||||||
|  |  | ||||||
|  | @ -179,6 +179,9 @@ | ||||||
| 	<ClInclude Include="..\src\winio.h"> | 	<ClInclude Include="..\src\winio.h"> | ||||||
|       <Filter>Header Files</Filter> |       <Filter>Header Files</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|  |     <ClInclude Include="..\src\fix_winnt.h"> | ||||||
|  |       <Filter>Header Files</Filter> | ||||||
|  |     </ClInclude> | ||||||
|     <ClInclude Include="..\src\re.h"> |     <ClInclude Include="..\src\re.h"> | ||||||
|       <Filter>Header Files</Filter> |       <Filter>Header Files</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|  |  | ||||||
|  | @ -5,7 +5,7 @@ NONVULNERABLE_LIBS = -lsetupapi -lole32 -lgdi32 -lshlwapi -lcrypt32 -lcomctl32 - | ||||||
| # Ideally there would also be virtdisk and wininet as delaylib's below, but the MinGW folks haven't quite sorted out delay-loading | # Ideally there would also be virtdisk and wininet as delaylib's below, but the MinGW folks haven't quite sorted out delay-loading | ||||||
| # for x86_32 so as soon as you try to call APIs from these, the application will crash! | # for x86_32 so as soon as you try to call APIs from these, the application will crash! | ||||||
| # See https://github.com/pbatard/rufus/issues/1877#issuecomment-1109683039 as well as https://github.com/pbatard/rufus/issues/2272 | # See https://github.com/pbatard/rufus/issues/1877#issuecomment-1109683039 as well as https://github.com/pbatard/rufus/issues/2272 | ||||||
| VULNERABLE_LIBS = -ldwmapi-delaylib -lversion-delaylib -lwintrust-delaylib | VULNERABLE_LIBS = -ldwmapi-delaylib -lversion-delaylib -lwininet-delaylib -lwintrust-delaylib | ||||||
| 
 | 
 | ||||||
| noinst_PROGRAMS = rufus | noinst_PROGRAMS = rufus | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -280,7 +280,7 @@ NONVULNERABLE_LIBS = -lsetupapi -lole32 -lgdi32 -lshlwapi -lcrypt32 -lcomctl32 - | ||||||
| # Ideally there would also be virtdisk and wininet as delaylib's below, but the MinGW folks haven't quite sorted out delay-loading
 | # Ideally there would also be virtdisk and wininet as delaylib's below, but the MinGW folks haven't quite sorted out delay-loading
 | ||||||
| # for x86_32 so as soon as you try to call APIs from these, the application will crash!
 | # for x86_32 so as soon as you try to call APIs from these, the application will crash!
 | ||||||
| # See https://github.com/pbatard/rufus/issues/1877#issuecomment-1109683039 as well as https://github.com/pbatard/rufus/issues/2272
 | # See https://github.com/pbatard/rufus/issues/1877#issuecomment-1109683039 as well as https://github.com/pbatard/rufus/issues/2272
 | ||||||
| VULNERABLE_LIBS = -ldwmapi-delaylib -lversion-delaylib -lwintrust-delaylib | VULNERABLE_LIBS = -ldwmapi-delaylib -lversion-delaylib -lwininet-delaylib -lwintrust-delaylib | ||||||
| AM_V_WINDRES_0 = @echo "  RC     $@";$(WINDRES) | AM_V_WINDRES_0 = @echo "  RC     $@";$(WINDRES) | ||||||
| AM_V_WINDRES_1 = $(WINDRES) | AM_V_WINDRES_1 = $(WINDRES) | ||||||
| AM_V_WINDRES_ = $(AM_V_WINDRES_$(AM_DEFAULT_VERBOSITY)) | AM_V_WINDRES_ = $(AM_V_WINDRES_$(AM_DEFAULT_VERBOSITY)) | ||||||
|  |  | ||||||
							
								
								
									
										15
									
								
								src/fix_winnt.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/fix_winnt.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | ||||||
|  | #ifdef DECLSPEC_IMPORT | ||||||
|  | #undef DECLSPEC_IMPORT | ||||||
|  | #endif  | ||||||
|  | 
 | ||||||
|  | #ifndef DECLSPEC_IMPORT | ||||||
|  | #if (defined (__i386__) || defined (__ia64__) || defined (__x86_64__) || defined (__arm__) || defined(__aarch64__)) && !defined (__WIDL__) | ||||||
|  | #ifdef __GNUC__ | ||||||
|  | #define DECLSPEC_IMPORT __attribute__((visibility ("hidden"))) | ||||||
|  | #else | ||||||
|  | #define DECLSPEC_IMPORT __declspec(dllimport) | ||||||
|  | #endif | ||||||
|  | #else | ||||||
|  | #define DECLSPEC_IMPORT | ||||||
|  | #endif | ||||||
|  | #endif | ||||||
							
								
								
									
										136
									
								
								src/net.c
									
										
									
									
									
								
							
							
						
						
									
										136
									
								
								src/net.c
									
										
									
									
									
								
							|  | @ -24,6 +24,7 @@ | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #include <windows.h> | #include <windows.h> | ||||||
|  | #include"fix_winnt.h" | ||||||
| #include <wininet.h> | #include <wininet.h> | ||||||
| #include <netlistmgr.h> | #include <netlistmgr.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
|  | @ -32,14 +33,12 @@ | ||||||
| #include <inttypes.h> | #include <inttypes.h> | ||||||
| #include <assert.h> | #include <assert.h> | ||||||
| #include <virtdisk.h> | #include <virtdisk.h> | ||||||
| 
 |  | ||||||
| #include "rufus.h" | #include "rufus.h" | ||||||
| #include "missing.h" | #include "missing.h" | ||||||
| #include "resource.h" | #include "resource.h" | ||||||
| #include "msapi_utf8.h" | #include "msapi_utf8.h" | ||||||
| #include "localization.h" | #include "localization.h" | ||||||
| #include "bled/bled.h" | #include "bled/bled.h" | ||||||
| 
 |  | ||||||
| #include "settings.h" | #include "settings.h" | ||||||
| 
 | 
 | ||||||
| /* Maximum download chunk size, in bytes */ | /* Maximum download chunk size, in bytes */ | ||||||
|  | @ -113,14 +112,6 @@ static HINTERNET GetInternetSession(const char* user_agent, BOOL bRetry) | ||||||
| 	HINTERNET hSession = NULL; | 	HINTERNET hSession = NULL; | ||||||
| 	HRESULT hr = S_FALSE; | 	HRESULT hr = S_FALSE; | ||||||
| 	INetworkListManager* pNetworkListManager; | 	INetworkListManager* pNetworkListManager; | ||||||
| 
 |  | ||||||
| 	PF_TYPE_DECL(WINAPI, HINTERNET, InternetOpenA, (LPCSTR, DWORD, LPCSTR, LPCSTR, DWORD)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, InternetSetOptionA, (HINTERNET, DWORD, LPVOID, DWORD)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, InternetGetConnectedState, (LPDWORD, DWORD)); |  | ||||||
| 	PF_INIT_OR_OUT(InternetOpenA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(InternetSetOptionA, WinInet); |  | ||||||
| 	PF_INIT(InternetGetConnectedState, WinInet); |  | ||||||
| 
 |  | ||||||
| 	// Create a NetworkListManager Instance to check the network connection
 | 	// Create a NetworkListManager Instance to check the network connection
 | ||||||
| 	IGNORE_RETVAL(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)); | 	IGNORE_RETVAL(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)); | ||||||
| 	hr = CoCreateInstance(&CLSID_NetworkListManager, NULL, CLSCTX_ALL, | 	hr = CoCreateInstance(&CLSID_NetworkListManager, NULL, CLSCTX_ALL, | ||||||
|  | @ -131,8 +122,8 @@ static HINTERNET GetInternetSession(const char* user_agent, BOOL bRetry) | ||||||
| 			// INetworkListManager may fail with ERROR_SERVICE_DEPENDENCY_FAIL if the DHCP service
 | 			// INetworkListManager may fail with ERROR_SERVICE_DEPENDENCY_FAIL if the DHCP service
 | ||||||
| 			// is not running, in which case we must fall back to using InternetGetConnectedState().
 | 			// is not running, in which case we must fall back to using InternetGetConnectedState().
 | ||||||
| 			// See https://github.com/pbatard/rufus/issues/1801.
 | 			// See https://github.com/pbatard/rufus/issues/1801.
 | ||||||
| 			if ((hr == HRESULT_FROM_WIN32(ERROR_SERVICE_DEPENDENCY_FAIL)) && (pfInternetGetConnectedState != NULL)) { | 			if (hr == HRESULT_FROM_WIN32(ERROR_SERVICE_DEPENDENCY_FAIL)) { | ||||||
| 				InternetConnection = pfInternetGetConnectedState(&dwFlags, 0) ? VARIANT_TRUE : VARIANT_FALSE; | 				InternetConnection = InternetGetConnectedState(&dwFlags, 0) ? VARIANT_TRUE : VARIANT_FALSE; | ||||||
| 				break; | 				break; | ||||||
| 			} | 			} | ||||||
| 			if (hr == S_OK || !bRetry) | 			if (hr == S_OK || !bRetry) | ||||||
|  | @ -147,16 +138,16 @@ static HINTERNET GetInternetSession(const char* user_agent, BOOL bRetry) | ||||||
| 	static_sprintf(default_agent, APPLICATION_NAME "/%d.%d.%d (Windows NT %lu.%lu%s)", | 	static_sprintf(default_agent, APPLICATION_NAME "/%d.%d.%d (Windows NT %lu.%lu%s)", | ||||||
| 		rufus_version[0], rufus_version[1], rufus_version[2], | 		rufus_version[0], rufus_version[1], rufus_version[2], | ||||||
| 		WindowsVersion.Major, WindowsVersion.Minor, is_WOW64() ? "; WOW64" : ""); | 		WindowsVersion.Major, WindowsVersion.Minor, is_WOW64() ? "; WOW64" : ""); | ||||||
| 	hSession = pfInternetOpenA((user_agent == NULL) ? default_agent : user_agent, | 	hSession = InternetOpenA((user_agent == NULL) ? default_agent : user_agent, | ||||||
| 		INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); | 		INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); | ||||||
| 	// Set the timeouts
 | 	// Set the timeouts
 | ||||||
| 	pfInternetSetOptionA(hSession, INTERNET_OPTION_CONNECT_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout)); | 	InternetSetOptionA(hSession, INTERNET_OPTION_CONNECT_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout)); | ||||||
| 	pfInternetSetOptionA(hSession, INTERNET_OPTION_SEND_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout)); | 	InternetSetOptionA(hSession, INTERNET_OPTION_SEND_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout)); | ||||||
| 	pfInternetSetOptionA(hSession, INTERNET_OPTION_RECEIVE_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout)); | 	InternetSetOptionA(hSession, INTERNET_OPTION_RECEIVE_TIMEOUT, (LPVOID)&dwTimeout, sizeof(dwTimeout)); | ||||||
| 	// Enable gzip and deflate decoding schemes
 | 	// Enable gzip and deflate decoding schemes
 | ||||||
| 	pfInternetSetOptionA(hSession, INTERNET_OPTION_HTTP_DECODING, (LPVOID)&decodingSupport, sizeof(decodingSupport)); | 	InternetSetOptionA(hSession, INTERNET_OPTION_HTTP_DECODING, (LPVOID)&decodingSupport, sizeof(decodingSupport)); | ||||||
| 	// Enable HTTP/2 protocol support
 | 	// Enable HTTP/2 protocol support
 | ||||||
| 	pfInternetSetOptionA(hSession, INTERNET_OPTION_ENABLE_HTTP_PROTOCOL, (LPVOID)&dwProtocolSupport, sizeof(dwProtocolSupport)); | 	InternetSetOptionA(hSession, INTERNET_OPTION_ENABLE_HTTP_PROTOCOL, (LPVOID)&dwProtocolSupport, sizeof(dwProtocolSupport)); | ||||||
| 
 | 
 | ||||||
| out: | out: | ||||||
| 	return hSession; | 	return hSession; | ||||||
|  | @ -187,23 +178,6 @@ uint64_t DownloadToFileOrBufferEx(const char* url, const char* file, const char* | ||||||
| 		hostname, sizeof(hostname), 0, NULL, 1, urlpath, sizeof(urlpath), NULL, 1}; | 		hostname, sizeof(hostname), 0, NULL, 1, urlpath, sizeof(urlpath), NULL, 1}; | ||||||
| 	uint64_t size = 0, total_size = 0; | 	uint64_t size = 0, total_size = 0; | ||||||
| 	 | 	 | ||||||
| 	// Can't link with wininet.lib because of sideloading issues
 |  | ||||||
| 	// And we can't delay-load wininet.dll with MinGW either because the application simply exits on startup...
 |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, InternetCrackUrlA, (LPCSTR, DWORD, DWORD, LPURL_COMPONENTSA)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, HINTERNET, InternetConnectA, (HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, InternetReadFile, (HINTERNET, LPVOID, DWORD, LPDWORD)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, InternetCloseHandle, (HINTERNET)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, HINTERNET, HttpOpenRequestA, (HINTERNET, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR*, DWORD, DWORD_PTR)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, HttpSendRequestA, (HINTERNET, LPCSTR, DWORD, LPVOID, DWORD)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, HttpQueryInfoA, (HINTERNET, DWORD, LPVOID, LPDWORD, LPDWORD)); |  | ||||||
| 	PF_INIT_OR_OUT(InternetCrackUrlA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(InternetConnectA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(InternetReadFile, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(InternetCloseHandle, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(HttpOpenRequestA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(HttpSendRequestA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(HttpQueryInfoA, WinInet); |  | ||||||
| 
 |  | ||||||
| 	ErrorStatus = 0; | 	ErrorStatus = 0; | ||||||
| 	DownloadStatus = 404; | 	DownloadStatus = 404; | ||||||
| 	if (hProgressDialog != NULL) | 	if (hProgressDialog != NULL) | ||||||
|  | @ -220,7 +194,7 @@ uint64_t DownloadToFileOrBufferEx(const char* url, const char* file, const char* | ||||||
| 		uprintf("Downloading %s", url); | 		uprintf("Downloading %s", url); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if ( (!pfInternetCrackUrlA(url, (DWORD)safe_strlen(url), 0, &UrlParts)) | 	if ( (!InternetCrackUrlA(url, (DWORD)safe_strlen(url), 0, &UrlParts)) | ||||||
| 	  || (UrlParts.lpszHostName == NULL) || (UrlParts.lpszUrlPath == NULL)) { | 	  || (UrlParts.lpszHostName == NULL) || (UrlParts.lpszUrlPath == NULL)) { | ||||||
| 		uprintf("Unable to decode URL: %s", WindowsErrorString()); | 		uprintf("Unable to decode URL: %s", WindowsErrorString()); | ||||||
| 		goto out; | 		goto out; | ||||||
|  | @ -233,13 +207,13 @@ uint64_t DownloadToFileOrBufferEx(const char* url, const char* file, const char* | ||||||
| 		goto out; | 		goto out; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	hConnection = pfInternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL); | 	hConnection = InternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL); | ||||||
| 	if (hConnection == NULL) { | 	if (hConnection == NULL) { | ||||||
| 		uprintf("Could not connect to server %s:%d: %s", UrlParts.lpszHostName, UrlParts.nPort, WindowsErrorString()); | 		uprintf("Could not connect to server %s:%d: %s", UrlParts.lpszHostName, UrlParts.nPort, WindowsErrorString()); | ||||||
| 		goto out; | 		goto out; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	hRequest = pfHttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types, | 	hRequest = HttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types, | ||||||
| 		INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS | | 		INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS | | ||||||
| 		INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_UI | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_HYPERLINK | | 		INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_UI | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_HYPERLINK | | ||||||
| 		((UrlParts.nScheme==INTERNET_SCHEME_HTTPS)?INTERNET_FLAG_SECURE:0), (DWORD_PTR)NULL); | 		((UrlParts.nScheme==INTERNET_SCHEME_HTTPS)?INTERNET_FLAG_SECURE:0), (DWORD_PTR)NULL); | ||||||
|  | @ -248,14 +222,14 @@ uint64_t DownloadToFileOrBufferEx(const char* url, const char* file, const char* | ||||||
| 		goto out; | 		goto out; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (!pfHttpSendRequestA(hRequest, request_headers, -1L, NULL, 0)) { | 	if (!HttpSendRequestA(hRequest, request_headers, -1L, NULL, 0)) { | ||||||
| 		uprintf("Unable to send request: %s", WindowsErrorString()); | 		uprintf("Unable to send request: %s", WindowsErrorString()); | ||||||
| 		goto out; | 		goto out; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Get the file size
 | 	// Get the file size
 | ||||||
| 	dwSize = sizeof(DownloadStatus); | 	dwSize = sizeof(DownloadStatus); | ||||||
| 	pfHttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&DownloadStatus, &dwSize, NULL); | 	HttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&DownloadStatus, &dwSize, NULL); | ||||||
| 	if (DownloadStatus != 200) { | 	if (DownloadStatus != 200) { | ||||||
| 		error_code = ERROR_INTERNET_ITEM_NOT_FOUND; | 		error_code = ERROR_INTERNET_ITEM_NOT_FOUND; | ||||||
| 		SetLastError(RUFUS_ERROR(error_code)); | 		SetLastError(RUFUS_ERROR(error_code)); | ||||||
|  | @ -263,7 +237,7 @@ uint64_t DownloadToFileOrBufferEx(const char* url, const char* file, const char* | ||||||
| 		goto out; | 		goto out; | ||||||
| 	} | 	} | ||||||
| 	dwSize = sizeof(strsize); | 	dwSize = sizeof(strsize); | ||||||
| 	if (!pfHttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH, (LPVOID)strsize, &dwSize, NULL)) { | 	if (!HttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH, (LPVOID)strsize, &dwSize, NULL)) { | ||||||
| 		uprintf("Unable to retrieve file length: %s", WindowsErrorString()); | 		uprintf("Unable to retrieve file length: %s", WindowsErrorString()); | ||||||
| 		goto out; | 		goto out; | ||||||
| 	} | 	} | ||||||
|  | @ -302,7 +276,7 @@ uint64_t DownloadToFileOrBufferEx(const char* url, const char* file, const char* | ||||||
| 		// User may have cancelled the download
 | 		// User may have cancelled the download
 | ||||||
| 		if (IS_ERROR(ErrorStatus)) | 		if (IS_ERROR(ErrorStatus)) | ||||||
| 			goto out; | 			goto out; | ||||||
| 		if (!pfInternetReadFile(hRequest, buf, sizeof(buf), &dwDownloaded) || (dwDownloaded == 0)) | 		if (!InternetReadFile(hRequest, buf, sizeof(buf), &dwDownloaded) || (dwDownloaded == 0)) | ||||||
| 			break; | 			break; | ||||||
| 		if (hProgressDialog != NULL) | 		if (hProgressDialog != NULL) | ||||||
| 			UpdateProgressWithInfo(OP_NOOP, MSG_241, size, total_size); | 			UpdateProgressWithInfo(OP_NOOP, MSG_241, size, total_size); | ||||||
|  | @ -347,11 +321,11 @@ out: | ||||||
| 			safe_free(*buffer); | 			safe_free(*buffer); | ||||||
| 	} | 	} | ||||||
| 	if (hRequest) | 	if (hRequest) | ||||||
| 		pfInternetCloseHandle(hRequest); | 		InternetCloseHandle(hRequest); | ||||||
| 	if (hConnection) | 	if (hConnection) | ||||||
| 		pfInternetCloseHandle(hConnection); | 		InternetCloseHandle(hConnection); | ||||||
| 	if (hSession) | 	if (hSession) | ||||||
| 		pfInternetCloseHandle(hSession); | 		InternetCloseHandle(hSession); | ||||||
| 
 | 
 | ||||||
| 	SetLastError(error_code); | 	SetLastError(error_code); | ||||||
| 	return r ? size : 0; | 	return r ? size : 0; | ||||||
|  | @ -476,23 +450,6 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param) | ||||||
| 	SYSTEMTIME ServerTime, LocalTime; | 	SYSTEMTIME ServerTime, LocalTime; | ||||||
| 	FILETIME FileTime; | 	FILETIME FileTime; | ||||||
| 	int64_t local_time = 0, reg_time, server_time, update_interval; | 	int64_t local_time = 0, reg_time, server_time, update_interval; | ||||||
| 
 |  | ||||||
| 	// Can't link with wininet.lib because of sideloading issues
 |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, InternetCrackUrlA, (LPCSTR, DWORD, DWORD, LPURL_COMPONENTSA)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, HINTERNET, InternetConnectA, (HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, InternetReadFile, (HINTERNET, LPVOID, DWORD, LPDWORD)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, InternetCloseHandle, (HINTERNET)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, HINTERNET, HttpOpenRequestA, (HINTERNET, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR*, DWORD, DWORD_PTR)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, HttpSendRequestA, (HINTERNET, LPCSTR, DWORD, LPVOID, DWORD)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, HttpQueryInfoA, (HINTERNET, DWORD, LPVOID, LPDWORD, LPDWORD)); |  | ||||||
| 	PF_INIT_OR_OUT(InternetCrackUrlA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(InternetConnectA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(InternetReadFile, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(InternetCloseHandle, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(HttpOpenRequestA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(HttpSendRequestA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(HttpQueryInfoA, WinInet); |  | ||||||
| 
 |  | ||||||
| 	verbose = ReadSetting32(SETTING_VERBOSE_UPDATES); | 	verbose = ReadSetting32(SETTING_VERBOSE_UPDATES); | ||||||
| 	// Without this the FileDialog will produce error 0x8001010E when compiled for Vista or later
 | 	// Without this the FileDialog will produce error 0x8001010E when compiled for Vista or later
 | ||||||
| 	IGNORE_RETVAL(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)); | 	IGNORE_RETVAL(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)); | ||||||
|  | @ -530,7 +487,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param) | ||||||
| 	PrintInfoDebug(3000, MSG_243); | 	PrintInfoDebug(3000, MSG_243); | ||||||
| 	status++;	// 1
 | 	status++;	// 1
 | ||||||
| 
 | 
 | ||||||
| 	if (!pfInternetCrackUrlA(server_url, (DWORD)safe_strlen(server_url), 0, &UrlParts)) | 	if (!InternetCrackUrlA(server_url, (DWORD)safe_strlen(server_url), 0, &UrlParts)) | ||||||
| 		goto out; | 		goto out; | ||||||
| 	hostname[sizeof(hostname)-1] = 0; | 	hostname[sizeof(hostname)-1] = 0; | ||||||
| 
 | 
 | ||||||
|  | @ -540,7 +497,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param) | ||||||
| 	hSession = GetInternetSession(NULL, FALSE); | 	hSession = GetInternetSession(NULL, FALSE); | ||||||
| 	if (hSession == NULL) | 	if (hSession == NULL) | ||||||
| 		goto out; | 		goto out; | ||||||
| 	hConnection = pfInternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, | 	hConnection = InternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, | ||||||
| 		NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL); | 		NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL); | ||||||
| 	if (hConnection == NULL) | 	if (hConnection == NULL) | ||||||
| 		goto out; | 		goto out; | ||||||
|  | @ -582,11 +539,11 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param) | ||||||
| 		UrlParts.dwUrlPathLength = sizeof(urlpath); | 		UrlParts.dwUrlPathLength = sizeof(urlpath); | ||||||
| 		for (i=0; i<ARRAYSIZE(verpos); i++) { | 		for (i=0; i<ARRAYSIZE(verpos); i++) { | ||||||
| 			vvuprintf("Trying %s", UrlParts.lpszUrlPath); | 			vvuprintf("Trying %s", UrlParts.lpszUrlPath); | ||||||
| 			hRequest = pfHttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types, | 			hRequest = HttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types, | ||||||
| 				INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS| | 				INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP|INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS| | ||||||
| 				INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_UI|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_HYPERLINK| | 				INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_UI|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_HYPERLINK| | ||||||
| 				((UrlParts.nScheme == INTERNET_SCHEME_HTTPS)?INTERNET_FLAG_SECURE:0), (DWORD_PTR)NULL); | 				((UrlParts.nScheme == INTERNET_SCHEME_HTTPS)?INTERNET_FLAG_SECURE:0), (DWORD_PTR)NULL); | ||||||
| 			if ((hRequest == NULL) || (!pfHttpSendRequestA(hRequest, request_headers, -1L, NULL, 0))) { | 			if ((hRequest == NULL) || (!HttpSendRequestA(hRequest, request_headers, -1L, NULL, 0))) { | ||||||
| 				uprintf("Unable to send request: %s", WindowsErrorString()); | 				uprintf("Unable to send request: %s", WindowsErrorString()); | ||||||
| 				goto out; | 				goto out; | ||||||
| 			} | 			} | ||||||
|  | @ -594,10 +551,10 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param) | ||||||
| 			// Ensure that we get a text file
 | 			// Ensure that we get a text file
 | ||||||
| 			dwSize = sizeof(dwStatus); | 			dwSize = sizeof(dwStatus); | ||||||
| 			dwStatus = 404; | 			dwStatus = 404; | ||||||
| 			pfHttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwStatus, &dwSize, NULL); | 			HttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwStatus, &dwSize, NULL); | ||||||
| 			if (dwStatus == 200) | 			if (dwStatus == 200) | ||||||
| 				break; | 				break; | ||||||
| 			pfInternetCloseHandle(hRequest); | 			InternetCloseHandle(hRequest); | ||||||
| 			hRequest = NULL; | 			hRequest = NULL; | ||||||
| 			safe_strcpy(&urlpath[verpos[i]], 5, ".ver"); | 			safe_strcpy(&urlpath[verpos[i]], 5, ".ver"); | ||||||
| 		} | 		} | ||||||
|  | @ -614,7 +571,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param) | ||||||
| 		// On the other hand, if local clock is set way back in the past, we will never check.
 | 		// On the other hand, if local clock is set way back in the past, we will never check.
 | ||||||
| 		dwSize = sizeof(ServerTime); | 		dwSize = sizeof(ServerTime); | ||||||
| 		// If we can't get a date we can trust, don't bother...
 | 		// If we can't get a date we can trust, don't bother...
 | ||||||
| 		if ( (!pfHttpQueryInfoA(hRequest, HTTP_QUERY_DATE|HTTP_QUERY_FLAG_SYSTEMTIME, (LPVOID)&ServerTime, &dwSize, NULL)) | 		if ( (!HttpQueryInfoA(hRequest, HTTP_QUERY_DATE|HTTP_QUERY_FLAG_SYSTEMTIME, (LPVOID)&ServerTime, &dwSize, NULL)) | ||||||
| 			|| (!SystemTimeToFileTime(&ServerTime, &FileTime)) ) | 			|| (!SystemTimeToFileTime(&ServerTime, &FileTime)) ) | ||||||
| 			goto out; | 			goto out; | ||||||
| 		server_time = ((((int64_t)FileTime.dwHighDateTime) << 32) + FileTime.dwLowDateTime) / 10000000; | 		server_time = ((((int64_t)FileTime.dwHighDateTime) << 32) + FileTime.dwLowDateTime) / 10000000; | ||||||
|  | @ -631,7 +588,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		dwSize = sizeof(dwTotalSize); | 		dwSize = sizeof(dwTotalSize); | ||||||
| 		if (!pfHttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwTotalSize, &dwSize, NULL)) | 		if (!HttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH|HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwTotalSize, &dwSize, NULL)) | ||||||
| 			goto out; | 			goto out; | ||||||
| 
 | 
 | ||||||
| 		// Make sure the file is NUL terminated
 | 		// Make sure the file is NUL terminated
 | ||||||
|  | @ -639,7 +596,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param) | ||||||
| 		if (buf == NULL) | 		if (buf == NULL) | ||||||
| 			goto out; | 			goto out; | ||||||
| 		// This is a version file - we should be able to gulp it down in one go
 | 		// This is a version file - we should be able to gulp it down in one go
 | ||||||
| 		if (!pfInternetReadFile(hRequest, buf, dwTotalSize, &dwDownloaded) || (dwDownloaded != dwTotalSize)) | 		if (!InternetReadFile(hRequest, buf, dwTotalSize, &dwDownloaded) || (dwDownloaded != dwTotalSize)) | ||||||
| 			goto out; | 			goto out; | ||||||
| 		vuprintf("Successfully downloaded version file (%d bytes)", dwTotalSize); | 		vuprintf("Successfully downloaded version file (%d bytes)", dwTotalSize); | ||||||
| 
 | 
 | ||||||
|  | @ -670,11 +627,11 @@ out: | ||||||
| 	safe_free(buf); | 	safe_free(buf); | ||||||
| 	safe_free(sig); | 	safe_free(sig); | ||||||
| 	if (hRequest) | 	if (hRequest) | ||||||
| 		pfInternetCloseHandle(hRequest); | 		InternetCloseHandle(hRequest); | ||||||
| 	if (hConnection) | 	if (hConnection) | ||||||
| 		pfInternetCloseHandle(hConnection); | 		InternetCloseHandle(hConnection); | ||||||
| 	if (hSession) | 	if (hSession) | ||||||
| 		pfInternetCloseHandle(hSession); | 		InternetCloseHandle(hSession); | ||||||
| 	switch (status) { | 	switch (status) { | ||||||
| 	case 1: | 	case 1: | ||||||
| 		PrintInfoDebug(3000, MSG_244); | 		PrintInfoDebug(3000, MSG_244); | ||||||
|  | @ -933,26 +890,13 @@ BOOL IsDownloadable(const char* url) | ||||||
| 	URL_COMPONENTSA UrlParts = { sizeof(URL_COMPONENTSA), NULL, 1, (INTERNET_SCHEME)0, | 	URL_COMPONENTSA UrlParts = { sizeof(URL_COMPONENTSA), NULL, 1, (INTERNET_SCHEME)0, | ||||||
| 		hostname, sizeof(hostname), 0, NULL, 1, urlpath, sizeof(urlpath), NULL, 1 }; | 		hostname, sizeof(hostname), 0, NULL, 1, urlpath, sizeof(urlpath), NULL, 1 }; | ||||||
| 
 | 
 | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, InternetCrackUrlA, (LPCSTR, DWORD, DWORD, LPURL_COMPONENTSA)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, HINTERNET, InternetConnectA, (HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD, DWORD, DWORD_PTR)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, InternetCloseHandle, (HINTERNET)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, HINTERNET, HttpOpenRequestA, (HINTERNET, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR*, DWORD, DWORD_PTR)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, HttpSendRequestA, (HINTERNET, LPCSTR, DWORD, LPVOID, DWORD)); |  | ||||||
| 	PF_TYPE_DECL(WINAPI, BOOL, HttpQueryInfoA, (HINTERNET, DWORD, LPVOID, LPDWORD, LPDWORD)); |  | ||||||
| 	PF_INIT_OR_OUT(InternetCrackUrlA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(InternetConnectA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(InternetCloseHandle, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(HttpOpenRequestA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(HttpSendRequestA, WinInet); |  | ||||||
| 	PF_INIT_OR_OUT(HttpQueryInfoA, WinInet); |  | ||||||
| 
 |  | ||||||
| 	if (url == NULL) | 	if (url == NULL) | ||||||
| 		return FALSE; | 		return FALSE; | ||||||
| 
 | 
 | ||||||
| 	ErrorStatus = 0; | 	ErrorStatus = 0; | ||||||
| 	DownloadStatus = 404; | 	DownloadStatus = 404; | ||||||
| 
 | 
 | ||||||
| 	if ((!pfInternetCrackUrlA(url, (DWORD)safe_strlen(url), 0, &UrlParts)) | 	if ((!InternetCrackUrlA(url, (DWORD)safe_strlen(url), 0, &UrlParts)) | ||||||
| 		|| (UrlParts.lpszHostName == NULL) || (UrlParts.lpszUrlPath == NULL)) | 		|| (UrlParts.lpszHostName == NULL) || (UrlParts.lpszUrlPath == NULL)) | ||||||
| 		goto out; | 		goto out; | ||||||
| 	hostname[sizeof(hostname) - 1] = 0; | 	hostname[sizeof(hostname) - 1] = 0; | ||||||
|  | @ -962,35 +906,35 @@ BOOL IsDownloadable(const char* url) | ||||||
| 	if (hSession == NULL) | 	if (hSession == NULL) | ||||||
| 		goto out; | 		goto out; | ||||||
| 
 | 
 | ||||||
| 	hConnection = pfInternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL); | 	hConnection = InternetConnectA(hSession, UrlParts.lpszHostName, UrlParts.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD_PTR)NULL); | ||||||
| 	if (hConnection == NULL) | 	if (hConnection == NULL) | ||||||
| 		goto out; | 		goto out; | ||||||
| 
 | 
 | ||||||
| 	hRequest = pfHttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types, | 	hRequest = HttpOpenRequestA(hConnection, "GET", UrlParts.lpszUrlPath, NULL, NULL, accept_types, | ||||||
| 		INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS | | 		INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS | | ||||||
| 		INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_UI | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_HYPERLINK | | 		INTERNET_FLAG_NO_COOKIES | INTERNET_FLAG_NO_UI | INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_HYPERLINK | | ||||||
| 		((UrlParts.nScheme == INTERNET_SCHEME_HTTPS) ? INTERNET_FLAG_SECURE : 0), (DWORD_PTR)NULL); | 		((UrlParts.nScheme == INTERNET_SCHEME_HTTPS) ? INTERNET_FLAG_SECURE : 0), (DWORD_PTR)NULL); | ||||||
| 	if (hRequest == NULL) | 	if (hRequest == NULL) | ||||||
| 		goto out; | 		goto out; | ||||||
| 
 | 
 | ||||||
| 	if (!pfHttpSendRequestA(hRequest, request_headers, -1L, NULL, 0)) | 	if (!HttpSendRequestA(hRequest, request_headers, -1L, NULL, 0)) | ||||||
| 		goto out; | 		goto out; | ||||||
| 
 | 
 | ||||||
| 	// Get the file size
 | 	// Get the file size
 | ||||||
| 	dwSize = sizeof(DownloadStatus); | 	dwSize = sizeof(DownloadStatus); | ||||||
| 	pfHttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, (LPVOID)&DownloadStatus, &dwSize, NULL); | 	HttpQueryInfoA(hRequest, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, (LPVOID)&DownloadStatus, &dwSize, NULL); | ||||||
| 	if (DownloadStatus != 200) | 	if (DownloadStatus != 200) | ||||||
| 		goto out; | 		goto out; | ||||||
| 	dwSize = sizeof(dwTotalSize); | 	dwSize = sizeof(dwTotalSize); | ||||||
| 	pfHttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwTotalSize, &dwSize, NULL); | 	HttpQueryInfoA(hRequest, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, (LPVOID)&dwTotalSize, &dwSize, NULL); | ||||||
| 
 | 
 | ||||||
| out: | out: | ||||||
| 	if (hRequest) | 	if (hRequest) | ||||||
| 		pfInternetCloseHandle(hRequest); | 		InternetCloseHandle(hRequest); | ||||||
| 	if (hConnection) | 	if (hConnection) | ||||||
| 		pfInternetCloseHandle(hConnection); | 		InternetCloseHandle(hConnection); | ||||||
| 	if (hSession) | 	if (hSession) | ||||||
| 		pfInternetCloseHandle(hSession); | 		InternetCloseHandle(hSession); | ||||||
| 
 | 
 | ||||||
| 	return (dwTotalSize > 0); | 	return (dwTotalSize > 0); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -29,6 +29,12 @@ | ||||||
| #define _Static_assert static_assert | #define _Static_assert static_assert | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | // Disable some GCC Code warnings
 | ||||||
|  | #ifdef __GNUC__ | ||||||
|  | #pragma GCC diagnostic ignored "-Wint-to-pointer-cast" | ||||||
|  | #endif  | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| /* Convenient to have around */ | /* Convenient to have around */ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue