Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix COOKIELIST regression #11876

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/cookie.c
Original file line number Diff line number Diff line change
Expand Up @@ -1266,8 +1266,8 @@ struct CookieInfo *Curl_cookie_init(struct Curl_easy *data,
fclose(handle);
}
data->state.cookie_engine = TRUE;
c->running = TRUE; /* now, we're running */
}
c->running = TRUE; /* now, we're running */

return c;

Expand Down
2 changes: 1 addition & 1 deletion tests/data/Makefile.inc
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,6 @@ test3008 test3009 test3010 test3011 test3012 test3013 test3014 test3015 \
test3016 test3017 test3018 test3019 test3020 test3021 test3022 test3023 \
test3024 test3025 test3026 test3027 test3028 test3029 test3030 \
\
test3100 test3101 test3102 \
test3100 test3101 test3102 test3103 \
test3200 \
test3201 test3202
60 changes: 60 additions & 0 deletions tests/data/test3103
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<testcase>
<info>
<keywords>
cookies
</keywords>
</info>

#
# Server-side
<reply>
<data crlf="yes">
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Accept-Ranges: bytes
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes

-foo-
</data>
</reply>

#
# Client-side
<client>
<features>
cookies
proxy
</features>
<server>
http
</server>
<tool>
lib%TESTNUMBER
</tool>
<name>
CURLOPT_COOKIELIST without expiry
</name>
<command>
http://%HOSTIP:%HTTPPORT/%TESTNUMBER
</command>
</client>

#
# Verify data after the test has been "shot"
<verify>
<protocol crlf=yes>
GET http://localhost/ HTTP/1.1
Host: localhost
Accept: */*
Proxy-Connection: Keep-Alive
Cookie: c1=v1

</protocol>
</verify>
</testcase>
5 changes: 4 additions & 1 deletion tests/libtest/Makefile.inc
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ noinst_PROGRAMS = chkhostname libauthretry libntlmconnect libprereq \
lib2402 lib2404 \
lib2502 \
lib3010 lib3025 lib3026 lib3027 \
lib3100 lib3101 lib3102
lib3100 lib3101 lib3102 lib3103

chkhostname_SOURCES = chkhostname.c ../../lib/curl_gethostname.c
chkhostname_LDADD = @CURL_NETWORK_LIBS@
Expand Down Expand Up @@ -689,3 +689,6 @@ lib3101_LDADD = $(TESTUTIL_LIBS)

lib3102_SOURCES = lib3102.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS)
lib3102_LDADD = $(TESTUTIL_LIBS)

lib3103_SOURCES = lib3103.c $(SUPPORTFILES)
lib3103_LDADD = $(TESTUTIL_LIBS)
66 changes: 66 additions & 0 deletions tests/libtest/lib3103.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
* SPDX-License-Identifier: curl
*
***************************************************************************/
#include "test.h"

#include "memdebug.h"

int test(char *URL)
{
CURLcode res = CURLE_OK;
CURLSH *share;
CURL *curl;

curl_global_init(CURL_GLOBAL_ALL);

share = curl_share_init();
curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

curl = curl_easy_init();
test_setopt(curl, CURLOPT_SHARE, share);

test_setopt(curl, CURLOPT_VERBOSE, 1L);
test_setopt(curl, CURLOPT_HEADER, 1L);
test_setopt(curl, CURLOPT_PROXY, URL);
test_setopt(curl, CURLOPT_URL, "http://localhost/");

test_setopt(curl, CURLOPT_COOKIEFILE, "");

/* Set a cookie without Max-age or Expires */
test_setopt(curl, CURLOPT_COOKIELIST, "Set-Cookie: c1=v1; domain=localhost");

res = curl_easy_perform(curl);
if(res) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}

test_cleanup:

/* always cleanup */
curl_easy_cleanup(curl);
curl_share_cleanup(share);
curl_global_cleanup();

return (int)res;
}