+/*
+ * 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_SSL
+#if USE_OPENSSL
#include "ssl/support.h"
#endif
class CachePeer;
class ConnStateData;
-class ExternalACLEntry;
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();
char *snmp_community;
#endif
-#if USE_SSL
+#if USE_OPENSSL
/// SSL [certificate validation] errors, in undefined order
- Ssl::Errors *sslErrors;
+ Ssl::CertErrors *sslErrors;
+ /// The peer certificate
+ Ssl::X509_Pointer serverCert;
#endif
- ExternalACLEntry *extacl_entry;
+ AccessLogEntry::Pointer al; ///< info for the future access.log entry
+
+ ExternalACLEntryPointer extacl_entry;
private:
ConnStateData * conn_; /**< hack for ident and NTLM */
ACLFilledChecklist(const ACLFilledChecklist &);
/// not implemented; will cause link failures if used
ACLFilledChecklist &operator=(const ACLFilledChecklist &);
-
- CBDATA_CLASS(ACLFilledChecklist);
};
/// convenience and safety wrapper for dynamic_cast<ACLFilledChecklist*>
}
#endif /* SQUID_ACLFILLED_CHECKLIST_H */
+