XactionInitiator.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2025 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 #ifndef SQUID_SRC_XACTIONINITIATOR_H
10 #define SQUID_SRC_XACTIONINITIATOR_H
11 
14 public:
16  enum Initiator {
18  initClient = 1 << 0,
19  initPeerPool = 1 << 1,
20  initCertFetcher = 1 << 2,
21  initCacheDigest = 1 << 4,
22  initHtcp = 1<< 5,
23  initIcp = 1 << 6,
24  initIcmp = 1 << 7,
25  initAsn = 1 << 8,
26  initIpc = 1 << 9,
27  initAdaptation = 1 << 10,
28  initIcon = 1 << 11,
29  initPeerMcast = 1 << 12,
30  initServer = 1 << 13,
31 
33  };
34 
35  typedef uint32_t Initiators;
36 
37  // this class is a just a trivial wrapper so we allow explicit conversions
39 
41  bool in(Initiators setOfInitiators) const {return (initiator & setOfInitiators) != 0;}
42 
44  bool internalClient() const {
45  return (initiator & InternalInitiators()) != 0;
46  }
47 
51  }
52 
55  return 0xFFFFFFFF;
56  }
57 
58  static Initiators ParseInitiators(const char *name);
59 
60 private:
62 
64 };
65 
66 #endif /* SQUID_SRC_XACTIONINITIATOR_H */
67 
static Initiators AllInitiators()
all initiators
@ initClient
HTTP or FTP client.
@ initCertFetcher
Missing intermediate certificates fetching code.
@ initPeerMcast
neighbor multicast
static Initiators InternalInitiators()
internally generated requests
@ initServer
HTTP/2 push request (not yet supported by Squid)
@ initPeerPool
PeerPool manager.
uint32_t Initiators
Initiator set.
XactionInitiator(Initiator i)
@ initIcon
internal icons
identifies a protocol agent or Squid feature initiating transactions
@ initIpc
the IPC subsystem
@ initAsn
the ASN db subsystem
bool internalClient() const
whether the transaction was initiated by an internal subsystem
@ initHtcp
HTCP client.
@ initCacheDigest
Cache Digest fetching code.
@ initIcmp
the ICMP RTT database (NetDB) neighbors exchange subsystem
Initiator
transaction triggers
static Initiators ParseInitiators(const char *name)
@ initAdaptation
ICAP/ECAP requests generated by Squid.
@ initAdaptationOrphan_
eCAP-created HTTP message w/o an associated HTTP transaction (not ACL-detectable)
@ initIcp
the ICP/neighbors subsystem
bool in(Initiators setOfInitiators) const
whether this initiator belongs to the given set

 

Introduction

Documentation

Support

Miscellaneous