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=8880d7484710186e7534dc85d985a409a8260864;hp=3b0c83ebd6c9fa8774db46cd63b009043a87fc92;hb=81d8f34cc62ae85d9243ad0eb8c4587282c11710;hpb=ff72b493deceef82d583d50c478857ebf3bd0a17 diff --git a/src/data/grits-http.c b/src/data/grits-http.c index 3b0c83e..8880d74 100644 --- a/src/data/grits-http.c +++ b/src/data/grits-http.c @@ -192,26 +192,28 @@ gchar *grits_http_fetch(GritsHttp *http, const gchar *uri, const char *local, /* Close file */ fclose(fp); - if (path != part && SOUP_STATUS_IS_SUCCESSFUL(message->status_code)) { - g_rename(part, path); + if (path != part) { + if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code)) + g_rename(part, path); g_free(part); } /* Finished */ - if (message->status_code == SOUP_STATUS_CANCELLED) { + guint status = message->status_code; + g_object_unref(message); + if (status == SOUP_STATUS_CANCELLED) { return NULL; - } else if (message->status_code == SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE) { + } else if (status == SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE) { /* Range unsatisfiable, file already complete */ - } else if (!SOUP_STATUS_IS_SUCCESSFUL(message->status_code)) { + } else if (!SOUP_STATUS_IS_SUCCESSFUL(status)) { g_warning("GritsHttp: done_cb - error copying file, status=%d\n" "\tsrc=%s\n" "\tdst=%s", - message->status_code, uri, path); + status, uri, path); return NULL; } } - /* TODO: free everything.. */ return path; }