]> git.ipfire.org Git - thirdparty/squid.git/blobdiff - src/acl/FilledChecklist.h
SourceFormat Enforcement
[thirdparty/squid.git] / src / acl / FilledChecklist.h
index 9ffccbcb61e98637b758a45603220e6c8ea057a9..5339c2f04135fd294c14c144b9bd2920e7e0f7b6 100644 (file)
@@ -1,36 +1,54 @@
+/*
+ * Copyright (C) 1996-2015 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.
+ */
+
 #ifndef SQUID_ACLFILLED_CHECKLIST_H
 #define SQUID_ACLFILLED_CHECKLIST_H
 
+#include "AccessLogEntry.h"
 #include "acl/Checklist.h"
+#include "acl/forward.h"
+#include "base/CbcPointer.h"
+#include "ip/Address.h"
 #if USE_AUTH
 #include "auth/UserRequest.h"
 #endif
+#if USE_OPENSSL
+#include "ssl/support.h"
+#endif
 
-class ExternalACLEntry;
+class CachePeer;
 class ConnStateData;
+class HttpRequest;
+class HttpReply;
 
 /** \ingroup ACLAPI
     ACLChecklist filled with specific data, representing Squid and transaction
-    state for access checks along with some data-specific checking methods */
+    state for access checks along with some data-specific checking methods
+ */
 class ACLFilledChecklist: public ACLChecklist
 {
-public:
-    void *operator new(size_t);
-    void operator delete(void *);
+    CBDATA_CLASS(ACLFilledChecklist);
 
+public:
     ACLFilledChecklist();
     ACLFilledChecklist(const acl_access *, HttpRequest *, const char *ident);
     ~ACLFilledChecklist();
 
 public:
+    /// The client connection manager
     ConnStateData * conn() const;
 
-    /// uses conn() if available
+    /// The client side fd. It uses conn() if available
     int fd() const;
 
     /// set either conn
     void conn(ConnStateData *);
-    /// set FD
+    /// set the client side FD
     void fd(int aDescriptor);
 
     //int authenticated();
@@ -48,7 +66,7 @@ public:
     Ip::Address src_addr;
     Ip::Address dst_addr;
     Ip::Address my_addr;
-    struct peer *dst_peer;
+    CachePeer *dst_peer;
     char *dst_rdns;
 
     HttpRequest *request;
@@ -56,30 +74,28 @@ public:
 
     char rfc931[USER_IDENT_SZ];
 #if USE_AUTH
-    AuthUserRequest::Pointer auth_user_request;
+    Auth::UserRequest::Pointer auth_user_request;
 #endif
 #if SQUID_SNMP
     char *snmp_community;
 #endif
 
-#if USE_SSL
-    int ssl_error;
+#if USE_OPENSSL
+    /// SSL [certificate validation] errors, in undefined order
+    Ssl::CertErrors *sslErrors;
+    /// The peer certificate
+    Ssl::X509_Pointer serverCert;
 #endif
 
-    ExternalACLEntry *extacl_entry;
+    AccessLogEntry::Pointer al; ///< info for the future access.log entry
 
-private:
-    virtual void checkCallback(allow_t answer);
+    ExternalACLEntryPointer extacl_entry;
 
 private:
-    CBDATA_CLASS(ACLFilledChecklist);
-
     ConnStateData * conn_;          /**< hack for ident and NTLM */
     int fd_;                        /**< may be available when conn_ is not */
     bool destinationDomainChecked_;
     bool sourceDomainChecked_;
-
-private:
     /// not implemented; will cause link failures if used
     ACLFilledChecklist(const ACLFilledChecklist &);
     /// not implemented; will cause link failures if used
@@ -96,3 +112,4 @@ ACLFilledChecklist *Filled(ACLChecklist *checklist)
 }
 
 #endif /* SQUID_ACLFILLED_CHECKLIST_H */
+