more refactoring

This commit is contained in:
Fufu Fang 2021-09-03 16:58:08 +01:00
parent ee32ddebc9
commit 1efe5932cf
4 changed files with 20 additions and 22 deletions

View File

@ -530,7 +530,7 @@ LinkTable *LinkTable_new(const char *url)
* start downloading the base URL
*/
TransferStruct ts = Link_download_full(linktbl->links[0]);
if (ts.size == 0) {
if (ts.curr_size == 0) {
LinkTable_free(linktbl);
return NULL;
}
@ -833,7 +833,7 @@ TransferStruct Link_download_full(Link *link)
CURL *curl = Link_to_curl(link);
TransferStruct ts;
ts.size = 0;
ts.curr_size = 0;
ts.data = NULL;
ts.type = DATA;
ts.transferring = 1;
@ -865,7 +865,7 @@ TransferStruct Link_download_full(Link *link)
} else if (http_resp != HTTP_OK) {
lprintf(warning,
"cannot retrieve URL: %s, HTTP %ld\n", url, http_resp);
ts.size = 0;
ts.curr_size = 0;
FREE(ts.data);
curl_easy_cleanup(curl);
return ts;
@ -957,17 +957,16 @@ range requests\n");
return recv;
}
long
Link_download(Link *link, char *output_buf, size_t req_size, off_t offset)
long Link_download(Link *link, char *output_buf, size_t req_size, off_t offset)
{
TransferStruct ts;
ts.size = 0;
ts.curr_size = 0;
ts.data = NULL;
ts.type = DATA;
ts.transferring = 1;
TransferStruct header;
header.size = 0;
header.curr_size = 0;
header.data = NULL;
CURL *curl = Link_download_curl_setup(link, req_size, offset, &header, &ts);
@ -989,9 +988,8 @@ Link_download(Link *link, char *output_buf, size_t req_size, off_t offset)
return recv;
}
long
path_download(const char *path, char *output_buf, size_t req_size,
off_t offset)
long path_download(const char *path, char *output_buf, size_t req_size,
off_t offset)
{
if (!path) {
lprintf(fatal, "NULL path supplied\n");

View File

@ -41,7 +41,7 @@ struct TransferStruct {
/** \brief The array to store the data */
char *data;
/** \brief The current size of the array */
size_t size;
size_t curr_size;
/** \brief The minium requested size */
size_t min_req_size;
/** \brief The type of transfer being done */

View File

@ -317,24 +317,24 @@ void transfer_nonblocking(CURL *curl)
}
}
size_t write_memory_callback(void *contents, size_t size, size_t nmemb,
size_t write_memory_callback(void *recv_data, size_t size, size_t nmemb,
void *userp)
{
size_t realsize = size * nmemb;
TransferStruct *mem = (TransferStruct *) userp;
size_t recv_size = size * nmemb;
TransferStruct *ts = (TransferStruct *) userp;
mem->data = realloc(mem->data, mem->size + realsize + 1);
if (!mem->data) {
ts->data = realloc(ts->data, ts->curr_size + recv_size + 1);
if (!ts->data) {
/*
* out of memory!
*/
lprintf(fatal, "realloc failure!\n");
}
memmove(&mem->data[mem->size], contents, realsize);
mem->size += realsize;
mem->data[mem->size] = 0;
return realsize;
memmove(&ts->data[ts->curr_size], recv_data, recv_size);
ts->curr_size += recv_size;
ts->data[ts->curr_size] = '\0';
return recv_size;
}
int HTTP_temp_failure(HTTPResponseCode http_resp)

View File

@ -332,7 +332,7 @@ static LinkTable *sonic_url_to_LinkTable(const char *url,
* start downloading the base URL
*/
TransferStruct xml = Link_download_full(linktbl->links[0]);
if (xml.size == 0) {
if (xml.curr_size == 0) {
LinkTable_free(linktbl);
return NULL;
}
@ -342,7 +342,7 @@ static LinkTable *sonic_url_to_LinkTable(const char *url,
XML_SetStartElementHandler(parser, handler);
if (XML_Parse(parser, xml.data, xml.size, 1) == XML_STATUS_ERROR) {
if (XML_Parse(parser, xml.data, xml.curr_size, 1) == XML_STATUS_ERROR) {
lprintf(error,
"Parse error at line %lu: %s\n",
XML_GetCurrentLineNumber(parser),