more refactoring
This commit is contained in:
parent
ee32ddebc9
commit
1efe5932cf
18
src/link.c
18
src/link.c
|
@ -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");
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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),
|
||||
|
|
Loading…
Reference in New Issue