Dmitry Timoshkov : wininet: Make GetUrlCacheConfigInfo() return actual dwQuota and dwCacheSize.
Alexandre Julliard
julliard at winehq.org
Mon Jan 28 16:17:02 CST 2019
Module: wine
Branch: master
Commit: ca29ac4650f7f9a96cfaa75a7919ef007306cbbb
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ca29ac4650f7f9a96cfaa75a7919ef007306cbbb
Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date: Mon Jan 28 09:49:09 2019 +0800
wininet: Make GetUrlCacheConfigInfo() return actual dwQuota and dwCacheSize.
Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/wininet/urlcache.c | 71 ++++++++++++++++++++++++++++++-------------------
1 file changed, 43 insertions(+), 28 deletions(-)
diff --git a/dlls/wininet/urlcache.c b/dlls/wininet/urlcache.c
index 4d422c9..4971fcd 100644
--- a/dlls/wininet/urlcache.c
+++ b/dlls/wininet/urlcache.c
@@ -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);
More information about the wine-cvs
mailing list