From 96e217b49628a7dd19ad4be66b1842dcf0940309 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 11 Aug 2003 09:56:06 +0000 Subject: [PATCH] the new cookie functions that require 'data' passed in --- lib/cookie.h | 8 ++++++-- lib/easy.c | 3 ++- lib/sendf.c | 4 ++-- lib/share.c | 2 +- lib/transfer.c | 6 ++++-- lib/url.c | 4 ++-- 6 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/cookie.h b/lib/cookie.h index a3a54c717..9be196aba 100644 --- a/lib/cookie.h +++ b/lib/cookie.h @@ -68,14 +68,18 @@ struct CookieInfo { #define MAX_NAME 256 #define MAX_NAME_TXT "255" +struct SessionHandle; /* * Add a cookie to the internal list of cookies. The domain and path arguments * are only used if the header boolean is TRUE. */ -struct Cookie *Curl_cookie_add(struct CookieInfo *, bool header, char *line, + +struct Cookie *Curl_cookie_add(struct SessionHandle *data, + struct CookieInfo *, bool header, char *line, char *domain, char *path); -struct CookieInfo *Curl_cookie_init(char *, struct CookieInfo *, bool); +struct CookieInfo *Curl_cookie_init(struct SessionHandle *data, + char *, struct CookieInfo *, bool); struct Cookie *Curl_cookie_getlist(struct CookieInfo *, char *, char *, bool); void Curl_cookie_freelist(struct Cookie *); void Curl_cookie_cleanup(struct CookieInfo *); diff --git a/lib/easy.c b/lib/easy.c index 73f3d9cca..ff756784e 100644 --- a/lib/easy.c +++ b/lib/easy.c @@ -319,7 +319,8 @@ CURL *curl_easy_duphandle(CURL *incurl) if(data->cookies) /* If cookies are enabled in the parent handle, we enable them in the clone as well! */ - outcurl->cookies = Curl_cookie_init(data->cookies->filename, + outcurl->cookies = Curl_cookie_init(data, + data->cookies->filename, outcurl->cookies, data->set.cookiesession); diff --git a/lib/sendf.c b/lib/sendf.c index e4983fa68..b964bdd56 100644 --- a/lib/sendf.c +++ b/lib/sendf.c @@ -132,8 +132,8 @@ void curl_slist_free_all(struct curl_slist *list) void Curl_infof(struct SessionHandle *data, const char *fmt, ...) { - va_list ap; - if(data->set.verbose) { + if(data && data->set.verbose) { + va_list ap; char print_buffer[1024 + 1]; va_start(ap, fmt); vsnprintf(print_buffer, 1024, fmt, ap); diff --git a/lib/share.c b/lib/share.c index 37acef195..d883ff0de 100644 --- a/lib/share.c +++ b/lib/share.c @@ -79,7 +79,7 @@ curl_share_setopt(CURLSH *sh, CURLSHoption option, ...) case CURL_LOCK_DATA_COOKIE: if (!share->cookies) { - share->cookies = Curl_cookie_init( NULL, NULL, TRUE ); + share->cookies = Curl_cookie_init(NULL, NULL, NULL, TRUE ); } break; diff --git a/lib/transfer.c b/lib/transfer.c index 8c42cb7d4..d9f3c8f9b 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -709,7 +709,8 @@ CURLcode Curl_readwrite(struct connectdata *conn, checkprefix("Set-Cookie:", k->p)) { Curl_share_lock(data, CURL_LOCK_DATA_COOKIE, CURL_LOCK_ACCESS_SINGLE); - Curl_cookie_add(data->cookies, TRUE, k->p+11, + Curl_cookie_add(data, + data->cookies, TRUE, k->p+11, /* If there is a custom-set Host: name, use it here, or else use real peer host name. */ conn->allocptr.cookiehost? @@ -1514,7 +1515,8 @@ CURLcode Curl_pretransfer(struct SessionHandle *data) struct curl_slist *list = data->change.cookielist; Curl_share_lock(data, CURL_LOCK_DATA_COOKIE, CURL_LOCK_ACCESS_SINGLE); while(list) { - data->cookies = Curl_cookie_init(list->data, + data->cookies = Curl_cookie_init(data, + list->data, data->cookies, data->set.cookiesession); list = list->next; diff --git a/lib/url.c b/lib/url.c index 4bd02705a..03059d84a 100644 --- a/lib/url.c +++ b/lib/url.c @@ -617,7 +617,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...) * Activate the cookie parser. This may or may not already * have been made. */ - data->cookies = Curl_cookie_init(NULL, data->cookies, + data->cookies = Curl_cookie_init(data, NULL, data->cookies, data->set.cookiesession); break; #endif @@ -1210,7 +1210,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...) /* check cookie list is set */ if(!data->cookies) - data->cookies = Curl_cookie_init( NULL, NULL, TRUE ); + data->cookies = Curl_cookie_init(data, NULL, NULL, TRUE ); /* check for host cache not needed, * it will be done by curl_easy_perform */