diff options
author | Daniel Stenberg <daniel@haxx.se> | 2005-07-27 22:17:14 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2005-07-27 22:17:14 +0000 |
commit | 2236ba0d206fe9fef5d93889ee652feaa03fe089 (patch) | |
tree | 2651d5300c11cf99f0abd3d73b9d7ddb14efa748 /lib/url.c | |
parent | 463c0f7096f7a0e56929a8e1b4fb3c38e164ce13 (diff) |
Peteris Krumins added CURLOPT_COOKIELIST and CURLINFO_COOKIELIST, which is a
simple interface to extracting and setting cookies in libcurl's internal
"cookie jar". See the new cookie_interface.c example code.
Diffstat (limited to 'lib/url.c')
-rw-r--r-- | lib/url.c | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -773,6 +773,37 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, */ data->set.cookiesession = (bool)va_arg(param, long); break; + + case CURLOPT_COOKIELIST: + argptr = va_arg(param, char *); + + if (argptr == NULL) + break; + + if (strequal(argptr, "ALL")) { + if (data->cookies == NULL) { + break; + } + else { + /* clear all cookies */ + Curl_cookie_freelist(data->cookies->cookies); + data->cookies->cookies = NULL; + break; + } + } + + if (!data->cookies) + /* if cookie engine was not running, activate it */ + data->cookies = Curl_cookie_init(data, NULL, NULL, TRUE); + + if (checkprefix("Set-Cookie:", argptr)) + /* HTTP Header format line */ + Curl_cookie_add(data, data->cookies, TRUE, argptr + 11, NULL, NULL); + + else + /* Netscape format line */ + Curl_cookie_add(data, data->cookies, FALSE, argptr, NULL, NULL); + break; #endif /* CURL_DISABLE_COOKIES */ case CURLOPT_HTTPGET: |