+static void do_cache(gchar *uri, gchar *local, gboolean truncate, gchar *reason,
+ AWeatherCacheDoneCallback callback, gpointer user_data)
+{
+ char *name = g_path_get_basename(uri);
+ g_debug("data: do_cache - Caching file %s: %s", name, reason);
+ g_free(name);
+
+ cache_file_end_t *info = g_malloc0(sizeof(cache_file_end_t));
+ info->callback = callback;
+ info->user_data = user_data;
+ info->local = local;
+
+ /* 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(local, "w");
+ else info->fp = fopen_p(local, "a");
+ long bytes = ftell(info->fp);
+
+ SoupSession *session = soup_session_async_new();
+ SoupMessage *message = soup_message_new("GET", uri);
+ if (message == NULL)
+ g_error("message is null, cannot parse uri");
+ if (bytes != 0)
+ soup_message_headers_set_range(message->request_headers, bytes, -1);
+ soup_session_queue_message(session, message, cache_file_cb, info);
+}
+
+/*