[PATCH #1] wininet: Added beginning support for HTTP cache files.
Robert Shearman
rob at codeweavers.com
Wed Feb 13 07:10:23 CST 2008
Jacek Caban wrote:
> + /* FIXME: Better check, when we have to create the cache file */
> + if(bSuccess && (lpwhr->hdr.dwFlags & INTERNET_FLAG_NEED_FILE)) {
> + WCHAR url[INTERNET_MAX_URL_LENGTH];
> + WCHAR cacheFileName[MAX_PATH+1];
> + BOOL b;
> +
> + b = HTTP_GetRequestURL(lpwhr, url);
> + if(!b) {
> + WARN("Could not get URL\n");
> + goto lend;
> + }
> +
> + b = CreateUrlCacheEntryW(url, lpwhr->dwContentLength > 0 ? lpwhr->dwContentLength : 0, NULL, cacheFileName, 0);
> + if(b) {
> + lpwhr->lpszCacheFile = WININET_strdupW(cacheFileName);
> + lpwhr->hCacheFile = CreateFileW(lpwhr->lpszCacheFile, GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
> + NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
> + if(lpwhr->hCacheFile == INVALID_HANDLE_VALUE) {
> + WARN("Could not create file: %u\n", GetLastError());
> + lpwhr->hCacheFile = NULL;
> + }
> + }else {
> + WARN("Could not create cache entry: %08x\n", GetLastError());
> + }
> + }
>
>
It may be beyond the scope of your patch, but you're creating the cache
file without committing the entry elsewhere so that it can be found at a
later time. According to MSDN, this should be done in HTTP_FinishedReading.
--
Rob Shearman
More information about the wine-devel
mailing list