logo       

bagder: curl/docs/examples Makefile.am, 1.35, 1.36 cookie_interface.c, NONE: msg#00030

web.curl.cvs

Subject: bagder: curl/docs/examples Makefile.am, 1.35, 1.36 cookie_interface.c, NONE, 1.1 makefile.dj, 1.4, 1.5

Update of /cvsroot/curl/curl/docs/examples
In directory labb:/tmp/cvs-serv14776/docs/examples

Modified Files:
Makefile.am makefile.dj
Added Files:
cookie_interface.c
Log Message:
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.


Index: Makefile.am
===================================================================
RCS file: /cvsroot/curl/curl/docs/examples/Makefile.am,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- Makefile.am 9 May 2005 21:12:03 -0000 1.35
+++ Makefile.am 27 Jul 2005 22:17:14 -0000 1.36
@@ -10,7 +10,8 @@
post-callback.c multi-app.c multi-double.c multi-single.c \
multi-post.c fopen.c simplepost.c makefile.dj curlx.c https.c \
multi-debugcallback.c fileupload.c getinfo.c ftp3rdparty.c debug.c \
- anyauthput.c htmltitle.cc htmltidy.c opensslthreadlock.c
+ anyauthput.c htmltitle.cc htmltidy.c opensslthreadlock.c \
+ cookie_interface.c

all:
@echo "done"

--- NEW FILE: cookie_interface.c ---
/*****************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* This example shows usage of simple cookie interface.
*/

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <time.h>

#include <curl/curl.h>

static void
print_cookies(CURL *curl)
{
CURLcode res;
struct curl_slist *cookies;
struct curl_slist *nc;
int i;

printf("Cookies, curl knows:\n");
res = curl_easy_getinfo(curl, CURLINFO_COOKIELIST, &cookies);
if (res != CURLE_OK) {
fprintf(stderr, "Curl curl_easy_getinfo failed: %s\n",
curl_easy_strerror(res));
exit(1);
}
nc = cookies, i = 1;
while (nc) {
printf("[%d]: %s\n", i, nc->data);
nc = nc->next;
i++;
}
if (i == 1) {
printf("(none)\n");
}
curl_slist_free_all(cookies);
}

int
main(void)
{
CURL *curl;
CURLcode res;

curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if (curl) {
char nline[256];

curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com/";); /*
google.com sets "PREF" cookie */
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
curl_easy_setopt(curl, CURLOPT_COOKIEFILE, ""); /* just to start the cookie
engine */
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
fprintf(stderr, "Curl perform failed: %s\n", curl_easy_strerror(res));
return 1;
}

print_cookies(curl);

printf("Erasing curl's knowledge of cookies!\n");
curl_easy_setopt(curl, CURLOPT_COOKIELIST, NULL);

print_cookies(curl);

printf("-----------------------------------------------\n"
"Setting a cookie \"PREF\" via cookie interface:\n");
#ifdef WIN32
#define snprintf _snprintf
#endif
/* Netscape format cookie */
snprintf(nline, 256, "%s\t%s\t%s\t%s\t%u\t%s\t%s",
".google.com", "TRUE", "/", "FALSE", time(NULL) + 31337, "PREF", "hello
google, i like you very much!");
res = curl_easy_setopt(curl, CURLOPT_COOKIELIST, nline);
if (res != CURLE_OK) {
fprintf(stderr, "Curl curl_easy_setopt failed: %s\n",
curl_easy_strerror(res));
return 1;
}

/* HTTP-header style cookie */
snprintf(nline, 256,
"Set-Cookie: OLD_PREF=3d141414bf4209321; "
"expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.com");
res = curl_easy_setopt(curl, CURLOPT_COOKIELIST, nline);
if (res != CURLE_OK) {
fprintf(stderr, "Curl curl_easy_setopt failed: %s\n",
curl_easy_strerror(res));
return 1;
}

print_cookies(curl);

res = curl_easy_perform(curl);
if (res != CURLE_OK) {
fprintf(stderr, "Curl perform failed: %s\n", curl_easy_strerror(res));
return 1;
}
}
else {
fprintf(stderr, "Curl init failed!\n");
return 1;
}

curl_global_cleanup();
return 0;
}

Index: makefile.dj
===================================================================
RCS file: /cvsroot/curl/curl/docs/examples/makefile.dj,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- makefile.dj 26 Nov 2004 15:04:15 -0000 1.4
+++ makefile.dj 27 Jul 2005 22:17:14 -0000 1.5
@@ -20,7 +20,8 @@
multi-double.exe multi-post.exe multi-single.exe \
persistant.exe post-callback.exe postit2.exe \
sepheaders.exe simple.exe simplessl.exe https.exe \
- ftp3rdparty.exe getinfo.exe anyauthput.exe
+ ftp3rdparty.exe getinfo.exe anyauthput.exe \
+ cookie_interface.exe

all: $(PROGRAMS)


_______________________________________________
http://cool.haxx.se/mailman/listinfo/curl-commits



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise