From: Andrew Nguyen arethusa26@gmail.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56875 --- dlls/wininet/http.c | 10 +++++++--- dlls/wininet/tests/http.c | 2 -- 2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index c0f1e13bfa8..38f6575c1fd 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -4988,6 +4988,7 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders, WCHAR *request_header = NULL; INT responseLen, cnt; DWORD res; + const WCHAR *appinfo_agent;
TRACE("--> %p\n", request);
@@ -5005,14 +5006,17 @@ static DWORD HTTP_HttpSendRequestW(http_request_t *request, LPCWSTR lpszHeaders, set_content_length_header(request, dwContentLength, HTTP_ADDREQ_FLAG_ADD_IF_NEW); request->bytesToWrite = dwContentLength; } - if (request->session->appInfo->agent) + + appinfo_agent = request->session->appInfo->agent; + + if (appinfo_agent && *appinfo_agent) { WCHAR *agent_header; int len;
- len = lstrlenW(request->session->appInfo->agent) + lstrlenW(L"User-Agent: %s\r\n"); + len = lstrlenW(appinfo_agent) + lstrlenW(L"User-Agent: %s\r\n"); agent_header = malloc(len * sizeof(WCHAR)); - swprintf(agent_header, len, L"User-Agent: %s\r\n", request->session->appInfo->agent); + swprintf(agent_header, len, L"User-Agent: %s\r\n", appinfo_agent);
HTTP_HttpAddRequestHeadersW(request, agent_header, lstrlenW(agent_header), HTTP_ADDREQ_FLAG_ADD_IF_NEW); free(agent_header); diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c index 7e1a229a9d3..14c08e0c0ad 100644 --- a/dlls/wininet/tests/http.c +++ b/dlls/wininet/tests/http.c @@ -7549,9 +7549,7 @@ static void test_user_agent_header(void) SetLastError(0xdeadbeef); ret = HttpQueryInfoA(req, HTTP_QUERY_USER_AGENT | HTTP_QUERY_FLAG_REQUEST_HEADERS, buffer, &size, NULL); err = GetLastError(); - todo_wine ok(!ret, "HttpQueryInfo succeeded\n"); - todo_wine ok(err == ERROR_HTTP_HEADER_NOT_FOUND, "expected ERROR_HTTP_HEADER_NOT_FOUND, got %lu\n", err);
InternetCloseHandle(req);