@@ -621,8 +621,6 @@ void NetworkWinHttp::RequestCallback(HINTERNET, DWORD_PTR context, DWORD status,
621621
622622 auto * handle = reinterpret_cast <RequestData*>(context);
623623
624- logging::ScopedLogContext scope (handle->log_context );
625-
626624 if (!handle->connection_data || !handle->result_data ) {
627625 OLP_SDK_LOG_WARNING (kLogTag , " RequestCallback to inactive handle, id="
628626 << handle->request_id );
@@ -633,6 +631,8 @@ void NetworkWinHttp::RequestCallback(HINTERNET, DWORD_PTR context, DWORD status,
633631 ResultData& request_result = *handle->result_data ;
634632 handle->connection_data ->last_used = GetTickCount64 ();
635633
634+ logging::ScopedLogContext scope (request_result.log_context );
635+
636636 if (status == WINHTTP_CALLBACK_STATUS_REQUEST_ERROR) {
637637 // Error has occurred
638638 auto * result = reinterpret_cast <WINHTTP_ASYNC_RESULT*>(status_info);
@@ -972,6 +972,9 @@ void NetworkWinHttp::CompletionThread() {
972972 // protect against multiple calls
973973 std::swap (result->user_callback , callback);
974974 }
975+
976+ logging::ScopedLogContext scope (result->log_context );
977+
975978 // must call outside lock to prevent deadlock
976979 callback (NetworkResponse ()
977980 .WithError (str)
@@ -1049,8 +1052,9 @@ NetworkWinHttp::RequestData* NetworkWinHttp::FindHandle(RequestId id) {
10491052 return nullptr ;
10501053}
10511054
1052- NetworkWinHttp::ResultData::ResultData (RequestId id, Callback callback,
1053- std::shared_ptr<std::ostream> payload)
1055+ NetworkWinHttp::ResultData::ResultData (
1056+ RequestId id, Callback callback, std::shared_ptr<std::ostream> payload,
1057+ std::shared_ptr<const logging::LogContext> context)
10541058 : user_callback(std::move(callback)),
10551059 payload (std::move(payload)),
10561060 content_length(0 ),
@@ -1061,7 +1065,8 @@ NetworkWinHttp::ResultData::ResultData(RequestId id, Callback callback,
10611065 completed(false ),
10621066 error(false ),
10631067 bytes_uploaded(0 ),
1064- bytes_downloaded(0 ) {}
1068+ bytes_downloaded(0 ),
1069+ log_context(std::move(context)) {}
10651070
10661071NetworkWinHttp::ConnectionData::ConnectionData (HINTERNET http_connection)
10671072 : http_connection(http_connection) {}
@@ -1081,8 +1086,8 @@ NetworkWinHttp::RequestData::RequestData(
10811086 std::shared_ptr<const logging::LogContext> context)
10821087 : self(self),
10831088 connection_data (std::move(connection)),
1084- result_data(std::make_shared<ResultData>(id, std::move(callback),
1085- std::move(payload))),
1089+ result_data(std::make_shared<ResultData>(
1090+ id, std::move(callback), std::move(payload), std::move(context ))),
10861091 body(request.GetBody()),
10871092 header_callback(std::move(header_callback)),
10881093 data_callback(std::move(data_callback)),
@@ -1091,8 +1096,7 @@ NetworkWinHttp::RequestData::RequestData(
10911096 ignore_data(request.GetVerb() == NetworkRequest::HttpVerb::HEAD),
10921097 no_compression(false ),
10931098 uncompress(false ),
1094- in_use(false ),
1095- log_context(std::move(context)) {}
1099+ in_use(false ) {}
10961100
10971101NetworkWinHttp::RequestData::RequestData ()
10981102 : self(nullptr ),
0 commit comments