mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
wildcard: remove files and move functions into ftplistparser.c
This commit is contained in:
parent
9c188e771c
commit
56d5c07bbb
@ -223,7 +223,6 @@ LIB_CFILES = \
|
||||
version.c \
|
||||
version_win32.c \
|
||||
warnless.c \
|
||||
wildcard.c \
|
||||
ws.c
|
||||
|
||||
LIB_HFILES = \
|
||||
@ -352,7 +351,6 @@ LIB_HFILES = \
|
||||
urldata.h \
|
||||
version_win32.h \
|
||||
warnless.h \
|
||||
wildcard.h \
|
||||
ws.h
|
||||
|
||||
LIB_RCFILES = libcurl.rc
|
||||
|
@ -181,6 +181,43 @@ struct ftp_parselist_data {
|
||||
} offsets;
|
||||
};
|
||||
|
||||
static void fileinfo_dtor(void *user, void *element)
|
||||
{
|
||||
(void)user;
|
||||
Curl_fileinfo_cleanup(element);
|
||||
}
|
||||
|
||||
CURLcode Curl_wildcard_init(struct WildcardData *wc)
|
||||
{
|
||||
Curl_llist_init(&wc->filelist, fileinfo_dtor);
|
||||
wc->state = CURLWC_INIT;
|
||||
|
||||
return CURLE_OK;
|
||||
}
|
||||
|
||||
void Curl_wildcard_dtor(struct WildcardData **wcp)
|
||||
{
|
||||
struct WildcardData *wc = *wcp;
|
||||
if(!wc)
|
||||
return;
|
||||
|
||||
if(wc->dtor) {
|
||||
wc->dtor(wc->ftpwc);
|
||||
wc->dtor = ZERO_NULL;
|
||||
wc->ftpwc = NULL;
|
||||
}
|
||||
DEBUGASSERT(wc->ftpwc == NULL);
|
||||
|
||||
Curl_llist_destroy(&wc->filelist, NULL);
|
||||
free(wc->path);
|
||||
wc->path = NULL;
|
||||
free(wc->pattern);
|
||||
wc->pattern = NULL;
|
||||
wc->state = CURLWC_INIT;
|
||||
free(wc);
|
||||
*wcp = NULL;
|
||||
}
|
||||
|
||||
struct ftp_parselist_data *Curl_ftp_parselist_data_alloc(void)
|
||||
{
|
||||
return calloc(1, sizeof(struct ftp_parselist_data));
|
||||
|
@ -39,5 +39,39 @@ struct ftp_parselist_data *Curl_ftp_parselist_data_alloc(void);
|
||||
|
||||
void Curl_ftp_parselist_data_free(struct ftp_parselist_data **pl_data);
|
||||
|
||||
/* list of wildcard process states */
|
||||
typedef enum {
|
||||
CURLWC_CLEAR = 0,
|
||||
CURLWC_INIT = 1,
|
||||
CURLWC_MATCHING, /* library is trying to get list of addresses for
|
||||
downloading */
|
||||
CURLWC_DOWNLOADING,
|
||||
CURLWC_CLEAN, /* deallocate resources and reset settings */
|
||||
CURLWC_SKIP, /* skip over concrete file */
|
||||
CURLWC_ERROR, /* error cases */
|
||||
CURLWC_DONE /* if is wildcard->state == CURLWC_DONE wildcard loop
|
||||
will end */
|
||||
} wildcard_states;
|
||||
|
||||
typedef void (*wildcard_dtor)(void *ptr);
|
||||
|
||||
/* struct keeping information about wildcard download process */
|
||||
struct WildcardData {
|
||||
char *path; /* path to the directory, where we trying wildcard-match */
|
||||
char *pattern; /* wildcard pattern */
|
||||
struct Curl_llist filelist; /* llist with struct Curl_fileinfo */
|
||||
struct ftp_wc *ftpwc; /* pointer to FTP wildcard data */
|
||||
wildcard_dtor dtor;
|
||||
unsigned char state; /* wildcard_states */
|
||||
};
|
||||
|
||||
CURLcode Curl_wildcard_init(struct WildcardData *wc);
|
||||
void Curl_wildcard_dtor(struct WildcardData **wcp);
|
||||
|
||||
struct Curl_easy;
|
||||
|
||||
#else
|
||||
/* FTP is disabled */
|
||||
#define Curl_wildcard_dtor(x)
|
||||
#endif /* CURL_DISABLE_FTP */
|
||||
#endif /* HEADER_CURL_FTPLISTPARSER_H */
|
||||
|
@ -168,7 +168,7 @@ typedef CURLcode (*Curl_datastream)(struct Curl_easy *data,
|
||||
#include "rtsp.h"
|
||||
#include "smb.h"
|
||||
#include "mqtt.h"
|
||||
#include "wildcard.h"
|
||||
#include "ftplistparser.h"
|
||||
#include "multihandle.h"
|
||||
#include "c-hyper.h"
|
||||
#include "cf-socket.h"
|
||||
|
@ -1,74 +0,0 @@
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
#include "curl_setup.h"
|
||||
|
||||
#ifndef CURL_DISABLE_FTP
|
||||
|
||||
#include "wildcard.h"
|
||||
#include "llist.h"
|
||||
#include "fileinfo.h"
|
||||
/* The last 3 #include files should be in this order */
|
||||
#include "curl_printf.h"
|
||||
#include "curl_memory.h"
|
||||
#include "memdebug.h"
|
||||
|
||||
static void fileinfo_dtor(void *user, void *element)
|
||||
{
|
||||
(void)user;
|
||||
Curl_fileinfo_cleanup(element);
|
||||
}
|
||||
|
||||
CURLcode Curl_wildcard_init(struct WildcardData *wc)
|
||||
{
|
||||
Curl_llist_init(&wc->filelist, fileinfo_dtor);
|
||||
wc->state = CURLWC_INIT;
|
||||
|
||||
return CURLE_OK;
|
||||
}
|
||||
|
||||
void Curl_wildcard_dtor(struct WildcardData **wcp)
|
||||
{
|
||||
struct WildcardData *wc = *wcp;
|
||||
if(!wc)
|
||||
return;
|
||||
|
||||
if(wc->dtor) {
|
||||
wc->dtor(wc->ftpwc);
|
||||
wc->dtor = ZERO_NULL;
|
||||
wc->ftpwc = NULL;
|
||||
}
|
||||
DEBUGASSERT(wc->ftpwc == NULL);
|
||||
|
||||
Curl_llist_destroy(&wc->filelist, NULL);
|
||||
free(wc->path);
|
||||
wc->path = NULL;
|
||||
free(wc->pattern);
|
||||
wc->pattern = NULL;
|
||||
wc->state = CURLWC_INIT;
|
||||
free(wc);
|
||||
*wcp = NULL;
|
||||
}
|
||||
|
||||
#endif /* if disabled */
|
@ -1,69 +0,0 @@
|
||||
#ifndef HEADER_CURL_WILDCARD_H
|
||||
#define HEADER_CURL_WILDCARD_H
|
||||
/***************************************************************************
|
||||
* _ _ ____ _
|
||||
* Project ___| | | | _ \| |
|
||||
* / __| | | | |_) | |
|
||||
* | (__| |_| | _ <| |___
|
||||
* \___|\___/|_| \_\_____|
|
||||
*
|
||||
* Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
*
|
||||
* This software is licensed as described in the file COPYING, which
|
||||
* you should have received as part of this distribution. The terms
|
||||
* are also available at https://curl.se/docs/copyright.html.
|
||||
*
|
||||
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||
* copies of the Software, and permit persons to whom the Software is
|
||||
* furnished to do so, under the terms of the COPYING file.
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||
* KIND, either express or implied.
|
||||
*
|
||||
* SPDX-License-Identifier: curl
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
#include "curl_setup.h"
|
||||
|
||||
#ifndef CURL_DISABLE_FTP
|
||||
#include <curl/curl.h>
|
||||
#include "llist.h"
|
||||
|
||||
/* list of wildcard process states */
|
||||
typedef enum {
|
||||
CURLWC_CLEAR = 0,
|
||||
CURLWC_INIT = 1,
|
||||
CURLWC_MATCHING, /* library is trying to get list of addresses for
|
||||
downloading */
|
||||
CURLWC_DOWNLOADING,
|
||||
CURLWC_CLEAN, /* deallocate resources and reset settings */
|
||||
CURLWC_SKIP, /* skip over concrete file */
|
||||
CURLWC_ERROR, /* error cases */
|
||||
CURLWC_DONE /* if is wildcard->state == CURLWC_DONE wildcard loop
|
||||
will end */
|
||||
} wildcard_states;
|
||||
|
||||
typedef void (*wildcard_dtor)(void *ptr);
|
||||
|
||||
/* struct keeping information about wildcard download process */
|
||||
struct WildcardData {
|
||||
char *path; /* path to the directory, where we trying wildcard-match */
|
||||
char *pattern; /* wildcard pattern */
|
||||
struct Curl_llist filelist; /* llist with struct Curl_fileinfo */
|
||||
struct ftp_wc *ftpwc; /* pointer to FTP wildcard data */
|
||||
wildcard_dtor dtor;
|
||||
unsigned char state; /* wildcard_states */
|
||||
};
|
||||
|
||||
CURLcode Curl_wildcard_init(struct WildcardData *wc);
|
||||
void Curl_wildcard_dtor(struct WildcardData **wcp);
|
||||
|
||||
struct Curl_easy;
|
||||
|
||||
#else
|
||||
/* FTP is disabled */
|
||||
#define Curl_wildcard_dtor(x)
|
||||
#endif
|
||||
|
||||
#endif /* HEADER_CURL_WILDCARD_H */
|
Loading…
Reference in New Issue
Block a user