]> Pileus Git - grits/blobdiff - src/data/gis-http.c
Debugging and memory checking
[grits] / src / data / gis-http.c
index ad21baf5ea03d0436894fefd3e021ad55982dd7a..e89d2526ecaa6a20bc246da352774f26462a275e 100644 (file)
 
 GisHttp *gis_http_new(const gchar *prefix)
 {
-       GisHttp *http = g_new0(GisHttp, 1);
-       http->prefix = g_strdup(prefix);
-       http->soup = soup_session_sync_new();
-       g_object_set(http->soup, "user-agent", PACKAGE_STRING, NULL);
-       return http;
+       g_debug("GisHttp: new - %s", prefix);
+       GisHttp *self = g_new0(GisHttp, 1);
+       self->soup = soup_session_sync_new();
+       self->prefix = g_strdup(prefix);
+       g_object_set(self->soup, "user-agent", PACKAGE_STRING, NULL);
+       return self;
+}
+
+void gis_http_free(GisHttp *self)
+{
+       g_debug("GisHttp: free - %s", self->prefix);
+       soup_session_abort(self->soup);
+       g_object_unref(self->soup);
+       g_free(self->prefix);
+       g_free(self);
 }
 
 /* For passing data to the chunck callback */
@@ -68,7 +78,8 @@ static void _chunk_cb(SoupMessage *message, SoupBuffer *chunk, gpointer _info)
 gchar *gis_http_fetch(GisHttp *self, const gchar *uri, const char *local,
                GisCacheType mode, GisChunkCallback callback, gpointer user_data)
 {
-       g_debug("GisHttp: fetch - %s >> %s  mode=%d", uri, self->prefix, mode);
+       g_debug("GisHttp: fetch - %.20s... >> %s/%s  mode=%d",
+                       uri, self->prefix, local, mode);
 
        gchar *path = g_build_filename(g_get_user_cache_dir(), PACKAGE,
                        self->prefix, local, NULL);