]> git.ipfire.org Git - thirdparty/squid.git/blame_incremental - src/HttpHdrScTarget.cc
Source Format Enforcement (#532)
[thirdparty/squid.git] / src / HttpHdrScTarget.cc
... / ...
CommitLineData
1/*
2 * Copyright (C) 1996-2020 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
15http_hdr_sc_type &operator++ (http_hdr_sc_type &aHeader);
16/* copies non-extant fields from new_sc to this sc */
17void
18HttpHdrScTarget::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
41void
42HttpHdrScTarget::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