ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

urlcache.c File Reference
#include "config.h"
#include "wine/port.h"
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <time.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "wininet.h"
#include "winineti.h"
#include "winerror.h"
#include "winreg.h"
#include "shlwapi.h"
#include "shlobj.h"
#include "shellapi.h"
#include "internet.h"
#include "wine/unicode.h"
#include "wine/debug.h"

Go to the source code of this file.

Data Structures

struct  CACHEFILE_ENTRY
struct  URL_CACHEFILE_ENTRY
struct  _HASH_ENTRY
struct  HASH_CACHEFILE_ENTRY
struct  DIRECTORY_DATA
struct  LPURLCACHE_HEADER
struct  STREAM_HANDLE
struct  URLCACHECONTAINER
struct  URLCacheFindEntryHandle

Defines

#define NONAMELESSUNION
#define NONAMELESSSTRUCT
#define ENTRY_START_OFFSET   0x4000
#define DIR_LENGTH   8
#define BLOCKSIZE   128
#define HASHTABLE_SIZE   448
#define HASHTABLE_BLOCKSIZE   7
#define HASHTABLE_FREE   3
#define ALLOCATION_TABLE_OFFSET   0x250
#define ALLOCATION_TABLE_SIZE   (0x1000 - ALLOCATION_TABLE_OFFSET)
#define HASHTABLE_NUM_ENTRIES   (HASHTABLE_SIZE / HASHTABLE_BLOCKSIZE)
#define NEWFILE_NUM_BLOCKS   0xd80
#define NEWFILE_SIZE   (NEWFILE_NUM_BLOCKS * BLOCKSIZE + ENTRY_START_OFFSET)
#define DWORD_SIG(a, b, c, d)   (a | (b << 8) | (c << 16) | (d << 24))
#define URL_SIGNATURE   DWORD_SIG('U','R','L',' ')
#define REDR_SIGNATURE   DWORD_SIG('R','E','D','R')
#define LEAK_SIGNATURE   DWORD_SIG('L','E','A','K')
#define HASH_SIGNATURE   DWORD_SIG('H','A','S','H')
#define DWORD_ALIGN(x)   ( (DWORD)(((DWORD)(x)+sizeof(DWORD)-1)/sizeof(DWORD))*sizeof(DWORD) )
#define CHAR_BIT   (8 * sizeof(CHAR))
#define URLCACHE_FIND_ENTRY_HANDLE_MAGIC   0xF389ABCD

Typedefs

typedef const URLCACHE_HEADERLPCURLCACHE_HEADER

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (wininet)
static DWORD URLCache_CreateHashTable (LPURLCACHE_HEADER pHeader, HASH_CACHEFILE_ENTRY *pPrevHash, HASH_CACHEFILE_ENTRY **ppHash)
static void URLCache_PathToObjectName (LPWSTR lpszPath, WCHAR replace)
static DWORD URLCacheContainer_OpenIndex (URLCACHECONTAINER *pContainer)
static void URLCacheContainer_CloseIndex (URLCACHECONTAINER *pContainer)
static BOOL URLCacheContainers_AddContainer (LPCWSTR cache_prefix, LPCWSTR path, LPWSTR mutex_name)
static void URLCacheContainer_DeleteContainer (URLCACHECONTAINER *pContainer)
void URLCacheContainers_CreateDefaults (void)
void URLCacheContainers_DeleteAll (void)
static DWORD URLCacheContainers_FindContainerW (LPCWSTR lpwszUrl, URLCACHECONTAINER **ppContainer)
static DWORD URLCacheContainers_FindContainerA (LPCSTR lpszUrl, URLCACHECONTAINER **ppContainer)
static BOOL URLCacheContainers_Enum (LPCWSTR lpwszSearchPattern, DWORD dwIndex, URLCACHECONTAINER **ppContainer)
static LPURLCACHE_HEADER URLCacheContainer_LockIndex (URLCACHECONTAINER *pContainer)
static BOOL URLCacheContainer_UnlockIndex (URLCACHECONTAINER *pContainer, LPURLCACHE_HEADER pHeader)
static BYTE URLCache_Allocation_BlockIsFree (BYTE *AllocationTable, DWORD dwBlockNumber)
static void URLCache_Allocation_BlockFree (BYTE *AllocationTable, DWORD dwBlockNumber)
static void URLCache_Allocation_BlockAllocate (BYTE *AllocationTable, DWORD dwBlockNumber)
static BOOL URLCache_FindFirstFreeEntry (URLCACHE_HEADER *pHeader, DWORD dwBlocksNeeded, CACHEFILE_ENTRY **ppEntry)
static BOOL URLCache_DeleteEntry (LPURLCACHE_HEADER pHeader, CACHEFILE_ENTRY *pEntry)
static BOOL URLCache_LocalFileNameToPathW (const URLCACHECONTAINER *pContainer, LPCURLCACHE_HEADER pHeader, LPCSTR szLocalFileName, BYTE Directory, LPWSTR wszPath, LPLONG lpBufferSize)
static BOOL URLCache_LocalFileNameToPathA (const URLCACHECONTAINER *pContainer, LPCURLCACHE_HEADER pHeader, LPCSTR szLocalFileName, BYTE Directory, LPSTR szPath, LPLONG lpBufferSize)
static void URLCache_DosDateTimeToFileTime (WORD fatdate, WORD fattime, FILETIME *ft)
static DWORD URLCache_CopyEntry (URLCACHECONTAINER *pContainer, LPCURLCACHE_HEADER pHeader, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, LPDWORD lpdwBufferSize, const URL_CACHEFILE_ENTRY *pUrlEntry, BOOL bUnicode)
static void URLCache_FileTimeToDosDateTime (const FILETIME *ft, WORD *fatdate, WORD *fattime)
static DWORD URLCache_SetEntryInfo (URL_CACHEFILE_ENTRY *pUrlEntry, const INTERNET_CACHE_ENTRY_INFOW *lpCacheEntryInfo, DWORD dwFieldControl)
static DWORD URLCache_HashKey (LPCSTR lpszKey)
static HASH_CACHEFILE_ENTRYURLCache_HashEntryFromOffset (LPCURLCACHE_HEADER pHeader, DWORD dwOffset)
static BOOL URLCache_IsHashEntryValid (LPCURLCACHE_HEADER pHeader, const HASH_CACHEFILE_ENTRY *pHashEntry)
static BOOL URLCache_FindHash (LPCURLCACHE_HEADER pHeader, LPCSTR lpszUrl, struct _HASH_ENTRY **ppHashEntry)
static BOOL URLCache_FindHashW (LPCURLCACHE_HEADER pHeader, LPCWSTR lpszUrl, struct _HASH_ENTRY **ppHashEntry)
static BOOL URLCache_HashEntrySetUse (struct _HASH_ENTRY *pHashEntry, DWORD dwUseCount)
static BOOL URLCache_DeleteEntryFromHash (struct _HASH_ENTRY *pHashEntry)
static DWORD URLCache_AddEntryToHash (LPURLCACHE_HEADER pHeader, LPCSTR lpszUrl, DWORD dwOffsetEntry)
static BOOL URLCache_EnumHashTables (LPCURLCACHE_HEADER pHeader, DWORD *pdwHashTableNumber, HASH_CACHEFILE_ENTRY **ppHashEntry)
static BOOL URLCache_EnumHashTableEntries (LPCURLCACHE_HEADER pHeader, const HASH_CACHEFILE_ENTRY *pHashEntry, DWORD *index, const struct _HASH_ENTRY **ppHashEntry)
static BOOL URLCache_DeleteCacheDirectory (LPCWSTR lpszPath)
BOOL WINAPI FreeUrlCacheSpaceW (LPCWSTR lpszCachePath, DWORD dwSize, DWORD dwSizeType)
BOOL WINAPI FreeUrlCacheSpaceA (LPCSTR lpszCachePath, DWORD dwSize, DWORD dwSizeType)
BOOL WINAPI GetUrlCacheEntryInfoExA (LPCSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufSize, LPSTR lpszReserved, LPDWORD lpdwReserved, LPVOID lpReserved, DWORD dwFlags)
BOOL WINAPI GetUrlCacheEntryInfoA (IN LPCSTR lpszUrlName, IN LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, IN OUT LPDWORD lpdwCacheEntryInfoBufferSize)
BOOL WINAPI GetUrlCacheEntryInfoW (LPCWSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufferSize)
BOOL WINAPI GetUrlCacheEntryInfoExW (LPCWSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, LPDWORD lpdwCacheEntryInfoBufSize, LPWSTR lpszReserved, LPDWORD lpdwReserved, LPVOID lpReserved, DWORD dwFlags)
BOOL WINAPI SetUrlCacheEntryInfoA (LPCSTR lpszUrlName, LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, DWORD dwFieldControl)
BOOL WINAPI SetUrlCacheEntryInfoW (LPCWSTR lpszUrl, LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, DWORD dwFieldControl)
BOOL WINAPI RetrieveUrlCacheEntryFileA (IN LPCSTR lpszUrlName, OUT LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, IN OUT LPDWORD lpdwCacheEntryInfoBufferSize, IN DWORD dwReserved)
BOOL WINAPI RetrieveUrlCacheEntryFileW (IN LPCWSTR lpszUrlName, OUT LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, IN OUT LPDWORD lpdwCacheEntryInfoBufferSize, IN DWORD dwReserved)
static BOOL DeleteUrlCacheEntryInternal (LPURLCACHE_HEADER pHeader, struct _HASH_ENTRY *pHashEntry)
BOOL WINAPI UnlockUrlCacheEntryFileA (IN LPCSTR lpszUrlName, IN DWORD dwReserved)
BOOL WINAPI UnlockUrlCacheEntryFileW (LPCWSTR lpszUrlName, DWORD dwReserved)
BOOL WINAPI CreateUrlCacheEntryA (IN LPCSTR lpszUrlName, IN DWORD dwExpectedFileSize, IN LPCSTR lpszFileExtension, OUT LPSTR lpszFileName, IN DWORD dwReserved)
BOOL WINAPI CreateUrlCacheEntryW (IN LPCWSTR lpszUrlName, IN DWORD dwExpectedFileSize, IN LPCWSTR lpszFileExtension, OUT LPWSTR lpszFileName, IN DWORD dwReserved)
static BOOL CommitUrlCacheEntryInternal (IN LPCWSTR lpszUrlName, IN LPCWSTR lpszLocalFileName, IN FILETIME ExpireTime, IN FILETIME LastModifiedTime, IN DWORD CacheEntryType, IN LPBYTE lpHeaderInfo, IN DWORD dwHeaderSize, IN LPCWSTR lpszFileExtension, IN LPCWSTR lpszOriginalUrl)
BOOL WINAPI CommitUrlCacheEntryA (IN LPCSTR lpszUrlName, IN LPCSTR lpszLocalFileName, IN FILETIME ExpireTime, IN FILETIME LastModifiedTime, IN DWORD CacheEntryType, IN LPBYTE lpHeaderInfo, IN DWORD dwHeaderSize, IN LPCSTR lpszFileExtension, IN LPCSTR lpszOriginalUrl)
BOOL WINAPI CommitUrlCacheEntryW (IN LPCWSTR lpszUrlName, IN LPCWSTR lpszLocalFileName, IN FILETIME ExpireTime, IN FILETIME LastModifiedTime, IN DWORD CacheEntryType, IN LPWSTR lpHeaderInfo, IN DWORD dwHeaderSize, IN LPCWSTR lpszFileExtension, IN LPCWSTR lpszOriginalUrl)
BOOL WINAPI ReadUrlCacheEntryStream (IN HANDLE hUrlCacheStream, IN DWORD dwLocation, IN OUT LPVOID lpBuffer, IN OUT LPDWORD lpdwLen, IN DWORD dwReserved)
HANDLE WINAPI RetrieveUrlCacheEntryStreamA (IN LPCSTR lpszUrlName, OUT LPINTERNET_CACHE_ENTRY_INFOA lpCacheEntryInfo, IN OUT LPDWORD lpdwCacheEntryInfoBufferSize, IN BOOL fRandomRead, IN DWORD dwReserved)
HANDLE WINAPI RetrieveUrlCacheEntryStreamW (IN LPCWSTR lpszUrlName, OUT LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo, IN OUT LPDWORD lpdwCacheEntryInfoBufferSize, IN BOOL fRandomRead, IN DWORD dwReserved)
BOOL WINAPI UnlockUrlCacheEntryStream (IN HANDLE hUrlCacheStream, IN DWORD dwReserved)
BOOL WINAPI DeleteUrlCacheEntryA (LPCSTR lpszUrlName)
BOOL WINAPI DeleteUrlCacheEntryW (LPCWSTR lpszUrlName)
BOOL WINAPI DeleteUrlCacheContainerA (DWORD d1, DWORD d2)
BOOL WINAPI DeleteUrlCacheContainerW (DWORD d1, DWORD d2)
BOOL WINAPI CreateUrlCacheContainerA (DWORD d1, DWORD d2, DWORD d3, DWORD d4, DWORD d5, DWORD d6, DWORD d7, DWORD d8)
BOOL WINAPI CreateUrlCacheContainerW (DWORD d1, DWORD d2, DWORD d3, DWORD d4, DWORD d5, DWORD d6, DWORD d7, DWORD d8)
HANDLE WINAPI FindFirstUrlCacheContainerA (LPVOID p1, LPVOID p2, LPVOID p3, DWORD d1)
HANDLE WINAPI FindFirstUrlCacheContainerW (LPVOID p1, LPVOID p2, LPVOID p3, DWORD d1)
BOOL WINAPI FindNextUrlCacheContainerA (HANDLE handle, LPVOID p1, LPVOID p2)
BOOL WINAPI FindNextUrlCacheContainerW (HANDLE handle, LPVOID p1, LPVOID p2)
HANDLE WINAPI FindFirstUrlCacheEntryExA (LPCSTR lpszUrlSearchPattern, DWORD dwFlags, DWORD dwFilter, GROUPID GroupId, LPINTERNET_CACHE_ENTRY_INFOA lpFirstCacheEntryInfo, LPDWORD lpdwFirstCacheEntryInfoBufferSize, LPVOID lpReserved, LPDWORD pcbReserved2, LPVOID lpReserved3)
HANDLE WINAPI FindFirstUrlCacheEntryExW (LPCWSTR lpszUrlSearchPattern, DWORD dwFlags, DWORD dwFilter, GROUPID GroupId, LPINTERNET_CACHE_ENTRY_INFOW lpFirstCacheEntryInfo, LPDWORD lpdwFirstCacheEntryInfoBufferSize, LPVOID lpReserved, LPDWORD pcbReserved2, LPVOID lpReserved3)
INTERNETAPI HANDLE WINAPI FindFirstUrlCacheEntryA (LPCSTR lpszUrlSearchPattern, LPINTERNET_CACHE_ENTRY_INFOA lpFirstCacheEntryInfo, LPDWORD lpdwFirstCacheEntryInfoBufferSize)
INTERNETAPI HANDLE WINAPI FindFirstUrlCacheEntryW (LPCWSTR lpszUrlSearchPattern, LPINTERNET_CACHE_ENTRY_INFOW lpFirstCacheEntryInfo, LPDWORD lpdwFirstCacheEntryInfoBufferSize)
static BOOL FindNextUrlCacheEntryInternal (HANDLE hEnumHandle, LPINTERNET_CACHE_ENTRY_INFOA lpNextCacheEntryInfo, LPDWORD lpdwNextCacheEntryInfoBufferSize, BOOL unicode)
BOOL WINAPI FindNextUrlCacheEntryA (HANDLE hEnumHandle, LPINTERNET_CACHE_ENTRY_INFOA lpNextCacheEntryInfo, LPDWORD lpdwNextCacheEntryInfoBufferSize)
BOOL WINAPI FindNextUrlCacheEntryW (HANDLE hEnumHandle, LPINTERNET_CACHE_ENTRY_INFOW lpNextCacheEntryInfo, LPDWORD lpdwNextCacheEntryInfoBufferSize)
BOOL WINAPI FindCloseUrlCache (HANDLE hEnumHandle)
HANDLE WINAPI FindFirstUrlCacheGroup (DWORD dwFlags, DWORD dwFilter, LPVOID lpSearchCondition, DWORD dwSearchCondition, GROUPID *lpGroupId, LPVOID lpReserved)
BOOL WINAPI FindNextUrlCacheEntryExA (HANDLE hEnumHandle, LPINTERNET_CACHE_ENTRY_INFOA lpFirstCacheEntryInfo, LPDWORD lpdwFirstCacheEntryInfoBufferSize, LPVOID lpReserved, LPDWORD pcbReserved2, LPVOID lpReserved3)
BOOL WINAPI FindNextUrlCacheEntryExW (HANDLE hEnumHandle, LPINTERNET_CACHE_ENTRY_INFOW lpFirstCacheEntryInfo, LPDWORD lpdwFirstCacheEntryInfoBufferSize, LPVOID lpReserved, LPDWORD pcbReserved2, LPVOID lpReserved3)
BOOL WINAPI FindNextUrlCacheGroup (HANDLE hFind, GROUPID *lpGroupId, LPVOID lpReserved)
INTERNETAPI GROUPID WINAPI CreateUrlCacheGroup (DWORD dwFlags, LPVOID lpReserved)
BOOL WINAPI DeleteUrlCacheGroup (GROUPID GroupId, DWORD dwFlags, LPVOID lpReserved)
BOOL WINAPI SetUrlCacheEntryGroupA (LPCSTR lpszUrlName, DWORD dwFlags, GROUPID GroupId, LPBYTE pbGroupAttributes, DWORD cbGroupAttributes, LPVOID lpReserved)
BOOL WINAPI SetUrlCacheEntryGroupW (LPCWSTR lpszUrlName, DWORD dwFlags, GROUPID GroupId, LPBYTE pbGroupAttributes, DWORD cbGroupAttributes, LPVOID lpReserved)
BOOL WINAPI GetUrlCacheConfigInfoW (LPINTERNET_CACHE_CONFIG_INFOW CacheInfo, LPDWORD size, DWORD bitmask)
BOOL WINAPI GetUrlCacheConfigInfoA (LPINTERNET_CACHE_CONFIG_INFOA CacheInfo, LPDWORD size, DWORD bitmask)
BOOL WINAPI GetUrlCacheGroupAttributeA (GROUPID gid, DWORD dwFlags, DWORD dwAttributes, LPINTERNET_CACHE_GROUP_INFOA lpGroupInfo, LPDWORD lpdwGroupInfo, LPVOID lpReserved)
BOOL WINAPI GetUrlCacheGroupAttributeW (GROUPID gid, DWORD dwFlags, DWORD dwAttributes, LPINTERNET_CACHE_GROUP_INFOW lpGroupInfo, LPDWORD lpdwGroupInfo, LPVOID lpReserved)
BOOL WINAPI SetUrlCacheGroupAttributeA (GROUPID gid, DWORD dwFlags, DWORD dwAttributes, LPINTERNET_CACHE_GROUP_INFOA lpGroupInfo, LPVOID lpReserved)
BOOL WINAPI SetUrlCacheGroupAttributeW (GROUPID gid, DWORD dwFlags, DWORD dwAttributes, LPINTERNET_CACHE_GROUP_INFOW lpGroupInfo, LPVOID lpReserved)
BOOL WINAPI SetUrlCacheConfigInfoA (LPINTERNET_CACHE_CONFIG_INFOA lpCacheConfigInfo, DWORD dwFieldControl)
BOOL WINAPI SetUrlCacheConfigInfoW (LPINTERNET_CACHE_CONFIG_INFOW lpCacheConfigInfo, DWORD dwFieldControl)
DWORD WINAPI DeleteIE3Cache (HWND hWnd, HINSTANCE hInst, LPSTR lpszCmdLine, int nCmdShow)
static BOOL IsUrlCacheEntryExpiredInternal (const URL_CACHEFILE_ENTRY *pUrlEntry, FILETIME *pftLastModified)
BOOL WINAPI IsUrlCacheEntryExpiredA (LPCSTR url, DWORD dwFlags, FILETIME *pftLastModified)
BOOL WINAPI IsUrlCacheEntryExpiredW (LPCWSTR url, DWORD dwFlags, FILETIME *pftLastModified)
BOOL WINAPI GetDiskInfoA (PCSTR path, PDWORD cluster_size, PDWORDLONG free, PDWORDLONG total)
DWORD WINAPI RegisterUrlCacheNotification (LPVOID a, DWORD b, DWORD c, DWORD d, DWORD e, DWORD f)
BOOL WINAPI IncrementUrlCacheHeaderData (DWORD index, LPDWORD data)

Variables

static struct list UrlContainers = LIST_INIT(UrlContainers)
BOOL bDefaultContainersAdded = FALSE

Generated on Sat May 26 2012 05:19:32 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.