summaryrefslogtreecommitdiff
path: root/content/llcache.c
diff options
context:
space:
mode:
Diffstat (limited to 'content/llcache.c')
-rw-r--r--content/llcache.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/content/llcache.c b/content/llcache.c
index c56db13e3..c01a91fe0 100644
--- a/content/llcache.c
+++ b/content/llcache.c
@@ -1650,6 +1650,13 @@ void llcache_fetch_callback(fetch_msg msg, void *p, const void *data,
#endif
switch (msg) {
+ case FETCH_HEADER:
+ /* Received a fetch header */
+ object->fetch.state = LLCACHE_FETCH_HEADERS;
+
+ error = llcache_fetch_process_header(object, data, size);
+ break;
+
/* 3xx responses */
case FETCH_REDIRECT:
/* Request resulted in a redirect */
@@ -1668,18 +1675,6 @@ void llcache_fetch_callback(fetch_msg msg, void *p, const void *data,
break;
/* Normal 2xx state machine */
- case FETCH_HEADER:
- /* Received a fetch header */
- object->fetch.state = LLCACHE_FETCH_HEADERS;
-
- /* Release candidate, if any */
- if (object->candidate != NULL) {
- object->candidate->candidate_count--;
- object->candidate = NULL;
- }
-
- error = llcache_fetch_process_header(object, data, size);
- break;
case FETCH_DATA:
/* Received some data */
if (object->fetch.state != LLCACHE_FETCH_DATA) {
@@ -1704,6 +1699,12 @@ void llcache_fetch_callback(fetch_msg msg, void *p, const void *data,
/* Invalidate cache control data */
llcache_invalidate_cache_control_data(object);
}
+
+ /* Release candidate, if any */
+ if (object->candidate != NULL) {
+ object->candidate->candidate_count--;
+ object->candidate = NULL;
+ }
}
object->fetch.state = LLCACHE_FETCH_DATA;