<p>New type <em>random</em>. Pseudo-randomly match requests based on a configured probability.
<p>Renamed <em>myip</em> to <em>localip</em>. It matches the IP which the client connected to.
<p>Renamed <em>myport</em> to <em>localport</em>. It matches the port which the client connected to.
+ <p>Ported <em>urllogin</em> option from Squid 2.7, to match a regex pattern on the URL login field (if any).
<p>The <em>localip</em>/<em>localport</em> differ from earlier releases where they matched a mix of
of an invalid IP and port 0, the client destination IP/port or the Squid listening IP/port.
This definition is now consistent across all modes of traffic received by Squid.
<sect1>Missing squid.conf options available in Squid-2.7
<p>
<descrip>
- <tag>acl</tag>
- <p><em>urllogin</em> option not yet ported from 2.6
- <p><em>urlgroup</em> option not yet ported from 2.6
-
<tag>broken_vary_encoding</tag>
<p>Not yet ported from 2.6
<sect1>Missing squid.conf options available in Squid-2.7
<p>
<descrip>
- <tag>acl</tag>
- <p><em>urllogin</em> option not yet ported from 2.6
-
<tag>broken_vary_encoding</tag>
<p>Not yet ported from 2.6
#include "acl/TimeData.h"
#include "acl/Time.h"
#include "acl/Url.h"
+#include "acl/UrlLogin.h"
#include "acl/UrlPath.h"
#include "acl/UrlPort.h"
#include "acl/UserData.h"
ACLStrategised<time_t> ACLTime::RegistryEntry_(new ACLTimeData, ACLTimeStrategy::Instance(), "time");
ACL::Prototype ACLUrl::RegistryProtoype(&ACLUrl::RegistryEntry_, "url_regex");
ACLStrategised<char const *> ACLUrl::RegistryEntry_(new ACLRegexData, ACLUrlStrategy::Instance(), "url_regex");
+ACL::Prototype ACLUrlLogin::RegistryProtoype(&ACLUrlLogin::RegistryEntry_, "urllogin");
+ACLStrategised<char const *> ACLUrlLogin::RegistryEntry_(new ACLRegexData, ACLUrlLoginStrategy::Instance(), "urllogin");
ACL::Prototype ACLUrlPath::LegacyRegistryProtoype(&ACLUrlPath::RegistryEntry_, "pattern");
ACL::Prototype ACLUrlPath::RegistryProtoype(&ACLUrlPath::RegistryEntry_, "urlpath_regex");
ACLStrategised<char const *> ACLUrlPath::RegistryEntry_(new ACLRegexData, ACLUrlPathStrategy::Instance(), "urlpath_regex");
Tag.h \
Url.cc \
Url.h \
+ UrlLogin.cc \
+ UrlLogin.h \
UrlPath.cc \
UrlPath.h \
UrlPort.cc \
--- /dev/null
+/*
+ * DEBUG: section 28 Access Control
+ * AUTHOR: Duane Wessels
+ *
+ * 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.
+ *
+ */
+
+#include "squid-old.h"
+#include "acl/UrlLogin.h"
+#include "acl/Checklist.h"
+#include "acl/RegexData.h"
+#include "HttpRequest.h"
+#include "rfc1738.h"
+
+int
+ACLUrlLoginStrategy::match (ACLData<char const *> * &data, ACLFilledChecklist *checklist)
+{
+ char *esc_buf = xstrdup(checklist->request->login);
+ rfc1738_unescape(esc_buf);
+ int result = data->match(esc_buf);
+ safe_free(esc_buf);
+ return result;
+}
+
+ACLUrlLoginStrategy *
+ACLUrlLoginStrategy::Instance()
+{
+ return &Instance_;
+}
+
+ACLUrlLoginStrategy ACLUrlLoginStrategy::Instance_;
--- /dev/null
+
+/*
+ * $Id$
+ *
+ *
+ * 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 <robertc@squid-cache.org>
+ */
+
+#ifndef SQUID_ACLURLLOGIN_H
+#define SQUID_ACLURLLOGIN_H
+#include "acl/Acl.h"
+#include "acl/Data.h"
+#include "acl/Strategy.h"
+#include "acl/Strategised.h"
+
+class ACLUrlLoginStrategy : public ACLStrategy<char const *>
+{
+
+public:
+ virtual int match (ACLData<char const *> * &, ACLFilledChecklist *);
+ virtual bool requiresRequest() const {return true;}
+
+ static ACLUrlLoginStrategy *Instance();
+ /* Not implemented to prevent copies of the instance. */
+ /* Not private to prevent brain dead g+++ warnings about
+ * private constructors with no friends */
+ ACLUrlLoginStrategy(ACLUrlLoginStrategy const &);
+
+private:
+ static ACLUrlLoginStrategy Instance_;
+ ACLUrlLoginStrategy() {}
+
+ ACLUrlLoginStrategy&operator=(ACLUrlLoginStrategy const &);
+};
+
+class ACLUrlLogin
+{
+
+public:
+ static ACL::Prototype RegistryProtoype;
+ static ACL::Prototype LegacyRegistryProtoype;
+ static ACLStrategised<char const *> RegistryEntry_;
+};
+
+#endif /* SQUID_ACLURLLOGIN_H */
acl aclname url_regex [-i] ^http:// ...
# regex matching on whole URL [fast]
+ acl aclname urllogin [-i] [^a-zA-Z0-9] ...
+ # regex matching on URL login field
acl aclname urlpath_regex [-i] \.gif$ ...
# regex matching on URL path [fast]