summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJorge Arellano Cid <jcid@dillo.org>2011-09-02 16:50:03 -0300
committerJorge Arellano Cid <jcid@dillo.org>2011-09-02 16:50:03 -0300
commit5f13e27cd63be637586cf3dd1b6fdf5c98e93328 (patch)
tree96029ac8a17e41ffc2abaaaebe5ccf72ddf96e86 /src
parentb182219ab37e1ed7256b547351c905d28ad90b1a (diff)
Cancel the expected URL after offering a download, part 2 (BUG#982)
There was a convoluted way of using an already freed bw: first, one bw asks for a page, and that becomes conn->bw, and then another bw starts also asking for the page, and the first bw closes, invalidating the conn->bw, and then the second bw closes and the cancel expect code tries to use the old bw. Fixed now.
Diffstat (limited to 'src')
-rw-r--r--src/cache.c2
-rw-r--r--src/capi.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/cache.c b/src/cache.c
index 5ea45511..3804ac7e 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -1176,6 +1176,8 @@ static CacheEntry_t *Cache_process_queue(CacheEntry_t *entry)
}
}
if (AbortEntry) {
+ if (ClientWeb->flags & WEB_RootUrl)
+ a_Nav_cancel_expect_if_eq(Client_bw, Client->Url);
a_Bw_remove_client(Client_bw, Client->Key);
Cache_client_dequeue(Client, NULLKey);
--i; /* Keep the index value in the next iteration */
diff --git a/src/capi.c b/src/capi.c
index 885b4eb8..33cfb54c 100644
--- a/src/capi.c
+++ b/src/capi.c
@@ -767,7 +767,6 @@ void a_Capi_ccc(int Op, int Branch, int Dir, ChainLink *Info,
a_Chain_bcb(OpAbort, Info, NULL, NULL);
/* remove the cache entry for this URL */
a_Cache_entry_remove_by_url(conn->url);
- a_Nav_cancel_expect_if_eq(conn->bw, conn->url);
Capi_conn_unref(conn);
dFree(Info);
break;