]> git.ipfire.org Git - thirdparty/squid.git/blob - src/HttpHdrScTarget.cc
Docs: Copyright updates for 2018 (#114)
[thirdparty/squid.git] / src / HttpHdrScTarget.cc
1 /*
2 * Copyright (C) 1996-2018 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9 /* DEBUG: section 90 HTTP Cache Control Header */
10
11 #include "squid.h"
12 #include "HttpHdrScTarget.h"
13 #include "StatHist.h"
14
15 http_hdr_sc_type &operator++ (http_hdr_sc_type &aHeader);
16 /* copies non-extant fields from new_sc to this sc */
17 void
18 HttpHdrScTarget::mergeWith(const HttpHdrScTarget * new_sc)
19 {
20 assert(new_sc);
21 /* Don't touch the target - this is used to get the operations for a
22 * single surrogate
23 */
24
25 if (new_sc->hasNoStore())
26 noStore(true);
27
28 if (new_sc->hasNoStoreRemote())
29 noStoreRemote(true);
30
31 if (new_sc->hasMaxAge() && !hasMaxAge()) {
32 maxAge(new_sc->maxAge());
33 maxStale(new_sc->maxStale());
34 }
35
36 if (new_sc->hasContent() && !hasContent())
37 Content(new_sc->content());
38
39 }
40
41 void
42 HttpHdrScTarget::updateStats(StatHist * hist) const
43 {
44 http_hdr_sc_type c;
45
46 for (c = SC_NO_STORE; c < SC_ENUM_END; ++c)
47 if (isSet(c))
48 hist->count(c);
49 }
50