aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2010-12-07 03:27:59 +0100
committerYang Tse <yangsita@gmail.com>2010-12-07 03:27:59 +0100
commit0b5901bec6bccfef0dc9ee162f41fe49ea6f3533 (patch)
treef2036460af35f750186ab8ed7c36ffc023e6cdb9 /lib
parent5965d4554da93cba5a866f9961c9b8f7bf163215 (diff)
easy: fix compiler warning: end-of-loop code not reached
Diffstat (limited to 'lib')
-rw-r--r--lib/easy.c164
1 files changed, 79 insertions, 85 deletions
diff --git a/lib/easy.c b/lib/easy.c
index 64ae56f2d..6f553475b 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -626,123 +626,117 @@ CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...)
*/
CURL *curl_easy_duphandle(CURL *incurl)
{
- bool fail = TRUE;
struct SessionHandle *data=(struct SessionHandle *)incurl;
struct SessionHandle *outcurl = calloc(1, sizeof(struct SessionHandle));
-
if(NULL == outcurl)
- return NULL; /* failure */
-
- for(;;) {
+ goto fail;
- /*
- * We setup a few buffers we need. We should probably make them
- * get setup on-demand in the code, as that would probably decrease
- * the likeliness of us forgetting to init a buffer here in the future.
- */
- outcurl->state.headerbuff = malloc(HEADERSIZE);
- if(!outcurl->state.headerbuff)
- break;
- outcurl->state.headersize = HEADERSIZE;
+ /*
+ * We setup a few buffers we need. We should probably make them
+ * get setup on-demand in the code, as that would probably decrease
+ * the likeliness of us forgetting to init a buffer here in the future.
+ */
+ outcurl->state.headerbuff = malloc(HEADERSIZE);
+ if(!outcurl->state.headerbuff)
+ goto fail;
+ outcurl->state.headersize = HEADERSIZE;
- /* copy all userdefined values */
- if(Curl_dupset(outcurl, data) != CURLE_OK)
- break;
+ /* copy all userdefined values */
+ if(Curl_dupset(outcurl, data) != CURLE_OK)
+ goto fail;
- /* the connection cache is setup on demand */
- outcurl->state.connc = NULL;
+ /* the connection cache is setup on demand */
+ outcurl->state.connc = NULL;
- outcurl->state.lastconnect = -1;
+ outcurl->state.lastconnect = -1;
- outcurl->progress.flags = data->progress.flags;
- outcurl->progress.callback = data->progress.callback;
+ outcurl->progress.flags = data->progress.flags;
+ outcurl->progress.callback = data->progress.callback;
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
- if(data->cookies) {
- /* If cookies are enabled in the parent handle, we enable them
- in the clone as well! */
- outcurl->cookies = Curl_cookie_init(data,
- data->cookies->filename,
- outcurl->cookies,
- data->set.cookiesession);
- if(!outcurl->cookies)
- break;
- }
+ if(data->cookies) {
+ /* If cookies are enabled in the parent handle, we enable them
+ in the clone as well! */
+ outcurl->cookies = Curl_cookie_init(data,
+ data->cookies->filename,
+ outcurl->cookies,
+ data->set.cookiesession);
+ if(!outcurl->cookies)
+ goto fail;
+ }
#endif /* CURL_DISABLE_HTTP */
- /* duplicate all values in 'change' */
+ /* duplicate all values in 'change' */
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
- if(data->change.cookielist) {
- outcurl->change.cookielist =
- Curl_slist_duplicate(data->change.cookielist);
-
- if (!outcurl->change.cookielist)
- break;
- }
+ if(data->change.cookielist) {
+ outcurl->change.cookielist =
+ Curl_slist_duplicate(data->change.cookielist);
+ if(!outcurl->change.cookielist)
+ goto fail;
+ }
#endif /* CURL_DISABLE_HTTP */
- if(data->change.url) {
- outcurl->change.url = strdup(data->change.url);
- if(!outcurl->change.url)
- break;
- outcurl->change.url_alloc = TRUE;
- }
+ if(data->change.url) {
+ outcurl->change.url = strdup(data->change.url);
+ if(!outcurl->change.url)
+ goto fail;
+ outcurl->change.url_alloc = TRUE;
+ }
- if(data->change.referer) {
- outcurl->change.referer = strdup(data->change.referer);
- if(!outcurl->change.referer)
- break;
- outcurl->change.referer_alloc = TRUE;
- }
+ if(data->change.referer) {
+ outcurl->change.referer = strdup(data->change.referer);
+ if(!outcurl->change.referer)
+ goto fail;
+ outcurl->change.referer_alloc = TRUE;
+ }
#ifdef USE_ARES
- /* If we use ares, we clone the ares channel for the new handle */
- if(ARES_SUCCESS != ares_dup(&outcurl->state.areschannel,
- data->state.areschannel))
- break;
+ /* If we use ares, we clone the ares channel for the new handle */
+ if(ARES_SUCCESS != ares_dup(&outcurl->state.areschannel,
+ data->state.areschannel))
+ goto fail;
#endif
#if defined(CURL_DOES_CONVERSIONS) && defined(HAVE_ICONV)
- outcurl->inbound_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
- CURL_ICONV_CODESET_OF_NETWORK);
- outcurl->outbound_cd = iconv_open(CURL_ICONV_CODESET_OF_NETWORK,
- CURL_ICONV_CODESET_OF_HOST);
- outcurl->utf8_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
- CURL_ICONV_CODESET_FOR_UTF8);
+ outcurl->inbound_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
+ CURL_ICONV_CODESET_OF_NETWORK);
+ outcurl->outbound_cd = iconv_open(CURL_ICONV_CODESET_OF_NETWORK,
+ CURL_ICONV_CODESET_OF_HOST);
+ outcurl->utf8_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
+ CURL_ICONV_CODESET_FOR_UTF8);
#endif
- Curl_easy_initHandleData(outcurl);
+ Curl_easy_initHandleData(outcurl);
- outcurl->magic = CURLEASY_MAGIC_NUMBER;
+ outcurl->magic = CURLEASY_MAGIC_NUMBER;
- fail = FALSE; /* we reach this point and thus we are OK */
- break;
- }
+ /* we reach this point and thus we are OK */
+
+ return outcurl;
- if(fail) {
- if(outcurl) {
- if(outcurl->state.connc &&
- (outcurl->state.connc->type == CONNCACHE_PRIVATE))
- Curl_rm_connc(outcurl->state.connc);
- if(outcurl->state.headerbuff)
- free(outcurl->state.headerbuff);
+ fail:
+
+ if(outcurl) {
+ if(outcurl->state.connc &&
+ (outcurl->state.connc->type == CONNCACHE_PRIVATE))
+ Curl_rm_connc(outcurl->state.connc);
+ if(outcurl->state.headerbuff)
+ free(outcurl->state.headerbuff);
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
- if(outcurl->change.cookielist)
- curl_slist_free_all(outcurl->change.cookielist);
+ if(outcurl->change.cookielist)
+ curl_slist_free_all(outcurl->change.cookielist);
#endif
- if(outcurl->change.url)
- free(outcurl->change.url);
- if(outcurl->change.referer)
- free(outcurl->change.referer);
- Curl_freeset(outcurl);
- free(outcurl); /* free the memory again */
- outcurl = NULL;
- }
+ if(outcurl->change.url)
+ free(outcurl->change.url);
+ if(outcurl->change.referer)
+ free(outcurl->change.referer);
+ Curl_freeset(outcurl);
+ free(outcurl);
}
- return outcurl;
+ return NULL;
}
/*