logo       

bagder: curl/lib easy.c, 1.72, 1.73 url.c, 1.466, 1.467 url.h, 1.22, 1.23: msg#00022

web.curl.cvs

Subject: bagder: curl/lib easy.c, 1.72, 1.73 url.c, 1.466, 1.467 url.h, 1.22, 1.23

Update of /cvsroot/curl/curl/lib
In directory labb:/tmp/cvs-serv5547

Modified Files:
easy.c url.c url.h
Log Message:
Simplified the code within curl_easy_perform() that calls Curl_perform().
Pointed out by Bjorn Reese.


Index: url.h
===================================================================
RCS file: /cvsroot/curl/curl/lib/url.h,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- url.h 7 Apr 2005 15:27:14 -0000 1.22
+++ url.h 17 Jul 2005 12:44:11 -0000 1.23
@@ -23,12 +23,15 @@
* $Id$
***************************************************************************/

+#include <stdarg.h> /* to make sure we have ap_list */
+
/*
* Prototypes for library-wide functions provided by url.c
*/

CURLcode Curl_open(struct SessionHandle **curl);
-CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...);
+CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
+ va_list arg);
CURLcode Curl_close(struct SessionHandle *data); /* opposite of curl_open() */
CURLcode Curl_connect(struct SessionHandle *, struct connectdata **,
bool *async, bool *protocol_connect);

Index: url.c
===================================================================
RCS file: /cvsroot/curl/curl/lib/url.c,v
retrieving revision 1.466
retrieving revision 1.467
diff -u -d -r1.466 -r1.467
--- url.c 12 Jul 2005 18:15:34 -0000 1.466
+++ url.c 17 Jul 2005 12:44:11 -0000 1.467
@@ -372,14 +372,12 @@
return CURLE_OK;
}

-CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...)
+CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
+ va_list param)
{
- va_list param;
char *argptr;
CURLcode result = CURLE_OK;

- va_start(param, option);
-
switch(option) {
case CURLOPT_DNS_CACHE_TIMEOUT:
data->set.dns_cache_timeout = va_arg(param, int);

Index: easy.c
===================================================================
RCS file: /cvsroot/curl/curl/lib/easy.c,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -d -r1.72 -r1.73
--- easy.c 7 Apr 2005 15:27:13 -0000 1.72
+++ easy.c 17 Jul 2005 12:44:11 -0000 1.73
@@ -308,49 +308,19 @@
* curl_easy_setopt() is the external interface for setting options on an
* easy handle.
*/
-typedef int (*func_T)(void);
+
CURLcode curl_easy_setopt(CURL *curl, CURLoption tag, ...)
{
va_list arg;
- func_T param_func = (func_T)0;
- long param_long = 0;
- void *param_obj = NULL;
- curl_off_t param_offset = 0;
struct SessionHandle *data = curl;
- CURLcode ret=CURLE_FAILED_INIT;
+ CURLcode ret;

if(!curl)
return CURLE_BAD_FUNCTION_ARGUMENT;

va_start(arg, tag);

- /* PORTING NOTE:
- Object pointers can't necessarily be casted to function pointers and
- therefore we need to know what type it is and read the correct type
- at once. This should also correct problems with different sizes of
- the types.
- */
-
- if(tag < CURLOPTTYPE_OBJECTPOINT) {
- /* This is a LONG type */
- param_long = va_arg(arg, long);
- ret = Curl_setopt(data, tag, param_long);
- }
- else if(tag < CURLOPTTYPE_FUNCTIONPOINT) {
- /* This is a object pointer type */
- param_obj = va_arg(arg, void *);
- ret = Curl_setopt(data, tag, param_obj);
- }
- else if(tag < CURLOPTTYPE_OFF_T) {
- /* This is a function pointer type */
- param_func = va_arg(arg, func_T );
- ret = Curl_setopt(data, tag, param_func);
- }
- else {
- /* This is a curl_off_t type */
- param_offset = va_arg(arg, curl_off_t);
- ret = Curl_setopt(data, tag, param_offset);
- }
+ ret = Curl_setopt(data, tag, arg);

va_end(arg);
return ret;

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



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

News | FAQ | advertise