# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: henrik@henriknordstrom.net-20090210223100-\ # k9wsy0o7c4oa1xsx # target_branch: http://www.squid-cache.org/bzr/squid3/trunk/ # testament_sha1: a5a7d773fb9f33f5ac39add5863728413660a7ef # timestamp: 2009-02-10 23:42:30 +0100 # source_branch: http://bzr.henriknordstrom.net/squid3/acltag/ # base_revision_id: squid3@treenet.co.nz-20090209105215-\ # 4ne6cqv868ut9j3j # # Begin patch === added file 'src/ACLTag.cc' --- src/ACLTag.cc 1970-01-01 00:00:00 +0000 +++ src/ACLTag.cc 2009-02-03 19:31:35 +0000 @@ -0,0 +1,63 @@ + +/* + * $Id: ACLTag.cc,v 1.2 2008/02/11 22:44:50 rousskov Exp $ + * + * + * SQUID Web Proxy Cache http://www.squid-cache.org/ + * ---------------------------------------------------------- + * + * Squid is the result of efforts by numerous individuals from + * the Internet community; see the CONTRIBUTORS file for full + * details. Many organizations have provided support for Squid's + * development; see the SPONSORS file for full details. Squid is + * Copyrighted (C) 2001 by the Regents of the University of + * California; see the COPYRIGHT file for full details. Squid + * incorporates software developed and/or copyrighted by other + * sources; see the CREDITS file for full details. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. + * + * + * Copyright (c) 2003, Robert Collins + * Copyright (c) 2009, Henrik Nordstrom + */ + +#include "squid.h" +#include "ACLTag.h" +#include "ACLStringData.h" +#include "ACLChecklist.h" +#include "HttpRequest.h" + +/* explicit template instantiation required for some systems */ + +ACL::Prototype ACLTag::RegistryProtoype(&ACLTag::RegistryEntry_, "tag"); + +ACLStrategised ACLTag::RegistryEntry_(new ACLStringData, ACLTagStrategy::Instance(), "tag"); + +int +ACLTagStrategy::match (ACLData * &data, ACLChecklist *checklist) +{ + if (checklist->conn() != NULL) + return data->match (checklist->request->tag.buf()); + return 0; +} + +ACLTagStrategy * +ACLTagStrategy::Instance() +{ + return &Instance_; +} + +ACLTagStrategy ACLTagStrategy::Instance_; === added file 'src/ACLTag.h' --- src/ACLTag.h 1970-01-01 00:00:00 +0000 +++ src/ACLTag.h 2009-02-02 20:45:40 +0000 @@ -0,0 +1,68 @@ + +/* + * $Id: ACLTag.h,v 1.1.2.1 2008/02/27 10:06:42 amosjeffries Exp $ + * + * + * SQUID Web Proxy Cache http://www.squid-cache.org/ + * ---------------------------------------------------------- + * + * Squid is the result of efforts by numerous individuals from + * the Internet community; see the CONTRIBUTORS file for full + * details. Many organizations have provided support for Squid's + * development; see the SPONSORS file for full details. Squid is + * Copyrighted (C) 2001 by the Regents of the University of + * California; see the COPYRIGHT file for full details. Squid + * incorporates software developed and/or copyrighted by other + * sources; see the CREDITS file for full details. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. + * + * + * Copyright (c) 2003, Robert Collins + * Copyright (c) 2009, Henrik Nordstrom + */ + +#ifndef SQUID_ACLMYPORTNAME_H +#define SQUID_ACLMYPORTNAME_H +#include "ACLStrategy.h" +#include "ACLStrategised.h" + +class ACLTagStrategy : public ACLStrategy +{ + +public: + virtual int match (ACLData * &, ACLChecklist *); + static ACLTagStrategy *Instance(); + /* Not implemented to prevent copies of the instance. */ + /* Not private to prevent brain dead g+++ warnings about + * private constructors with no friends */ + ACLTagStrategy(ACLTagStrategy const &); + +private: + static ACLTagStrategy Instance_; + ACLTagStrategy(){} + + ACLTagStrategy&operator=(ACLTagStrategy const &); +}; + +class ACLTag +{ + +private: + static ACL::Prototype RegistryProtoype; + static ACLStrategised RegistryEntry_; +}; + +#endif /* SQUID_ACLMYPORTNAME_H */ === modified file 'src/Makefile.am' --- src/Makefile.am 2009-02-02 12:33:27 +0000 +++ src/Makefile.am 2009-02-03 13:11:00 +0000 @@ -391,6 +391,8 @@ ACLStrategy.h \ ACLStringData.cc \ ACLStringData.h \ + ACLTag.cc \ + ACLTag.h \ ACLTime.cc \ ACLTime.h \ ACLTimeData.cc \ === modified file 'src/cf.data.pre' --- src/cf.data.pre 2009-02-04 20:21:36 +0000 +++ src/cf.data.pre 2009-02-04 20:25:38 +0000 @@ -640,6 +640,9 @@ acl aclname ext_user_regex [-i] pattern ... # string match on username returned by external acl helper # use REQUIRED to accept any non-null user name. + # + acl aclname tag tagvalue ... + # string match on tag returned by external acl helper Examples: acl macaddress arp 09:00:2b:23:45:67 # Begin bundle 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