wininet: Make GetUrlCacheConfigInfo() return actual dwQuota and dwCacheSize.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Dmitry Timoshkov 2019-01-28 09:49:09 +08:00 committed by Alexandre Julliard
parent 8a2347baff
commit ca29ac4650
1 changed files with 43 additions and 28 deletions

View File

@ -3762,33 +3762,10 @@ BOOL WINAPI SetUrlCacheEntryGroupW(LPCWSTR lpszUrlName, DWORD dwFlags,
return FALSE;
}
/***********************************************************************
* GetUrlCacheConfigInfoW (WININET.@)
*/
BOOL WINAPI GetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW info, LPDWORD size, DWORD flags)
static cache_container *find_container(DWORD flags)
{
cache_container *container;
FIXME("(%p, %p, %x): semi-stub\n", info, size, flags);
if (!info)
{
INTERNET_SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
info->dwContainer = 0;
info->dwQuota = 0x3e800; /* FIXME */
info->dwReserved4 = 0;
info->fPerUser = TRUE;
info->dwSyncMode = 0;
info->dwNumCachePaths = 1;
info->dwNormalUsage = 0;
info->dwExemptUsage = 0;
info->u.s.CachePath[0] = 0;
info->u.s.dwCacheSize = 0x3e800; /* FIXME */
LIST_FOR_EACH_ENTRY(container, &UrlContainers, cache_container, entry)
{
switch (flags & (CACHE_CONFIG_CONTENT_PATHS_FC | CACHE_CONFIG_COOKIES_PATHS_FC | CACHE_CONFIG_HISTORY_PATHS_FC))
@ -3796,17 +3773,17 @@ BOOL WINAPI GetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW info, LPDWORD s
case 0:
case CACHE_CONFIG_CONTENT_PATHS_FC:
if (container->default_entry_type == NORMAL_CACHE_ENTRY)
lstrcpynW(info->u.s.CachePath, container->path, MAX_PATH);
return container;
break;
case CACHE_CONFIG_COOKIES_PATHS_FC:
if (container->default_entry_type == COOKIE_CACHE_ENTRY)
lstrcpynW(info->u.s.CachePath, container->path, MAX_PATH);
return container;
break;
case CACHE_CONFIG_HISTORY_PATHS_FC:
if (container->default_entry_type == URLHISTORY_CACHE_ENTRY)
lstrcpynW(info->u.s.CachePath, container->path, MAX_PATH);
return container;
break;
default:
@ -3815,6 +3792,45 @@ BOOL WINAPI GetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW info, LPDWORD s
}
}
return NULL;
}
/***********************************************************************
* GetUrlCacheConfigInfoW (WININET.@)
*/
BOOL WINAPI GetUrlCacheConfigInfoW(LPINTERNET_CACHE_CONFIG_INFOW info, LPDWORD size, DWORD flags)
{
cache_container *container;
DWORD error;
FIXME("(%p, %p, %x): semi-stub\n", info, size, flags);
if (!info || !(container = find_container(flags)))
{
INTERNET_SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
error = cache_container_open_index(container, MIN_BLOCK_NO);
if (error != ERROR_SUCCESS)
{
INTERNET_SetLastError(error);
return FALSE;
}
info->dwContainer = 0;
info->dwQuota = FILE_SIZE(MAX_BLOCK_NO) / 1024;
info->dwReserved4 = 0;
info->fPerUser = TRUE;
info->dwSyncMode = 0;
info->dwNumCachePaths = 1;
info->dwNormalUsage = 0;
info->dwExemptUsage = 0;
info->u.s.dwCacheSize = container->file_size / 1024;
lstrcpynW(info->u.s.CachePath, container->path, MAX_PATH);
cache_container_close_index(container);
TRACE("CachePath %s\n", debugstr_w(info->u.s.CachePath));
return TRUE;
@ -3847,7 +3863,6 @@ BOOL WINAPI GetUrlCacheConfigInfoA(LPINTERNET_CACHE_CONFIG_INFOA info, LPDWORD s
info->dwNumCachePaths = infoW.dwNumCachePaths;
info->dwNormalUsage = infoW.dwNormalUsage;
info->dwExemptUsage = infoW.dwExemptUsage;
info->u.s.dwCacheSize = infoW.u.s.dwCacheSize;
WideCharToMultiByte(CP_ACP, 0, infoW.u.s.CachePath, -1, info->u.s.CachePath, MAX_PATH, NULL, NULL);