diff --git a/src/document/html/parser.c b/src/document/html/parser.c
index 1bf2611ce..71cc033a2 100644
--- a/src/document/html/parser.c
+++ b/src/document/html/parser.c
@@ -446,67 +446,68 @@ static void
check_head_for_cache_control(struct html_context *html_context,
unsigned char *head)
{
- if (!get_opt_bool("document.cache.ignore_cache_control", NULL)) {
- unsigned char *d;
- int no_cache = 0;
- time_t expires = 0;
+ unsigned char *d;
+ int no_cache = 0;
+ time_t expires = 0;
- /* XXX: Code duplication with HTTP protocol backend. */
- /* I am not entirely sure in what order we should process these
- * headers and if we should still process Cache-Control max-age
- * if we already set max age to date mentioned in Expires.
- * --jonas */
- if ((d = parse_header(head, "Pragma", NULL))) {
- if (strstr(d, "no-cache")) {
- no_cache = 1;
- }
- mem_free(d);
+ if (get_opt_bool("document.cache.ignore_cache_control", NULL))
+ return;
+
+ /* XXX: Code duplication with HTTP protocol backend. */
+ /* I am not entirely sure in what order we should process these
+ * headers and if we should still process Cache-Control max-age
+ * if we already set max age to date mentioned in Expires.
+ * --jonas */
+ if ((d = parse_header(head, "Pragma", NULL))) {
+ if (strstr(d, "no-cache")) {
+ no_cache = 1;
}
-
- if (!no_cache && (d = parse_header(head, "Cache-Control", NULL))) {
- if (strstr(d, "no-cache") || strstr(d, "must-revalidate")) {
- no_cache = 1;
-
- } else {
- unsigned char *pos = strstr(d, "max-age=");
-
- assert(!no_cache);
-
- if (pos) {
- /* Grab the number of seconds. */
- timeval_T max_age, seconds;
-
- timeval_from_seconds(&seconds, atol(pos + 8));
- timeval_now(&max_age);
- timeval_add_interval(&max_age, &seconds);
-
- expires = timeval_to_seconds(&max_age);
- }
- }
-
- mem_free(d);
- }
-
- if (!no_cache && (d = parse_header(head, "Expires", NULL))) {
- /* Convert date to seconds. */
- if (strstr(d, "now")) {
- timeval_T now;
-
- timeval_now(&now);
- expires = timeval_to_seconds(&now);
- } else {
- expires = parse_date(&d, NULL, 0, 1);
- }
-
- mem_free(d);
- }
-
- if (no_cache)
- html_context->special_f(html_context, SP_CACHE_CONTROL);
- else if (expires)
- html_context->special_f(html_context,
- SP_CACHE_EXPIRES, expires);
+ mem_free(d);
}
+
+ if (!no_cache && (d = parse_header(head, "Cache-Control", NULL))) {
+ if (strstr(d, "no-cache") || strstr(d, "must-revalidate")) {
+ no_cache = 1;
+
+ } else {
+ unsigned char *pos = strstr(d, "max-age=");
+
+ assert(!no_cache);
+
+ if (pos) {
+ /* Grab the number of seconds. */
+ timeval_T max_age, seconds;
+
+ timeval_from_seconds(&seconds, atol(pos + 8));
+ timeval_now(&max_age);
+ timeval_add_interval(&max_age, &seconds);
+
+ expires = timeval_to_seconds(&max_age);
+ }
+ }
+
+ mem_free(d);
+ }
+
+ if (!no_cache && (d = parse_header(head, "Expires", NULL))) {
+ /* Convert date to seconds. */
+ if (strstr(d, "now")) {
+ timeval_T now;
+
+ timeval_now(&now);
+ expires = timeval_to_seconds(&now);
+ } else {
+ expires = parse_date(&d, NULL, 0, 1);
+ }
+
+ mem_free(d);
+ }
+
+ if (no_cache)
+ html_context->special_f(html_context, SP_CACHE_CONTROL);
+ else if (expires)
+ html_context->special_f(html_context,
+ SP_CACHE_EXPIRES, expires);
}
void