|
bagder: curl/docs/examples Makefile.am, 1.35, 1.36 cookie_interface.c, NONE: msg#00030web.curl.cvs
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> |
|---|---|---|
| Previous by Date: | bagder: curl/include/curl curl.h,1.281,1.282: 00030, cvs |
|---|---|
| Next by Date: | bagder: curl CHANGES,1.730,1.731 RELEASE-NOTES,1.268,1.269: 00030, cvs |
| Previous by Thread: | bagder: curl/include/curl curl.h,1.281,1.282i: 00030, cvs |
| Next by Thread: | bagder: curl CHANGES,1.730,1.731 RELEASE-NOTES,1.268,1.269: 00030, cvs |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |