wininet: Use correct scheme for cache entries.
diff --git a/dlls/wininet/http.c b/dlls/wininet/http.c
index ae45b08..0467860 100644
--- a/dlls/wininet/http.c
+++ b/dlls/wininet/http.c
@@ -1533,15 +1533,25 @@
static BOOL HTTP_GetRequestURL(http_request_t *req, LPWSTR buf)
{
+ static const WCHAR http[] = { 'h','t','t','p',':','/','/',0 };
+ static const WCHAR https[] = { 'h','t','t','p','s',':','/','/',0 };
+ static const WCHAR slash[] = { '/',0 };
LPHTTPHEADERW host_header;
-
- static const WCHAR formatW[] = {'h','t','t','p',':','/','/','%','s','%','s',0};
+ LPCWSTR scheme;
host_header = HTTP_GetHeader(req, hostW);
if(!host_header)
return FALSE;
- sprintfW(buf, formatW, host_header->lpszValue, req->path); /* FIXME */
+ if (req->hdr.dwFlags & INTERNET_FLAG_SECURE)
+ scheme = https;
+ else
+ scheme = http;
+ strcpyW(buf, scheme);
+ strcatW(buf, host_header->lpszValue);
+ if (req->path[0] != '/')
+ strcatW(buf, slash);
+ strcatW(buf, req->path);
return TRUE;
}