+/*
+ * 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();
Ip::Address src_addr;
Ip::Address dst_addr;
Ip::Address my_addr;
- struct peer *dst_peer;
+ CachePeer *dst_peer;
char *dst_rdns;
HttpRequest *request;
HttpReply *reply;
char rfc931[USER_IDENT_SZ];
- AuthUserRequest::Pointer auth_user_request;
-
+#if USE_AUTH
+ 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
}
#endif /* SQUID_ACLFILLED_CHECKLIST_H */
+