X-Git-Url: http://pileus.org/git/?p=grits;a=blobdiff_plain;f=src%2Fdata%2Fgrits-http.c;fp=src%2Fdata%2Fgrits-http.c;h=45b30df0f767b94b7cf98fa50735f860dd0a239a;hp=01bc7053b61504f3c6b8981604ec444263b23871;hb=fde5359a826dadb68cfe3f62f0f3c9e0c25f3438;hpb=6793e7a7f7752e8924c40c0e0c99e857350d7356 diff --git a/src/data/grits-http.c b/src/data/grits-http.c index 01bc705..45b30df 100644 --- a/src/data/grits-http.c +++ b/src/data/grits-http.c @@ -58,6 +58,19 @@ GritsHttp *grits_http_new(const gchar *prefix) return http; } +/** + * grits_http_abort: + * @http: the #GritsHttp to abort + * + * Cancels any pending requests and prevents new requests. + */ +void grits_http_abort(GritsHttp *http) +{ + g_debug("GritsHttp: abort - %s", http->prefix); + http->aborted = TRUE; + soup_session_abort(http->soup); +} + /** * grits_http_free: * @http: the #GritsHttp to free @@ -67,7 +80,6 @@ GritsHttp *grits_http_new(const gchar *prefix) void grits_http_free(GritsHttp *http) { g_debug("GritsHttp: free - %s", http->prefix); - soup_session_abort(http->soup); g_object_unref(http->soup); g_free(http->prefix); g_free(http); @@ -148,6 +160,10 @@ gchar *grits_http_fetch(GritsHttp *http, const gchar *uri, const char *local, GritsCacheType mode, GritsChunkCallback callback, gpointer user_data) { g_debug("GritsHttp: fetch - %s mode=%d", local, mode); + if (http->aborted) { + g_debug("GritsPluginSat: _load_tile_thread - aborted"); + return NULL; + } gchar *path = _get_cache_path(http, local); /* Unlink the file if we're refreshing it */