easy: fix compiler warning: end-of-loop code not reached

This commit is contained in:
Yang Tse
2010-12-07 03:27:59 +01:00
parent 5965d4554d
commit 0b5901bec6

View File

@@ -626,123 +626,117 @@ CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...)
*/ */
CURL *curl_easy_duphandle(CURL *incurl) CURL *curl_easy_duphandle(CURL *incurl)
{ {
bool fail = TRUE;
struct SessionHandle *data=(struct SessionHandle *)incurl; struct SessionHandle *data=(struct SessionHandle *)incurl;
struct SessionHandle *outcurl = calloc(1, sizeof(struct SessionHandle)); struct SessionHandle *outcurl = calloc(1, sizeof(struct SessionHandle));
if(NULL == outcurl) if(NULL == outcurl)
return NULL; /* failure */ goto fail;
for(;;) { /*
* 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 */
* We setup a few buffers we need. We should probably make them if(Curl_dupset(outcurl, data) != CURLE_OK)
* get setup on-demand in the code, as that would probably decrease goto fail;
* 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;
/* copy all userdefined values */ /* the connection cache is setup on demand */
if(Curl_dupset(outcurl, data) != CURLE_OK) outcurl->state.connc = NULL;
break;
/* the connection cache is setup on demand */ outcurl->state.lastconnect = -1;
outcurl->state.connc = NULL;
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 !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
if(data->cookies) { if(data->cookies) {
/* If cookies are enabled in the parent handle, we enable them /* If cookies are enabled in the parent handle, we enable them
in the clone as well! */ in the clone as well! */
outcurl->cookies = Curl_cookie_init(data, outcurl->cookies = Curl_cookie_init(data,
data->cookies->filename, data->cookies->filename,
outcurl->cookies, outcurl->cookies,
data->set.cookiesession); data->set.cookiesession);
if(!outcurl->cookies) if(!outcurl->cookies)
break; goto fail;
} }
#endif /* CURL_DISABLE_HTTP */ #endif /* CURL_DISABLE_HTTP */
/* duplicate all values in 'change' */ /* duplicate all values in 'change' */
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES) #if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
if(data->change.cookielist) { if(data->change.cookielist) {
outcurl->change.cookielist = outcurl->change.cookielist =
Curl_slist_duplicate(data->change.cookielist); Curl_slist_duplicate(data->change.cookielist);
if(!outcurl->change.cookielist)
if (!outcurl->change.cookielist) goto fail;
break; }
}
#endif /* CURL_DISABLE_HTTP */ #endif /* CURL_DISABLE_HTTP */
if(data->change.url) { if(data->change.url) {
outcurl->change.url = strdup(data->change.url); outcurl->change.url = strdup(data->change.url);
if(!outcurl->change.url) if(!outcurl->change.url)
break; goto fail;
outcurl->change.url_alloc = TRUE; outcurl->change.url_alloc = TRUE;
} }
if(data->change.referer) { if(data->change.referer) {
outcurl->change.referer = strdup(data->change.referer); outcurl->change.referer = strdup(data->change.referer);
if(!outcurl->change.referer) if(!outcurl->change.referer)
break; goto fail;
outcurl->change.referer_alloc = TRUE; outcurl->change.referer_alloc = TRUE;
} }
#ifdef USE_ARES #ifdef USE_ARES
/* If we use ares, we clone the ares channel for the new handle */ /* If we use ares, we clone the ares channel for the new handle */
if(ARES_SUCCESS != ares_dup(&outcurl->state.areschannel, if(ARES_SUCCESS != ares_dup(&outcurl->state.areschannel,
data->state.areschannel)) data->state.areschannel))
break; goto fail;
#endif #endif
#if defined(CURL_DOES_CONVERSIONS) && defined(HAVE_ICONV) #if defined(CURL_DOES_CONVERSIONS) && defined(HAVE_ICONV)
outcurl->inbound_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST, outcurl->inbound_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
CURL_ICONV_CODESET_OF_NETWORK); CURL_ICONV_CODESET_OF_NETWORK);
outcurl->outbound_cd = iconv_open(CURL_ICONV_CODESET_OF_NETWORK, outcurl->outbound_cd = iconv_open(CURL_ICONV_CODESET_OF_NETWORK,
CURL_ICONV_CODESET_OF_HOST); CURL_ICONV_CODESET_OF_HOST);
outcurl->utf8_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST, outcurl->utf8_cd = iconv_open(CURL_ICONV_CODESET_OF_HOST,
CURL_ICONV_CODESET_FOR_UTF8); CURL_ICONV_CODESET_FOR_UTF8);
#endif #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 */ /* we reach this point and thus we are OK */
break;
}
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);
#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_COOKIES)
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;
}
}
return outcurl; return outcurl;
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);
#endif
if(outcurl->change.url)
free(outcurl->change.url);
if(outcurl->change.referer)
free(outcurl->change.referer);
Curl_freeset(outcurl);
free(outcurl);
}
return NULL;
} }
/* /*