summaryrefslogtreecommitdiff
path: root/content/fetchcache.c
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2003-10-25 16:22:11 +0000
committerJames Bursa <james@netsurf-browser.org>2003-10-25 16:22:11 +0000
commit146011f919db768f3f580f1976bfede88c645824 (patch)
treeef2810cfc851f4b9299c89a8b950db3417184879 /content/fetchcache.c
parentb514f9e1e35c6ce25a7bdf9b014759c915b77222 (diff)
downloadnetsurf-146011f919db768f3f580f1976bfede88c645824.tar.gz
netsurf-146011f919db768f3f580f1976bfede88c645824.tar.bz2
[project @ 2003-10-25 16:22:11 by bursa]
Implement multipart/formdata POST. svn path=/import/netsurf/; revision=377
Diffstat (limited to 'content/fetchcache.c')
-rw-r--r--content/fetchcache.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/content/fetchcache.c b/content/fetchcache.c
index 942f38773..13ddbc9c5 100644
--- a/content/fetchcache.c
+++ b/content/fetchcache.c
@@ -55,16 +55,19 @@ struct content * fetchcache(const char *url0, char *referer,
LOG(("url %s", url));
- c = cache_get(url);
- if (c != 0) {
- free(url);
- content_add_user(c, callback, p1, p2);
- return c;
+ if (!post_urlenc && !post_multipart) {
+ c = cache_get(url);
+ if (c != 0) {
+ free(url);
+ content_add_user(c, callback, p1, p2);
+ return c;
+ }
}
c = content_create(url);
content_add_user(c, callback, p1, p2);
- cache_put(c);
+ if (!post_urlenc && !post_multipart)
+ cache_put(c);
c->fetch_size = 0;
c->width = width;
c->height = height;
@@ -73,7 +76,8 @@ struct content * fetchcache(const char *url0, char *referer,
free(url);
if (c->fetch == 0) {
LOG(("warning: fetch_start failed"));
- cache_destroy(c);
+ if (c->cache)
+ cache_destroy(c);
content_destroy(c);
return 0;
}
@@ -132,7 +136,8 @@ void fetchcache_callback(fetch_msg msg, void *p, char *data, unsigned long size)
LOG(("FETCH_ERROR, '%s'", data));
c->fetch = 0;
content_broadcast(c, CONTENT_MSG_ERROR, data);
- cache_destroy(c);
+ if (c->cache)
+ cache_destroy(c);
content_destroy(c);
break;
@@ -144,7 +149,8 @@ void fetchcache_callback(fetch_msg msg, void *p, char *data, unsigned long size)
url = url_join(data, c->url);
content_broadcast(c, CONTENT_MSG_REDIRECT, url);
xfree(url);
- cache_destroy(c);
+ if (c->cache)
+ cache_destroy(c);
content_destroy(c);
break;