#include "squid.h"
#include "AccessLogEntry.h"
-#include "acl/AclAddress.h"
+#include "acl/Address.h"
#include "acl/FilledChecklist.h"
#include "acl/Gadgets.h"
#include "anyp/PortCfg.h"
// TODO use the connection details in ACL.
// needs a bit of rework in ACLFilledChecklist to use Comm::Connection instead of ConnStateData
- AclAddress *l;
- for (l = Config.accessList.outgoing_address; l; l = l->next) {
+ for (Acl::Address *l = Config.accessList.outgoing_address; l; l = l->next) {
/* check if the outgoing address is usable to the destination */
if (conn->remote.isIPv4() != l->addr.isIPv4()) continue;
* Please see the COPYING and CONTRIBUTORS files for details.
*/
-#ifndef ACLADDRESS_H_
-#define ACLADDRESS_H_
+#ifndef _SQUID_SRC_ACL_ADDRESS_H_
+#define _SQUID_SRC_ACL_ADDRESS_H_
#include "acl/Acl.h"
#include "ip/Address.h"
+namespace Acl
+{
+
/// list of address-based ACLs.
-class AclAddress
+class Address
{
+ CBDATA_CLASS(Address);
+
public:
- AclAddress *next;
+ Address() : next(NULL), aclList(NULL) {}
+ ~Address();
+
+ Acl::Address *next;
ACLList *aclList;
Ip::Address addr;
};
-#endif /* ACLADDRESS_H_ */
+} // namespace Acl
+
+#endif /* _SQUID_SRC_ACL_ADDRESS_H_ */
#include "squid.h"
#include "acl/Acl.h"
-#include "acl/AclAddress.h"
#include "acl/AclDenyInfoList.h"
#include "acl/AclNameList.h"
#include "acl/AclSizeLimit.h"
+#include "acl/Address.h"
#include "acl/Gadgets.h"
#include "acl/MethodData.h"
#include "acl/Tree.h"
addr->setEmpty();
}
-CBDATA_TYPE(AclAddress);
-
static void
-dump_acl_address(StoreEntry * entry, const char *name, AclAddress * head)
+dump_acl_address(StoreEntry * entry, const char *name, Acl::Address * head)
{
char buf[MAX_IPSTRLEN];
- AclAddress *l;
- for (l = head; l; l = l->next) {
+ for (Acl::Address *l = head; l; l = l->next) {
if (!l->addr.isAnyAddr())
storeAppendPrintf(entry, "%s %s", name, l->addr.toStr(buf,MAX_IPSTRLEN));
else
}
static void
-freed_acl_address(void *data)
-{
- AclAddress *l = static_cast<AclAddress *>(data);
- aclDestroyAclList(&l->aclList);
-}
-
-static void
-parse_acl_address(AclAddress ** head)
+parse_acl_address(Acl::Address ** head)
{
- AclAddress *l;
- AclAddress **tail = head; /* sane name below */
- CBDATA_INIT_TYPE_FREECB(AclAddress, freed_acl_address);
- l = cbdataAlloc(AclAddress);
+ Acl::Address *l = new Acl::Address;
parse_address(&l->addr);
aclParseAclList(LegacyParser, &l->aclList, l->addr);
+ Acl::Address **tail = head;
while (*tail)
tail = &(*tail)->next;
}
static void
-free_acl_address(AclAddress ** head)
+free_acl_address(Acl::Address ** head)
{
- while (*head) {
- AclAddress *l = *head;
- *head = l->next;
- cbdataFree(l);
- }
+ delete *head;
+ *head = NULL;
}
CBDATA_TYPE(acl_tos);