Skip to content

Commit e82bc44

Browse files
committed
Added: Check for SSL error inside _WinHttpSimpleSendSSLRequest. In such cases TLS is forced.
1 parent ccbf344 commit e82bc44

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

WinHttp.au3

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1795,7 +1795,13 @@ Func _WinHttpSimpleSendSSLRequest($hConnect, $sType = Default, $sPath = Default,
17951795
_WinHttpSetOption($hRequest, $WINHTTP_OPTION_REDIRECT_POLICY, $WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS)
17961796
_WinHttpSetOption(_WinHttpQueryOption(_WinHttpQueryOption($hRequest, $WINHTTP_OPTION_PARENT_HANDLE), $WINHTTP_OPTION_PARENT_HANDLE), $WINHTTP_OPTION_SECURE_PROTOCOLS, BitOR($WINHTTP_FLAG_SECURE_PROTOCOL_ALL, $WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1, $WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2))
17971797
_WinHttpSendRequest($hRequest, $sHeader, $sDta)
1798-
If @error Then Return SetError(2, 0 * _WinHttpCloseHandle($hRequest), 0)
1798+
If @error Then
1799+
If __WinHttpGetLastError() = $ERROR_WINHTTP_SECURE_FAILURE Then
1800+
_WinHttpSetOption(_WinHttpQueryOption(_WinHttpQueryOption($hRequest, $WINHTTP_OPTION_PARENT_HANDLE), $WINHTTP_OPTION_PARENT_HANDLE), $WINHTTP_OPTION_SECURE_PROTOCOLS, BitOR($WINHTTP_FLAG_SECURE_PROTOCOL_TLS1, $WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1, $WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2))
1801+
_WinHttpSendRequest($hRequest, $sHeader, $sDta)
1802+
If @error Then Return SetError(2, 0 * _WinHttpCloseHandle($hRequest), 0)
1803+
EndIf
1804+
EndIf
17991805
_WinHttpReceiveResponse($hRequest)
18001806
If @error Then Return SetError(3, 0 * _WinHttpCloseHandle($hRequest), 0)
18011807
Return $hRequest
@@ -2417,6 +2423,12 @@ Func __WinHttpPtrStringLenW($pStr)
24172423
Return $aCall[0]
24182424
EndFunc
24192425

2426+
Func __WinHttpGetLastError()
2427+
Local $aCall = DllCall("kernel32.dll", "dword", "GetLastError")
2428+
If @error Then Return SetError(1, 0, 0)
2429+
Return $aCall[0]
2430+
EndFunc
2431+
24202432
Func __WinHttpUA()
24212433
Local Static $sUA = "Mozilla/5.0 " & __WinHttpSysInfo() & " WinHttp/" & __WinHttpVer() & " (WinHTTP/5.1) like Gecko"
24222434
Return $sUA

0 commit comments

Comments
 (0)