wininet: Use get_cookie directly in HTTP_InsertCookies.
This commit is contained in:
parent
9a741bf3d7
commit
dce9181c91
|
@ -260,7 +260,7 @@ static void COOKIE_deleteDomain(cookie_domain *deadDomain)
|
|||
HeapFree(GetProcessHeap(), 0, deadDomain);
|
||||
}
|
||||
|
||||
static BOOL get_cookie(const WCHAR *host, const WCHAR *path, WCHAR *cookie_data, DWORD *size)
|
||||
BOOL get_cookie(const WCHAR *host, const WCHAR *path, WCHAR *cookie_data, DWORD *size)
|
||||
{
|
||||
unsigned cnt = 0, len, domain_count = 0, cookie_count = 0;
|
||||
cookie_domain *domain;
|
||||
|
|
|
@ -3957,32 +3957,30 @@ static DWORD HTTP_SecureProxyConnect(http_request_t *request)
|
|||
|
||||
static void HTTP_InsertCookies(http_request_t *request)
|
||||
{
|
||||
static const WCHAR szUrlForm[] = {'h','t','t','p',':','/','/','%','s','%','s',0};
|
||||
LPWSTR lpszCookies, lpszUrl = NULL;
|
||||
DWORD nCookieSize, size;
|
||||
LPHTTPHEADERW Host = HTTP_GetHeader(request, hostW);
|
||||
DWORD cookie_size, size, cnt = 0;
|
||||
HTTPHEADERW *host;
|
||||
WCHAR *cookies;
|
||||
|
||||
size = (strlenW(Host->lpszValue) + strlenW(szUrlForm) + strlenW(request->path)) * sizeof(WCHAR);
|
||||
if (!(lpszUrl = heap_alloc(size))) return;
|
||||
sprintfW( lpszUrl, szUrlForm, Host->lpszValue, request->path);
|
||||
static const WCHAR cookieW[] = {'C','o','o','k','i','e',':',' ',0};
|
||||
|
||||
if (InternetGetCookieW(lpszUrl, NULL, NULL, &nCookieSize))
|
||||
{
|
||||
int cnt = 0;
|
||||
static const WCHAR szCookie[] = {'C','o','o','k','i','e',':',' ',0};
|
||||
host = HTTP_GetHeader(request, hostW);
|
||||
if(!host)
|
||||
return;
|
||||
|
||||
size = sizeof(szCookie) + nCookieSize * sizeof(WCHAR) + sizeof(szCrLf);
|
||||
if ((lpszCookies = heap_alloc(size)))
|
||||
{
|
||||
cnt += sprintfW(lpszCookies, szCookie);
|
||||
InternetGetCookieW(lpszUrl, NULL, lpszCookies + cnt, &nCookieSize);
|
||||
strcatW(lpszCookies, szCrLf);
|
||||
if(!get_cookie(host->lpszValue, request->path, NULL, &cookie_size))
|
||||
return;
|
||||
|
||||
HTTP_HttpAddRequestHeadersW(request, lpszCookies, strlenW(lpszCookies), HTTP_ADDREQ_FLAG_REPLACE);
|
||||
HeapFree(GetProcessHeap(), 0, lpszCookies);
|
||||
}
|
||||
}
|
||||
HeapFree(GetProcessHeap(), 0, lpszUrl);
|
||||
size = sizeof(cookieW) + cookie_size * sizeof(WCHAR) + sizeof(szCrLf);
|
||||
if(!(cookies = heap_alloc(size)))
|
||||
return;
|
||||
|
||||
cnt += sprintfW(cookies, cookieW);
|
||||
get_cookie(host->lpszValue, request->path, cookies+cnt, &cookie_size);
|
||||
strcatW(cookies, szCrLf);
|
||||
|
||||
HTTP_HttpAddRequestHeadersW(request, cookies, strlenW(cookies), HTTP_ADDREQ_FLAG_REPLACE);
|
||||
|
||||
heap_free(cookies);
|
||||
}
|
||||
|
||||
static WORD HTTP_ParseDay(LPCWSTR day)
|
||||
|
|
|
@ -497,6 +497,8 @@ DWORD HTTP_Connect(appinfo_t*,LPCWSTR,
|
|||
BOOL GetAddress(LPCWSTR lpszServerName, INTERNET_PORT nServerPort,
|
||||
struct sockaddr *psa, socklen_t *sa_len) DECLSPEC_HIDDEN;
|
||||
|
||||
BOOL get_cookie(const WCHAR*,const WCHAR*,WCHAR*,DWORD*) DECLSPEC_HIDDEN;
|
||||
|
||||
void INTERNET_SetLastError(DWORD dwError) DECLSPEC_HIDDEN;
|
||||
DWORD INTERNET_GetLastError(void) DECLSPEC_HIDDEN;
|
||||
DWORD INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest) DECLSPEC_HIDDEN;
|
||||
|
|
Loading…
Reference in New Issue