diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c index 5b1bb22db80..62c3953cbe1 100644 --- a/dlls/wininet/http.c +++ b/dlls/wininet/http.c @@ -73,6 +73,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(wininet); static const WCHAR g_szHttp1_0[] = {'H','T','T','P','/','1','.','0',0}; static const WCHAR g_szHttp1_1[] = {'H','T','T','P','/','1','.','1',0}; +static const WCHAR szOK[] = {'O','K',0}; +static const WCHAR szDefaultHeader[] = {'H','T','T','P','/','1','.','0',' ','2','0','0',' ','O','K',0}; static const WCHAR hostW[] = { 'H','o','s','t',0 }; static const WCHAR szAuthorization[] = { 'A','u','t','h','o','r','i','z','a','t','i','o','n',0 }; static const WCHAR szProxy_Authorization[] = { 'P','r','o','x','y','-','A','u','t','h','o','r','i','z','a','t','i','o','n',0 }; @@ -4474,7 +4476,18 @@ static INT HTTP_GetResponseHeaders(http_request_t *lpwhr, BOOL clear) } else if (!codeHundred) { - FIXME("Non status line at head of response (%s)\n",debugstr_w(buffer)); + WARN("No status line at head of response (%s)\n", debugstr_w(buffer)); + + HeapFree(GetProcessHeap(), 0, lpwhr->lpszVersion); + HeapFree(GetProcessHeap(), 0, lpwhr->lpszStatusText); + + lpwhr->lpszVersion = heap_strdupW(g_szHttp1_0); + lpwhr->lpszStatusText = heap_strdupW(szOK); + + HeapFree(GetProcessHeap(), 0, lpwhr->lpszRawHeaders); + lpwhr->lpszRawHeaders = heap_strdupW(szDefaultHeader); + + bSuccess = TRUE; goto lend; } } while (codeHundred); diff --git a/dlls/wininet/tests/http.c b/dlls/wininet/tests/http.c index 5d57549d383..0faeb54dc8a 100644 --- a/dlls/wininet/tests/http.c +++ b/dlls/wininet/tests/http.c @@ -2290,22 +2290,22 @@ static void test_response_without_headers(int port) size = sizeof(buffer); SetLastError(0xdeadbeef); r = HttpQueryInfo(hr, HTTP_QUERY_STATUS_TEXT, buffer, &size, NULL ); - todo_wine ok(r, "HttpQueryInfo failed %u\n", GetLastError()); - todo_wine ok(!strcmp(buffer, "OK"), "expected OK got: \"%s\"\n", buffer); + ok(r, "HttpQueryInfo failed %u\n", GetLastError()); + ok(!strcmp(buffer, "OK"), "expected OK got: \"%s\"\n", buffer); buffer[0] = 0; size = sizeof(buffer); SetLastError(0xdeadbeef); r = HttpQueryInfo(hr, HTTP_QUERY_VERSION, buffer, &size, NULL); ok(r, "HttpQueryInfo failed %u\n", GetLastError()); - todo_wine ok(!strcmp(buffer, "HTTP/1.0"), "expected HTTP/1.0 got: \"%s\"\n", buffer); + ok(!strcmp(buffer, "HTTP/1.0"), "expected HTTP/1.0 got: \"%s\"\n", buffer); buffer[0] = 0; size = sizeof(buffer); SetLastError(0xdeadbeef); r = HttpQueryInfo(hr, HTTP_QUERY_RAW_HEADERS, buffer, &size, NULL); ok(r, "HttpQueryInfo failed %u\n", GetLastError()); - todo_wine ok(!strcmp(buffer, "HTTP/1.0 200 OK"), "raw headers wrong: \"%s\"\n", buffer); + ok(!strcmp(buffer, "HTTP/1.0 200 OK"), "raw headers wrong: \"%s\"\n", buffer); InternetCloseHandle(hr); InternetCloseHandle(hc);