Skip to content

Commit ac7ea91

Browse files
committed
update to test changes
1 parent 1e0d072 commit ac7ea91

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

src/aws-cpp-sdk-core/source/http/windows/WinHttpSyncHttpClient.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -641,8 +641,16 @@ uint64_t WinHttpSyncHttpClient::DoWriteData(void* hHttpRequest, char* streamBuff
641641

642642
uint64_t WinHttpSyncHttpClient::FinalizeWriteData(void* hHttpRequest) const
643643
{
644-
AWS_UNREFERENCED_PARAM(hHttpRequest);
645-
return 0;
644+
// For chunked requests, signal end of data by writing 0 bytes
645+
DWORD bytesWritten = 0;
646+
if (!WinHttpWriteData(hHttpRequest, NULL, 0, &bytesWritten))
647+
{
648+
DWORD lastError = GetLastError();
649+
AWS_LOGSTREAM_ERROR(GetLogTag(), "WinHttpWriteData finalize failed. Error: " << lastError << " (0x" << std::hex << lastError << std::dec << ")");
650+
AzWinHttpLogLastError("WinHttpWriteData-Finalize");
651+
return 0;
652+
}
653+
return bytesWritten;
646654
}
647655

648656
bool WinHttpSyncHttpClient::DoReceiveResponse(void* httpRequest) const
@@ -708,7 +716,7 @@ bool WinHttpSyncHttpClient::DoSendRequest(void* hHttpRequest) const
708716
bool WinHttpSyncHttpClient::DoSendRequest(void* hHttpRequest, const std::shared_ptr<HttpRequest>& request) const
709717
{
710718
// Check if this is a Transfer-Encoding: chunked request
711-
if (request->HasTransferEncoding() && request->GetTransferEncoding() == "chunked") {
719+
if (request->HasTransferEncoding() && request->GetTransferEncoding().find("chunked") != Aws::String::npos) {
712720
// For chunked requests, use WINHTTP_IGNORE_REQUEST_TOTAL_LENGTH
713721
bool success = WinHttpSendRequest(hHttpRequest, NULL, 0, NULL, 0, 0xFFFFFFFF, 0) != 0;
714722
if (!success)

src/aws-cpp-sdk-core/source/http/windows/WinINetSyncHttpClient.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ bool WinINetSyncHttpClient::DoSendRequest(void* hHttpRequest) const
219219
bool WinINetSyncHttpClient::DoSendRequest(void* hHttpRequest, const std::shared_ptr<HttpRequest>& request) const
220220
{
221221
// Check if this is a Transfer-Encoding: chunked request
222-
if (request->HasTransferEncoding() && request->GetTransferEncoding() == "chunked") {
222+
if (request->HasTransferEncoding() && request->GetTransferEncoding().find("chunked") != Aws::String::npos) {
223223
// For chunked encoding, use HttpSendRequestEx with unknown total length
224224
INTERNET_BUFFERSA buffers = {0};
225225
buffers.dwStructSize = sizeof(INTERNET_BUFFERSA);

src/aws-cpp-sdk-core/source/http/windows/WinSyncHttpClient.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,12 @@ bool WinSyncHttpClient::StreamPayloadToRequest(const std::shared_ptr<HttpRequest
144144
payloadStream->seekg(startingPos, payloadStream->beg);
145145
}
146146

147+
// For chunked requests, finalize the transfer
148+
if (success && request->HasTransferEncoding() && request->GetTransferEncoding().find("chunked") != Aws::String::npos)
149+
{
150+
FinalizeWriteData(hHttpRequest);
151+
}
152+
147153
if(success)
148154
{
149155
success = DoReceiveResponse(hHttpRequest);

0 commit comments

Comments
 (0)