- char *url = g_file_get_path(info->src);
- char *local = g_file_get_path(info->dst);
- GError *error = NULL;
- g_file_copy_finish(G_FILE(source_object), res, &error);
- if (error) {
- g_warning("data: error copying file ([%s]->[%s]): %s",
- url, local, error->message);
- g_error_free(error);
+ gchar *uri = soup_uri_to_string(soup_message_get_uri(message), FALSE);
+ g_debug("data: cache_file_cb");
+
+ if (message->status_code == 416) {
+ /* Range unsatisfiable, file already complete */
+ info->callback(info->local, FALSE, info->user_data);
+ } else if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code)) {
+ gint wrote = fwrite(message->response_body->data, 1,
+ message->response_body->length, info->fp);
+ g_debug("data: status=%u wrote=%d/%lld",
+ message->status_code,
+ wrote, message->response_body->length);
+ fclose(info->fp);
+ info->callback(info->local, TRUE, info->user_data);