/* * Copyright (C) 1996-2017 The Squid Software Foundation and contributors * * Squid software is distributed under GPLv2+ license and includes * contributions from numerous individuals and organizations. * Please see the COPYING and CONTRIBUTORS files for details. */ /* DEBUG: section 65 HTTP Cache Control Header */ #include "Debug.h" #include "defines.h" bool HttpHdrCc::isSet(http_hdr_cc_type id) const { assert(id>=CC_PUBLIC && id < CC_ENUM_END); return EBIT_TEST(mask,id); } void HttpHdrCc::setMask(http_hdr_cc_type id, bool newval) { if (newval) EBIT_SET(mask,id); else EBIT_CLR(mask,id); } /// set a data member to a new value, and set the corresponding mask-bit. /// if setting is false, then the mask-bit is cleared. void HttpHdrCc::setValue(int32_t &value, int32_t new_value, http_hdr_cc_type hdr, bool setting) { if (setting) { if (new_value < 0) { debugs(65,3,HERE << "rejecting negative-value Cache-Control directive " << hdr << " value " << new_value ); return; } } else { new_value=-1; //rely on the convention that "unknown" is -1 } value=new_value; setMask(hdr,setting); }