mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-11-25 07:49:38 +03:00
HTTP: expose validity of max-age in Cache-Control
As max-age is an optional directive, provide a means to determine if it is present and correct.
This commit is contained in:
parent
047c82cfce
commit
23698aecf8
@ -30,6 +30,7 @@
|
||||
*/
|
||||
struct http_cache_control {
|
||||
uint32_t max_age; /**< Max age (delta seconds) */
|
||||
bool max_age_valid; /**< Whether max-age is valid */
|
||||
bool no_cache; /**< Whether caching is forbidden */
|
||||
bool no_store; /**< Whether persistent caching is forbidden */
|
||||
};
|
||||
@ -240,6 +241,7 @@ nserror http_parse_cache_control(const char *header_value,
|
||||
http_directive *directives = NULL;
|
||||
lwc_string *value_str = NULL;
|
||||
uint32_t max_age = 0;
|
||||
bool max_age_valid = false;
|
||||
bool no_cache = false;
|
||||
bool no_store = false;
|
||||
nserror error;
|
||||
@ -279,6 +281,7 @@ nserror http_parse_cache_control(const char *header_value,
|
||||
corestring_lwc_max_age, &value_str);
|
||||
if (error == NSERROR_OK && value_str != NULL) {
|
||||
error = parse_max_age(value_str, &max_age);
|
||||
max_age_valid = (error == NSERROR_OK);
|
||||
lwc_string_unref(value_str);
|
||||
}
|
||||
|
||||
@ -310,6 +313,7 @@ nserror http_parse_cache_control(const char *header_value,
|
||||
}
|
||||
|
||||
cc->max_age = max_age;
|
||||
cc->max_age_valid = max_age_valid;
|
||||
cc->no_cache = no_cache;
|
||||
cc->no_store = no_store;
|
||||
|
||||
@ -324,6 +328,12 @@ void http_cache_control_destroy(http_cache_control *victim)
|
||||
free(victim);
|
||||
}
|
||||
|
||||
/* See cache-control.h for documentation */
|
||||
bool http_cache_control_has_max_age(http_cache_control *cc)
|
||||
{
|
||||
return cc->max_age_valid;
|
||||
}
|
||||
|
||||
/* See cache-control.h for documentation */
|
||||
uint32_t http_cache_control_max_age(http_cache_control *cc)
|
||||
{
|
||||
|
@ -42,6 +42,14 @@ nserror http_parse_cache_control(const char *header_value,
|
||||
*/
|
||||
void http_cache_control_destroy(http_cache_control *victim);
|
||||
|
||||
/**
|
||||
* Determine if a valid max-age directive is present
|
||||
*
|
||||
* \param cc Object to inspect
|
||||
* \return Whether max-age is valid
|
||||
*/
|
||||
bool http_cache_control_has_max_age(http_cache_control *cc);
|
||||
|
||||
/**
|
||||
* Get the value of a cache control's max-age
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user