if (result.flags.error && !EBIT_TEST(http->storeEntry()->flags, ENTRY_ABORTED))
return;
+ if (collapsedRevalidation == crSlave && EBIT_TEST(http->storeEntry()->flags, KEY_PRIVATE)) {
+ debugs(88, 3, "CF slave hit private " << *http->storeEntry() << ". MISS");
+ // restore context to meet processMiss() expectations
+ restoreState();
+ http->logType = LOG_TCP_MISS;
+ processMiss();
+ return;
+ }
+
/* update size of the request */
reqsize = result.length + reqofs;
return;
}
+ // The previously identified hit suddenly became unsharable!
+ // This is common for collapsed forwarding slaves but might also
+ // happen to regular hits because we are called asynchronously.
+ if (EBIT_TEST(e->flags, KEY_PRIVATE)) {
+ debugs(88, 3, "unsharable " << *e << ". MISS");
+ http->logType = LOG_TCP_MISS;
+ processMiss();
+ return;
+ }
+
if (result.length == 0) {
debugs(88, 5, "store IO buffer has no content. MISS");
/* the store couldn't get enough data from the file for us to id the
hdr->delById(HDR_ETAG);
#endif
- if (is_hit)
+ if (is_hit || collapsedRevalidation == crSlave)
hdr->delById(Http::HdrType::SET_COOKIE);
// TODO: RFC 2965 : Must honour Cache-Control: no-cache="set-cookie2" and remove header.