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

Reply via email to