I’ve got the following sample code: ===== #include <stdio.h> #include <curl/curl.h>
#define SHARE_SETOPT(easy, value) curl_easy_setopt(easy, CURLOPT_SHARE, value) int main() { fprintf(stderr, "Cookie version - %s\n", curl_version()); CURLSH* share = curl_share_init(); curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE); CURL* easy1 = curl_easy_init(); curl_easy_setopt( easy1, CURLOPT_VERBOSE, 1 ); SHARE_SETOPT( easy1, share ); curl_easy_setopt(easy1, CURLOPT_COOKIEFILE, ""); curl_easy_setopt( easy1, CURLOPT_URL, "http://www.google.com/search?q=perl" ); curl_easy_perform(easy1); CURL* easy2 = curl_easy_init(); curl_easy_setopt( easy2, CURLOPT_VERBOSE, 1 ); SHARE_SETOPT( easy2, share ); curl_easy_setopt( easy2, CURLOPT_URL, "http://www.google.com/search?q=curl" ); curl_easy_perform(easy2); return 0; } ===== … which I compile with this statement: gcc -L/Users/felipe/mycurl/lib -I/Users/felipe/code/curl/include/curl -o curl_google curl_google.c -lcurl && ./curl_google 2>&1 | grep Cookie | grep -v Set-Cookie … and get: Cookie version - libcurl/7.69.0-DEV OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.1.1) Note that there’s no “Cookie:” header being sent. Am I “holding it wrong”, or is this a bug? I see the same behavior in 7.68, but if I compile against an older libcurl, I get what I expect: Cookie version - libcurl/7.54.0 LibreSSL/2.6.5 zlib/1.2.11 nghttp2/1.24.1 Cookie: CGIC=IgMqLyo; NID=199=K3m9Ak7ESVyswq45PmirFnDu74CgtqWd-vbDWY2FTfA4JySBSGXzv0QL84nZpOVMmpUZ26y-1C3Sdi03-TMo3t1YghWTeALjbHllRX6LgZiilNOVUtLAezy_fLXAscQ4JOZvO34yGmvTPfNB18My4g-Wn2MYUnL2Fo6VoTQhjYA This is all under macOS. Thank you! -FG ------------------------------------------------------------------- Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.haxx.se/mail/etiquette.html