summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Satiro <raysatiro@yahoo.com>2015-06-03 21:48:47 -0400
committerJay Satiro <raysatiro@yahoo.com>2015-06-03 21:48:47 -0400
commit3013bb6b1c8e63e46ed0324eddffa6c54228acd7 (patch)
treeac7fa2d8b88f69a0899f8e55bff143cd0f214a22
parent001ab7d86092f715088a8611a675f8b2537f45b3 (diff)
downloadgnurl-3013bb6b1c8e63e46ed0324eddffa6c54228acd7.tar.gz
gnurl-3013bb6b1c8e63e46ed0324eddffa6c54228acd7.tar.bz2
gnurl-3013bb6b1c8e63e46ed0324eddffa6c54228acd7.zip
cookie: Stop exporting any-domain cookies
Prior to this change any-domain cookies (cookies without a domain that are sent to any domain) were exported with domain name "unknown". Bug: https://github.com/bagder/curl/issues/292
-rw-r--r--docs/examples/cookie_interface.c7
-rw-r--r--docs/libcurl/opts/CURLOPT_COOKIELIST.33
-rw-r--r--lib/cookie.c5
3 files changed, 13 insertions, 2 deletions
diff --git a/docs/examples/cookie_interface.c b/docs/examples/cookie_interface.c
index 2e7c66db2..28ee7817c 100644
--- a/docs/examples/cookie_interface.c
+++ b/docs/examples/cookie_interface.c
@@ -96,7 +96,12 @@ main(void)
return 1;
}
- /* HTTP-header style cookie */
+ /* HTTP-header style cookie. If you use the Set-Cookie format and don't
+ specify a domain then the cookie is sent for any domain and will not be
+ modified, likely not what you intended. Starting in 7.43.0 any-domain
+ cookies will not be exported either. For more information refer to the
+ CURLOPT_COOKIELIST documentation.
+ */
snprintf(nline, sizeof(nline),
"Set-Cookie: OLD_PREF=3d141414bf4209321; "
"expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com");
diff --git a/docs/libcurl/opts/CURLOPT_COOKIELIST.3 b/docs/libcurl/opts/CURLOPT_COOKIELIST.3
index 1058936c7..937c79db8 100644
--- a/docs/libcurl/opts/CURLOPT_COOKIELIST.3
+++ b/docs/libcurl/opts/CURLOPT_COOKIELIST.3
@@ -43,6 +43,9 @@ transfer to that server, likely not what you intended. Either set a domain in
Set-Cookie (doing that will include sub domains) or use the Netscape format as
shown in EXAMPLE.
+Starting in 7.43.0 the aforementioned any-domain cookies will not appear in the
+lists exported by \fICURLINFO_COOKIELIST(3)\fP and \fICURLOPT_COOKIEJAR(3)\fP.
+
Additionally, there are commands available that perform actions if you pass in
these exact strings:
.IP ALL
diff --git a/lib/cookie.c b/lib/cookie.c
index fd7ed4168..94f2a8b85 100644
--- a/lib/cookie.c
+++ b/lib/cookie.c
@@ -1277,6 +1277,8 @@ static int cookie_output(struct CookieInfo *c, const char *dumphere)
co = c->cookies;
while(co) {
+ if(!co->domain)
+ continue;
format_ptr = get_netscape_format(co);
if(format_ptr == NULL) {
fprintf(out, "#\n# Fatal libcurl error\n");
@@ -1310,7 +1312,8 @@ struct curl_slist *Curl_cookie_list(struct SessionHandle *data)
c = data->cookies->cookies;
while(c) {
- /* fill the list with _all_ the cookies we know */
+ if(!c->domain)
+ continue;
line = get_netscape_format(c);
if(!line) {
curl_slist_free_all(list);