beautify the filenames
This commit is contained in:
parent
d5b6e08e32
commit
03627fe3fe
|
@ -3,3 +3,4 @@ tmp
|
||||||
*_test.txt
|
*_test.txt
|
||||||
*.kate-swp
|
*.kate-swp
|
||||||
httpdirfs
|
httpdirfs
|
||||||
|
mnt
|
||||||
|
|
2
main.c
2
main.c
|
@ -154,7 +154,7 @@ static int fs_read(const char *path, char *buf, size_t size, off_t offset,
|
||||||
{
|
{
|
||||||
(void) fi;
|
(void) fi;
|
||||||
|
|
||||||
long received = Link_download(path, buf, size, offset);
|
long received = path_download(path, buf, size, offset);
|
||||||
|
|
||||||
return received;
|
return received;
|
||||||
}
|
}
|
||||||
|
|
27
network.c
27
network.c
|
@ -78,13 +78,10 @@ static void nonblocking_transfer(CURL *curl)
|
||||||
/* This uses the curl multi interface */
|
/* This uses the curl multi interface */
|
||||||
static void blocking_transfer(CURL *curl)
|
static void blocking_transfer(CURL *curl)
|
||||||
{
|
{
|
||||||
TransferStruct *transfer = malloc(sizeof(TransferStruct));
|
TransferStruct transfer;
|
||||||
if (!transfer) {
|
transfer.type = DATA;
|
||||||
fprintf(stderr, "blocking_transfer(): malloc failed!\n");
|
transfer.transferring = 1;
|
||||||
}
|
curl_easy_setopt(curl, CURLOPT_PRIVATE, &transfer);
|
||||||
transfer->type = DATA;
|
|
||||||
transfer->transferring = 1;
|
|
||||||
curl_easy_setopt(curl, CURLOPT_PRIVATE, transfer);
|
|
||||||
CURLMcode res = curl_multi_add_handle(curl_multi, curl);
|
CURLMcode res = curl_multi_add_handle(curl_multi, curl);
|
||||||
if(res > 0) {
|
if(res > 0) {
|
||||||
fprintf(stderr, "blocking_multi_transfer(): %d, %s\n",
|
fprintf(stderr, "blocking_multi_transfer(): %d, %s\n",
|
||||||
|
@ -92,10 +89,9 @@ static void blocking_transfer(CURL *curl)
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (transfer->transferring) {
|
while (transfer.transferring) {
|
||||||
curl_multi_perform_once();
|
curl_multi_perform_once();
|
||||||
}
|
}
|
||||||
free(transfer);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -331,7 +327,7 @@ static CURL *Link_to_curl(Link *link)
|
||||||
return curl;
|
return curl;
|
||||||
}
|
}
|
||||||
|
|
||||||
long Link_download(const char *path, char *output_buf, size_t size,
|
long path_download(const char *path, char *output_buf, size_t size,
|
||||||
off_t offset)
|
off_t offset)
|
||||||
{
|
{
|
||||||
Link *link;
|
Link *link;
|
||||||
|
@ -350,7 +346,7 @@ long Link_download(const char *path, char *output_buf, size_t size,
|
||||||
buf.memory = NULL;
|
buf.memory = NULL;
|
||||||
|
|
||||||
#ifdef HTTPDIRFS_INFO
|
#ifdef HTTPDIRFS_INFO
|
||||||
fprintf(stderr, "Link_download(%s, %p, %s);\n",
|
fprintf(stderr, "path_download(%s, %p, %s);\n",
|
||||||
path, output_buf, range_str);
|
path, output_buf, range_str);
|
||||||
#endif
|
#endif
|
||||||
CURL *curl = Link_to_curl(link);
|
CURL *curl = Link_to_curl(link);
|
||||||
|
@ -362,7 +358,7 @@ long Link_download(const char *path, char *output_buf, size_t size,
|
||||||
long http_resp;
|
long http_resp;
|
||||||
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_resp);
|
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &http_resp);
|
||||||
if ( (http_resp != HTTP_OK) && ( http_resp != HTTP_PARTIAL_CONTENT) ) {
|
if ( (http_resp != HTTP_OK) && ( http_resp != HTTP_PARTIAL_CONTENT) ) {
|
||||||
fprintf(stderr, "Link_download(): Could not download %s, HTTP %ld\n",
|
fprintf(stderr, "path_download(): Could not download %s, HTTP %ld\n",
|
||||||
link->f_url, http_resp);
|
link->f_url, http_resp);
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
|
@ -460,6 +456,7 @@ static void link_set_stat(Link* this_link, CURL *curl)
|
||||||
double cl = 0;
|
double cl = 0;
|
||||||
curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &cl);
|
curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &cl);
|
||||||
curl_easy_getinfo(curl, CURLINFO_FILETIME, &(this_link->time));
|
curl_easy_getinfo(curl, CURLINFO_FILETIME, &(this_link->time));
|
||||||
|
|
||||||
if (cl == -1) {
|
if (cl == -1) {
|
||||||
/* Turns out not to be a file after all */
|
/* Turns out not to be a file after all */
|
||||||
this_link->content_length = 0;
|
this_link->content_length = 0;
|
||||||
|
@ -506,6 +503,7 @@ void LinkTable_fill(LinkTable *linktbl)
|
||||||
url = url_append(head_link->f_url, this_link->p_url);
|
url = url_append(head_link->f_url, this_link->p_url);
|
||||||
strncpy(this_link->f_url, url, URL_LEN_MAX);
|
strncpy(this_link->f_url, url, URL_LEN_MAX);
|
||||||
free(url);
|
free(url);
|
||||||
|
|
||||||
if (this_link->type == LINK_FILE && !(this_link->content_length)) {
|
if (this_link->type == LINK_FILE && !(this_link->content_length)) {
|
||||||
Link_get_stat(this_link);
|
Link_get_stat(this_link);
|
||||||
}
|
}
|
||||||
|
@ -572,9 +570,12 @@ static void HTML_to_LinkTable(GumboNode *node, LinkTable *linktbl)
|
||||||
(href = gumbo_get_attribute(&node->v.element.attributes, "href"))) {
|
(href = gumbo_get_attribute(&node->v.element.attributes, "href"))) {
|
||||||
/* if it is valid, copy the link onto the heap */
|
/* if it is valid, copy the link onto the heap */
|
||||||
LinkType type = p_url_type(href->value);
|
LinkType type = p_url_type(href->value);
|
||||||
|
char *unescaped_p_url;
|
||||||
|
unescaped_p_url = curl_easy_unescape(NULL, href->value, 0, NULL);
|
||||||
if (type) {
|
if (type) {
|
||||||
LinkTable_add(linktbl, Link_new(href->value, type));
|
LinkTable_add(linktbl, Link_new(unescaped_p_url, type));
|
||||||
}
|
}
|
||||||
|
curl_free(unescaped_p_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Note the recursive call, lol. */
|
/* Note the recursive call, lol. */
|
||||||
|
|
|
@ -53,7 +53,7 @@ void network_init(const char *url);
|
||||||
* \brief download a link */
|
* \brief download a link */
|
||||||
/* \return the number of bytes downloaded
|
/* \return the number of bytes downloaded
|
||||||
*/
|
*/
|
||||||
long Link_download(const char *path, char *output_buf, size_t size,
|
long path_download(const char *path, char *output_buf, size_t size,
|
||||||
off_t offset);
|
off_t offset);
|
||||||
|
|
||||||
/** \brief create a new LinkTable */
|
/** \brief create a new LinkTable */
|
||||||
|
|
Loading…
Reference in New Issue