From 4d33cf739da2649d3a8c363572cdb386b0f743b9 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 7 Apr 2006 11:47:21 +0000 Subject: [PATCH] added typedefed function pointers and typecast the NULL assignments in an attempt to silence picky compilers when assigning data pointers to a function pointer variable --- lib/url.c | 8 ++++---- lib/urldata.h | 10 ++++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/url.c b/lib/url.c index 38a2a27da..3b5eb97b3 100644 --- a/lib/url.c +++ b/lib/url.c @@ -2970,7 +2970,7 @@ static CURLcode CreateConnection(struct SessionHandle *data, conn->remote_port = PORT_HTTP; conn->protocol |= PROT_HTTP; conn->curl_do = Curl_http; - conn->curl_do_more = NULL; + conn->curl_do_more = (Curl_do_more_func)NULL; conn->curl_done = Curl_http_done; conn->curl_connect = Curl_http_connect; #else @@ -2987,7 +2987,7 @@ static CURLcode CreateConnection(struct SessionHandle *data, conn->protocol |= PROT_HTTP|PROT_HTTPS|PROT_SSL; conn->curl_do = Curl_http; - conn->curl_do_more = NULL; + conn->curl_do_more = (Curl_do_more_func)NULL; conn->curl_done = Curl_http_done; conn->curl_connect = Curl_http_connect; conn->curl_connecting = Curl_https_connecting; @@ -3100,7 +3100,7 @@ static CURLcode CreateConnection(struct SessionHandle *data, conn->port = PORT_DICT; conn->remote_port = PORT_DICT; conn->curl_do = Curl_dict; - conn->curl_done = NULL; /* no DICT-specific done */ + conn->curl_done = (Curl_done_func)NULL; /* no DICT-specific done */ #else failf(data, LIBCURL_NAME " was built with DICT disabled!"); @@ -3112,7 +3112,7 @@ static CURLcode CreateConnection(struct SessionHandle *data, conn->port = PORT_LDAP; conn->remote_port = PORT_LDAP; conn->curl_do = Curl_ldap; - conn->curl_done = NULL; /* no LDAP-specific done */ + conn->curl_done = (Curl_done_func)NULL; /* no LDAP-specific done */ #else failf(data, LIBCURL_NAME " was built with LDAP disabled!"); diff --git a/lib/urldata.h b/lib/urldata.h index 1d6bab2a0..6843925e0 100644 --- a/lib/urldata.h +++ b/lib/urldata.h @@ -541,6 +541,12 @@ struct Curl_async { #define FIRSTSOCKET 0 #define SECONDARYSOCKET 1 +/* These function pointer types are here only to allow easier typecasting + within the source when we need to cast between data pointers (such as NULL) + and function pointers. */ +typedef CURLcode (*Curl_do_more_func)(struct connectdata *); +typedef CURLcode (*Curl_done_func)(struct connectdata *, CURLcode); + /* * The connectdata struct contains all fields and variables that should be * unique for an entire connection. @@ -625,13 +631,13 @@ struct connectdata { /* These two functions MUST be set by the curl_connect() function to be be protocol dependent */ CURLcode (*curl_do)(struct connectdata *, bool *done); - CURLcode (*curl_done)(struct connectdata *, CURLcode); + Curl_done_func curl_done; /* If the curl_do() function is better made in two halves, this * curl_do_more() function will be called afterwards, if set. For example * for doing the FTP stuff after the PASV/PORT command. */ - CURLcode (*curl_do_more)(struct connectdata *); + Curl_do_more_func curl_do_more; /* This function *MAY* be set to a protocol-dependent function that is run * after the connect() and everything is done, as a step in the connection.