mirror of
https://github.com/curl/curl.git
synced 2026-08-11 09:01:05 +03:00
ftp: allocate the wildcard struct on demand
The feature is rarely used so this frees up data for the vast majority of easy handles that don't use it. Rename "protdata" to "ftpwc" since it is always an FTP wildcard struct pointer. Made the state struct field an unsigned char to save space. Closes #10639
This commit is contained in:
parent
c84c0f9aa3
commit
9c188e771c
7 changed files with 33 additions and 24 deletions
|
|
@ -2192,7 +2192,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
|
|||
#ifndef CURL_DISABLE_FTP
|
||||
/* some steps needed for wildcard matching */
|
||||
if(data->state.wildcardmatch) {
|
||||
struct WildcardData *wc = &data->wildcard;
|
||||
struct WildcardData *wc = data->wildcard;
|
||||
if(wc->state == CURLWC_DONE || wc->state == CURLWC_SKIP) {
|
||||
/* skip some states if it is important */
|
||||
multi_done(data, CURLE_OK, FALSE);
|
||||
|
|
@ -2344,7 +2344,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
|
|||
#ifndef CURL_DISABLE_FTP
|
||||
if(data->state.wildcardmatch &&
|
||||
((data->conn->handler->flags & PROTOPT_WILDCARD) == 0)) {
|
||||
data->wildcard.state = CURLWC_DONE;
|
||||
data->wildcard->state = CURLWC_DONE;
|
||||
}
|
||||
#endif
|
||||
multistate(data, MSTATE_DONE);
|
||||
|
|
@ -2574,7 +2574,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
|
|||
|
||||
#ifndef CURL_DISABLE_FTP
|
||||
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
|
||||
with MSTATE_INIT */
|
||||
multistate(data, MSTATE_INIT);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue