/*
- * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
{
/**
- * Set of 'mode' flags defining types of trafic which can be received.
+ * Set of 'mode' flags defining types of traffic which can be received.
*
* Use to determine the processing steps which need to be applied
* to this traffic under any special circumstances which may apply.
class TrafficMode
{
public:
- TrafficMode() : accelSurrogate(false), proxySurrogate(false), natIntercept(false), tproxyIntercept(false), tunnelSslBumping(false) {}
- TrafficMode(const TrafficMode &rhs) { operator =(rhs); }
- TrafficMode &operator =(const TrafficMode &rhs) { memcpy(this, &rhs, sizeof(TrafficMode)); return *this; }
-
/** marks HTTP accelerator (reverse/surrogate proxy) traffic
*
* Indicating the following are required:
* - URL translation from relative to absolute form
* - restriction to origin peer relay recommended
*/
- bool accelSurrogate;
+ bool accelSurrogate = false;
/** marks ports receiving PROXY protocol traffic
*
* - indirect client IP trust verification is mandatory
* - TLS is not supported
*/
- bool proxySurrogate;
+ bool proxySurrogate = false;
/** marks NAT intercepted traffic
*
* - destination pinning is recommended
* - authentication prohibited
*/
- bool natIntercept;
+ bool natIntercept = false;
/** marks TPROXY intercepted traffic
*
* - destination pinning is recommended
* - authentication prohibited
*/
- bool tproxyIntercept;
+ bool tproxyIntercept = false;
/** marks intercept and decryption of CONNECT (tunnel) SSL traffic
*
* - encrypted outbound server connections
* - peer relay prohibited. TODO: re-encrypt and re-wrap with CONNECT
*/
- bool tunnelSslBumping;
+ bool tunnelSslBumping = false;
/** true if the traffic is in any way intercepted
*