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