curl-library
Re: extract max keepalive requests configuration using a discovery loop
Date: Wed, 28 Sep 2005 01:34:26 +0200
> Why is there no libcurl_easy_getopt()? Just curious.
Something along the lines of (completely unfinished and untested, should
depict the idea):
diff -ur curl-7.14.1/include/curl/curl.h
curl-7.14.1-ratz/include/curl/curl.h
--- curl-7.14.1/include/curl/curl.h 2005-08-27 07:34:46.000000000 +0200
+++ curl-7.14.1-ratz/include/curl/curl.h 2005-09-28
01:17:00.246727502 +0200
@@ -896,6 +896,9 @@
/* ignore Content-Length */
CINIT(IGNORE_CONTENT_LENGTH, LONG, 136),
+ CINIT(TEST_LONG, LONG, 137),
+ CINIT(TEST_CHAR, OBJECTPOINT, 138),
+
CURLOPT_LASTENTRY /* the last unused */
} CURLoption;
@@ -1336,6 +1339,7 @@
} CURLSHoption;
CURL_EXTERN CURLSH *curl_share_init(void);
+CURL_EXTERN CURLSHcode curl_share_getopt(CURLSH *, CURLSHoption option,
CURLSH *);
CURL_EXTERN CURLSHcode curl_share_setopt(CURLSH *, CURLSHoption
option, ...);
CURL_EXTERN CURLSHcode curl_share_cleanup(CURLSH *);
diff -ur curl-7.14.1/include/curl/easy.h
curl-7.14.1-ratz/include/curl/easy.h
--- curl-7.14.1/include/curl/easy.h 2004-11-09 15:02:58.000000000 +0100
+++ curl-7.14.1-ratz/include/curl/easy.h 2005-09-28
01:11:07.817240084 +0200
@@ -28,6 +28,7 @@
CURL_EXTERN CURL *curl_easy_init(void);
CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);
+CURL_EXTERN CURLcode curl_easy_getopt(CURL *curl, CURLoption option,
void *);
CURL_EXTERN CURLcode curl_easy_perform(CURL *curl);
CURL_EXTERN void curl_easy_cleanup(CURL *curl);
diff -ur curl-7.14.1/lib/ca-bundle.h curl-7.14.1-ratz/lib/ca-bundle.h
--- curl-7.14.1/lib/ca-bundle.h 2005-09-01 22:54:42.000000000 +0200
+++ curl-7.14.1-ratz/lib/ca-bundle.h 2005-09-28 01:29:41.737693033 +0200
@@ -1 +1,2 @@
-/* ca bundle path set in here*/
+/* This file is generated automatically */
+#define CURL_CA_BUNDLE "/usr/local/share/curl/curl-ca-bundle.crt"
diff -ur curl-7.14.1/lib/easy.c curl-7.14.1-ratz/lib/easy.c
--- curl-7.14.1/lib/easy.c 2005-07-17 14:46:02.000000000 +0200
+++ curl-7.14.1-ratz/lib/easy.c 2005-09-28 00:34:02.847775975 +0200
@@ -305,6 +305,22 @@
}
/*
+ * curl_easy_getopt() is the external interface for getting options from an
+ * easy handle.
+ */
+
+CURLcode curl_easy_getopt(CURL *curl, CURLoption tag, void* arg)
+{
+ struct SessionHandle *data = curl;
+ CURLcode ret;
+
+ if(!curl)
+ return CURLE_BAD_FUNCTION_ARGUMENT;
+ ret = Curl_getopt(data, tag, arg);
+ return ret;
+}
+
+/*
* curl_easy_setopt() is the external interface for setting options on an
* easy handle.
*/
diff -ur curl-7.14.1/lib/libcurl.imp curl-7.14.1-ratz/lib/libcurl.imp
--- curl-7.14.1/lib/libcurl.imp 2005-08-18 10:06:43.000000000 +0200
+++ curl-7.14.1-ratz/lib/libcurl.imp 2005-09-28 01:29:08.813093602 +0200
@@ -6,6 +6,7 @@
curl_easy_getinfo,
curl_easy_init,
curl_easy_perform,
+ curl_easy_getopt,
curl_easy_setopt,
curl_escape,
curl_unescape,
diff -ur curl-7.14.1/lib/url.c curl-7.14.1-ratz/lib/url.c
--- curl-7.14.1/lib/url.c 2005-09-28 00:45:47.798732930 +0200
+++ curl-7.14.1-ratz/lib/url.c 2005-09-28 00:58:28.417867946 +0200
@@ -380,6 +380,35 @@
return CURLE_OK;
}
+CURLcode Curl_getopt(struct SessionHandle *data, CURLoption option,
+ void* param)
+{
+ CURLcode result = CURLE_OK;
+ switch(option) {
+ case CURLOPT_TEST_LONG:
+ param = (void *) 42; /* long */
+ break;
+ case CURLOPT_TEST_CHAR:
+ param = (void *) "test"; /* char */
+ break;
+ case CURLOPT_MAXREDIRS:
+ /*
+ * The maximum amount of hops you allow curl to follow Location:
+ * headers. This should mostly be used to detect never-ending loops.
+ */
+ param = (void *) data->set.maxredirs; /* long */
+ break;
+ case CURLOPT_DNS_CACHE_TIMEOUT:
+ param = (void *) data->set.dns_cache_timeout; /* int */
+ break;
+ default:
+ /* unknown tag and its companion, just ignore: */
+ result = CURLE_FAILED_INIT; /* correct this */
+ break;
+ }
+
+ return result;
+}
CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
va_list param)
{
diff -ur curl-7.14.1/lib/url.h curl-7.14.1-ratz/lib/url.h
--- curl-7.14.1/lib/url.h 2005-07-17 14:46:33.000000000 +0200
+++ curl-7.14.1-ratz/lib/url.h 2005-09-28 00:46:54.018859683 +0200
@@ -30,6 +30,8 @@
*/
CURLcode Curl_open(struct SessionHandle **curl);
+CURLcode Curl_getopt(struct SessionHandle *data, CURLoption option,
+ void *);
CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
va_list arg);
CURLcode Curl_close(struct SessionHandle *data); /* opposite of
curl_open() */
Regards,
Roberto Nibali, ratz
-- echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq' | dcReceived on 2005-09-28