diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2006-02-06 00:10:09 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2006-02-06 00:10:09 +0000 |
commit | 0f228ada91a9460d1042b1a854fb1a0a32ed3f10 (patch) | |
tree | b8279b6c948d3c5d5b3cb470434b2dc6c85fbca4 /content/fetch.h | |
parent | c176e276e2de15a306872e3d4fa74193178eaadf (diff) | |
download | netsurf-0f228ada91a9460d1042b1a854fb1a0a32ed3f10.tar.gz netsurf-0f228ada91a9460d1042b1a854fb1a0a32ed3f10.tar.bz2 |
[project @ 2006-02-06 00:10:09 by jmb]
Implement HTTP caching algorithm; this should avoid stale cache entries being used.
svn path=/import/netsurf/; revision=2059
Diffstat (limited to 'content/fetch.h')
-rw-r--r-- | content/fetch.h | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/content/fetch.h b/content/fetch.h index 38de5d090..b65e150ff 100644 --- a/content/fetch.h +++ b/content/fetch.h @@ -23,6 +23,7 @@ typedef enum { FETCH_FINISHED, FETCH_ERROR, FETCH_REDIRECT, + FETCH_NOTMODIFIED, #ifdef WITH_AUTH FETCH_AUTH #endif @@ -30,9 +31,19 @@ typedef enum { struct content; struct fetch; -#ifdef WITH_POST struct form_successful_control; -#endif + +struct cache_data { + time_t req_time; /**< Time of request */ + time_t res_time; /**< Time of response */ + time_t date; /**< Date: response header */ + time_t expires; /**< Expires: response header */ +#define INVALID_AGE -1 + int age; /**< Age: response header */ + int max_age; /**< Max-age Cache-control parameter */ + bool no_cache; /**< no-cache Cache-control parameter */ + char *etag; /**< Etag: response header */ +}; extern bool fetch_active; extern CURLM *fetch_curl_multi; @@ -41,15 +52,9 @@ void fetch_init(void); struct fetch * fetch_start(char *url, char *referer, void (*callback)(fetch_msg msg, void *p, const char *data, unsigned long size), - void *p, bool only_2xx -#ifdef WITH_POST - , char *post_urlenc, - struct form_successful_control *post_multipart -#endif -#ifdef WITH_COOKIES - ,bool cookies -#endif - ); + void *p, bool only_2xx, char *post_urlenc, + struct form_successful_control *post_multipart, + bool cookies, char *headers[]); void fetch_abort(struct fetch *f); void fetch_poll(void); void fetch_quit(void); |