- GError *error = NULL;
- GFileInfo *info = g_file_query_info(file, G_FILE_ATTRIBUTE_STANDARD_SIZE, 0, NULL, &error);
- if (error)
- g_warning("unable to get file size: %s", error->message);
- return g_file_info_get_size(info);
+ char *name = g_path_get_basename(info->uri);
+ g_debug("data: do_cache - Caching file %s: %s", name, reason);
+ g_free(name);
+
+ /* TODO: move this to callback so we don't end up with 0 byte files
+ * Then change back to check for valid file after download */
+ if (truncate) info->fp = fopen_p(info->local, "w");
+ else info->fp = fopen_p(info->local, "a");
+ long bytes = ftell(info->fp);
+
+ SoupSession *session = soup_session_async_new();
+ g_object_set(session, "user-agent", PACKAGE_STRING, NULL);
+ SoupMessage *message = soup_message_new("GET", info->uri);
+ 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, bytes, -1);
+ soup_session_queue_message(session, message, done_cb, info);
+ return session;