1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-24 09:08:49 -05:00

wildcard: disable from build when FTP isn't present

This commit is contained in:
Daniel Stenberg 2019-05-05 17:08:21 +02:00
parent 7c70a3b1ad
commit 0e2208ada6
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
7 changed files with 28 additions and 6 deletions

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 2010 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 2010 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -21,7 +21,7 @@
***************************************************************************/ ***************************************************************************/
#include "curl_setup.h" #include "curl_setup.h"
#ifndef CURL_DISABLE_FTP
#include "strdup.h" #include "strdup.h"
#include "fileinfo.h" #include "fileinfo.h"
#include "curl_memory.h" #include "curl_memory.h"
@ -41,3 +41,4 @@ void Curl_fileinfo_cleanup(struct fileinfo *finfo)
Curl_safefree(finfo->info.b_data); Curl_safefree(finfo->info.b_data);
free(finfo); free(finfo);
} }
#endif

View File

@ -1568,6 +1568,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
if(!result) { if(!result) {
if(!dophase_done) { if(!dophase_done) {
#ifndef CURL_DISABLE_FTP
/* some steps needed for wildcard matching */ /* some steps needed for wildcard matching */
if(data->state.wildcardmatch) { if(data->state.wildcardmatch) {
struct WildcardData *wc = &data->wildcard; struct WildcardData *wc = &data->wildcard;
@ -1579,6 +1580,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
break; break;
} }
} }
#endif
/* DO was not completed in one function call, we must continue /* DO was not completed in one function call, we must continue
DOING... */ DOING... */
multistate(data, CURLM_STATE_DOING); multistate(data, CURLM_STATE_DOING);
@ -1718,10 +1720,12 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
(data->conn->writesockfd != CURL_SOCKET_BAD)) (data->conn->writesockfd != CURL_SOCKET_BAD))
multistate(data, CURLM_STATE_PERFORM); multistate(data, CURLM_STATE_PERFORM);
else { else {
#ifndef CURL_DISABLE_FTP
if(data->state.wildcardmatch && if(data->state.wildcardmatch &&
((data->conn->handler->flags & PROTOPT_WILDCARD) == 0)) { ((data->conn->handler->flags & PROTOPT_WILDCARD) == 0)) {
data->wildcard.state = CURLWC_DONE; data->wildcard.state = CURLWC_DONE;
} }
#endif
multistate(data, CURLM_STATE_DONE); multistate(data, CURLM_STATE_DONE);
} }
rc = CURLM_CALL_MULTI_PERFORM; rc = CURLM_CALL_MULTI_PERFORM;
@ -1942,6 +1946,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
detach_connnection(data); detach_connnection(data);
} }
#ifndef CURL_DISABLE_FTP
if(data->state.wildcardmatch) { if(data->state.wildcardmatch) {
if(data->wildcard.state != CURLWC_DONE) { if(data->wildcard.state != CURLWC_DONE) {
/* if a wildcard is set and we are not ending -> lets start again /* if a wildcard is set and we are not ending -> lets start again
@ -1950,7 +1955,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
break; break;
} }
} }
#endif
/* after we have DONE what we're supposed to do, go COMPLETED, and /* after we have DONE what we're supposed to do, go COMPLETED, and
it doesn't matter what the multi_done() returned! */ it doesn't matter what the multi_done() returned! */
multistate(data, CURLM_STATE_COMPLETED); multistate(data, CURLM_STATE_COMPLETED);

View File

@ -2482,12 +2482,14 @@ static CURLcode vsetopt(struct Curl_easy *data, CURLoption option,
case CURLOPT_FNMATCH_FUNCTION: case CURLOPT_FNMATCH_FUNCTION:
data->set.fnmatch = va_arg(param, curl_fnmatch_callback); data->set.fnmatch = va_arg(param, curl_fnmatch_callback);
break; break;
#ifndef CURL_DISABLE_FTP
case CURLOPT_CHUNK_DATA: case CURLOPT_CHUNK_DATA:
data->wildcard.customptr = va_arg(param, void *); data->wildcard.customptr = va_arg(param, void *);
break; break;
case CURLOPT_FNMATCH_DATA: case CURLOPT_FNMATCH_DATA:
data->set.fnmatch_data = va_arg(param, void *); data->set.fnmatch_data = va_arg(param, void *);
break; break;
#endif
#ifdef USE_TLS_SRP #ifdef USE_TLS_SRP
case CURLOPT_TLSAUTH_USERNAME: case CURLOPT_TLSAUTH_USERNAME:
result = Curl_setstropt(&data->set.str[STRING_TLSAUTH_USERNAME_ORIG], result = Curl_setstropt(&data->set.str[STRING_TLSAUTH_USERNAME_ORIG],

View File

@ -1506,6 +1506,7 @@ CURLcode Curl_pretransfer(struct Curl_easy *data)
data->state.authhost.picked &= data->state.authhost.want; data->state.authhost.picked &= data->state.authhost.want;
data->state.authproxy.picked &= data->state.authproxy.want; data->state.authproxy.picked &= data->state.authproxy.want;
#ifndef CURL_DISABLE_FTP
if(data->state.wildcardmatch) { if(data->state.wildcardmatch) {
struct WildcardData *wc = &data->wildcard; struct WildcardData *wc = &data->wildcard;
if(wc->state < CURLWC_INIT) { if(wc->state < CURLWC_INIT) {
@ -1514,6 +1515,7 @@ CURLcode Curl_pretransfer(struct Curl_easy *data)
return CURLE_OUT_OF_MEMORY; return CURLE_OUT_OF_MEMORY;
} }
} }
#endif
} }
return result; return result;

View File

@ -1803,7 +1803,9 @@ struct Curl_easy {
struct Progress progress; /* for all the progress meter data */ struct Progress progress; /* for all the progress meter data */
struct UrlState state; /* struct for fields used for state info and struct UrlState state; /* struct for fields used for state info and
other dynamic purposes */ other dynamic purposes */
#ifndef CURL_DISABLE_FTP
struct WildcardData wildcard; /* wildcard download state info */ struct WildcardData wildcard; /* wildcard download state info */
#endif
struct PureInfo info; /* stats, reports and info data */ struct PureInfo info; /* stats, reports and info data */
struct curl_tlssessioninfo tsi; /* Information about the TLS session, only struct curl_tlssessioninfo tsi; /* Information about the TLS session, only
valid after a client has asked for it */ valid after a client has asked for it */

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -22,6 +22,8 @@
#include "curl_setup.h" #include "curl_setup.h"
#ifndef CURL_DISABLE_FTP
#include "wildcard.h" #include "wildcard.h"
#include "llist.h" #include "llist.h"
#include "fileinfo.h" #include "fileinfo.h"
@ -67,3 +69,5 @@ void Curl_wildcard_dtor(struct WildcardData *wc)
wc->customptr = NULL; wc->customptr = NULL;
wc->state = CURLWC_INIT; wc->state = CURLWC_INIT;
} }
#endif /* if disabled */

View File

@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 2010 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 2010 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -22,8 +22,9 @@
* *
***************************************************************************/ ***************************************************************************/
#include <curl/curl.h> #include "curl_setup.h"
#ifndef CURL_DISABLE_FTP
#include "llist.h" #include "llist.h"
/* list of wildcard process states */ /* list of wildcard process states */
@ -58,4 +59,9 @@ void Curl_wildcard_dtor(struct WildcardData *wc);
struct Curl_easy; struct Curl_easy;
#else
/* FTP is disabled */
#define Curl_wildcard_dtor(x)
#endif
#endif /* HEADER_CURL_WILDCARD_H */ #endif /* HEADER_CURL_WILDCARD_H */