mirror of
https://github.com/fangfufu/httpdirfs.git
synced 2024-09-27 20:51:55 +02:00
improved error handling
This commit is contained in:
parent
1cd04a2a53
commit
a05ba07c85
24
network.c
24
network.c
@ -135,6 +135,10 @@ static char *url_append(const char *url, const char *sublink)
|
|||||||
size_t ul = strlen(url);
|
size_t ul = strlen(url);
|
||||||
size_t sl = strlen(sublink);
|
size_t sl = strlen(sublink);
|
||||||
str = calloc(ul + sl + needs_separator + 1, sizeof(char));
|
str = calloc(ul + sl + needs_separator + 1, sizeof(char));
|
||||||
|
if (!str) {
|
||||||
|
fprintf(stderr, "url_append(): calloc failure!\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
strncpy(str, url, ul);
|
strncpy(str, url, ul);
|
||||||
if (needs_separator) {
|
if (needs_separator) {
|
||||||
str[ul] = '/';
|
str[ul] = '/';
|
||||||
@ -171,8 +175,8 @@ WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp)
|
|||||||
mem->memory = realloc(mem->memory, mem->size + realsize + 1);
|
mem->memory = realloc(mem->memory, mem->size + realsize + 1);
|
||||||
if(mem->memory == NULL) {
|
if(mem->memory == NULL) {
|
||||||
/* out of memory! */
|
/* out of memory! */
|
||||||
fprintf(stderr, "WriteMemoryCallback(): cannot realloc!\n");
|
fprintf(stderr, "WriteMemoryCallback(): realloc failure!\n");
|
||||||
fflush(stderr);
|
exit(EXIT_FAILURE);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,6 +190,10 @@ WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp)
|
|||||||
static Link *Link_new(const char *p_url, LinkType type)
|
static Link *Link_new(const char *p_url, LinkType type)
|
||||||
{
|
{
|
||||||
Link *link = calloc(1, sizeof(Link));
|
Link *link = calloc(1, sizeof(Link));
|
||||||
|
if (!link) {
|
||||||
|
fprintf(stderr, "Link_new(): calloc failure!\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
strncpy(link->p_url, p_url, LINK_LEN_MAX);
|
strncpy(link->p_url, p_url, LINK_LEN_MAX);
|
||||||
link->type = type;
|
link->type = type;
|
||||||
|
|
||||||
@ -247,6 +255,10 @@ long Link_download(const char *path, char *output_buf, size_t size,
|
|||||||
LinkTable *LinkTable_new(const char *url)
|
LinkTable *LinkTable_new(const char *url)
|
||||||
{
|
{
|
||||||
LinkTable *linktbl = calloc(1, sizeof(LinkTable));
|
LinkTable *linktbl = calloc(1, sizeof(LinkTable));
|
||||||
|
if (!linktbl) {
|
||||||
|
fprintf(stderr, "LinkTable_new(): calloc failure!\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
/* populate the base URL */
|
/* populate the base URL */
|
||||||
LinkTable_add(linktbl, Link_new("/", LINK_HEAD));
|
LinkTable_add(linktbl, Link_new("/", LINK_HEAD));
|
||||||
@ -302,9 +314,11 @@ static void LinkTable_free(LinkTable *linktbl)
|
|||||||
static void LinkTable_add(LinkTable *linktbl, Link *link)
|
static void LinkTable_add(LinkTable *linktbl, Link *link)
|
||||||
{
|
{
|
||||||
linktbl->num++;
|
linktbl->num++;
|
||||||
linktbl->links = realloc(
|
linktbl->links = realloc(linktbl->links, linktbl->num * sizeof(Link *));
|
||||||
linktbl->links,
|
if (linktbl->links) {
|
||||||
linktbl->num * sizeof(Link *));
|
fprintf(stderr, "LinkTable_add(): realloc failure!\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
linktbl->links[linktbl->num - 1] = link;
|
linktbl->links[linktbl->num - 1] = link;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user