http->soup = soup_session_sync_new();
http->prefix = g_strdup(prefix);
g_object_set(http->soup, "user-agent", PACKAGE_STRING, NULL);
+ g_object_set(http->soup, "timeout", 10, NULL);
return http;
}
if (!g_file_test(path, G_FILE_TEST_EXISTS))
part = g_strdup_printf("%s.part", path);
FILE *fp = fopen_p(part, "ab");
+ if (!fp) {
+ g_warning("GritsHttp: fetch - error opening %s", path);
+ return NULL;
+ }
fseek(fp, 0, SEEK_END); // "a" is broken on Windows, twice
/* Make temp data */
if (message == NULL)
g_error("message is null, cannot parse uri");
g_signal_connect(message, "got-chunk", G_CALLBACK(_chunk_cb), &info);
- soup_message_headers_set_range(message->request_headers, ftell(fp), -1);
+ //if (ftell(fp) > 0)
+ soup_message_headers_set_range(message->request_headers, ftell(fp), -1);
if (mode == GRITS_REFRESH)
soup_message_headers_replace(message->request_headers,
"Cache-Control", "max-age=0");
}
/* Finished */
- if (message->status_code == 416) {
+ if (message->status_code == SOUP_STATUS_CANCELLED) {
+ return NULL;
+ } else if (message->status_code == SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE) {
/* Range unsatisfiable, file already complete */
} else if (!SOUP_STATUS_IS_SUCCESSFUL(message->status_code)) {
g_warning("GritsHttp: done_cb - error copying file, status=%d\n"