From: Francesco Chemolli Date: Thu, 6 Sep 2012 11:56:46 +0000 (+0200) Subject: Renamed relist to RegexList, moved to own header and implementation file. X-Git-Tag: sourceformat-review-1~6^2~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3ebc830077332ab11d455cfa2cb3ea9f74d4226d;p=thirdparty%2Fsquid.git Renamed relist to RegexList, moved to own header and implementation file. --- diff --git a/src/Makefile.am b/src/Makefile.am index e92ae2f495..54e6ad0ad6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1139,6 +1139,8 @@ tests_testHttpReply_SOURCES=\ HttpStatusLine.h \ Mem.h \ mem.cc \ + RegexList.h \ + RegexList.cc \ MemBuf.cc \ MemBuf.h \ mime_header.h \ diff --git a/src/RegexList.cc b/src/RegexList.cc new file mode 100644 index 0000000000..d6b6f767ca --- /dev/null +++ b/src/RegexList.cc @@ -0,0 +1,32 @@ +/* + * 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.h" +#include "RegexList.h" + diff --git a/src/RegexList.h b/src/RegexList.h new file mode 100644 index 0000000000..0dd8905d05 --- /dev/null +++ b/src/RegexList.h @@ -0,0 +1,43 @@ +#ifndef SQUID_REGEXLIST_H_ +#define SQUID_REGEXLIST_H_ +/* + * DEBUG: section + * AUTHOR: + * + * 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. + * + */ + +class RegexList { +public: + int flags; + char *pattern; + regex_t regex; + RegexList *next; +}; + +#endif /* SQUID_REGEXLIST_H_ */ diff --git a/src/acl/RegexData.cc b/src/acl/RegexData.cc index f950a8b69b..12b3607d1a 100644 --- a/src/acl/RegexData.cc +++ b/src/acl/RegexData.cc @@ -41,12 +41,13 @@ #include "ConfigParser.h" #include "Debug.h" #include "Mem.h" +#include "RegexList.h" #include "wordlist.h" static void -aclDestroyRegexList(relist * data) +aclDestroyRegexList(RegexList * data) { - relist *next = NULL; + RegexList *next = NULL; for (; data; data = next) { next = data->next; @@ -69,13 +70,13 @@ ACLRegexData::match(char const *word) debugs(28, 3, "aclRegexData::match: checking '" << word << "'"); - relist *first, *prev; + RegexList *first, *prev; first = data; prev = NULL; - relist *current = first; + RegexList *current = first; while (current) { debugs(28, 3, "aclRegexData::match: looking for '" << current->pattern << "'"); @@ -104,7 +105,7 @@ wordlist * ACLRegexData::dump() { wordlist *W = NULL; - relist *temp = data; + RegexList *temp = data; int flags = REG_EXTENDED | REG_NOSUB; while (temp != NULL) { @@ -152,11 +153,11 @@ removeUnnecessaryWildcards(char * t) return t; } -static relist ** -compileRE(relist **Tail, char * RE, int flags) +static RegexList ** +compileRE(RegexList **Tail, char * RE, int flags) { int errcode; - relist *q; + RegexList *q; regex_t comp; if (RE == NULL || *RE == '\0') @@ -171,7 +172,7 @@ compileRE(relist **Tail, char * RE, int flags) } debugs(28, 2, "compileRE: compiled '" << RE << "' with flags " << flags ); - q = (relist *) memAllocate(MEM_RELIST); + q = (RegexList *) memAllocate(MEM_RELIST); q->pattern = xstrdup(RE); q->regex = comp; q->flags = flags; @@ -186,11 +187,11 @@ compileRE(relist **Tail, char * RE, int flags) * called only once per ACL. */ static int -compileOptimisedREs(relist **curlist, wordlist * wl) +compileOptimisedREs(RegexList **curlist, wordlist * wl) { - relist **Tail; - relist *newlist; - relist **newlistp; + RegexList **Tail; + RegexList *newlist; + RegexList **newlistp; int numREs = 0; int flags = REG_EXTENDED | REG_NOSUB; int largeREindex = 0; @@ -288,10 +289,10 @@ compileOptimisedREs(relist **curlist, wordlist * wl) } static void -compileUnoptimisedREs(relist **curlist, wordlist * wl) +compileUnoptimisedREs(RegexList **curlist, wordlist * wl) { - relist **Tail; - relist **newTail; + RegexList **Tail; + RegexList **newTail; int flags = REG_EXTENDED | REG_NOSUB; for (Tail = curlist; *Tail != NULL; Tail = &((*Tail)->next)) @@ -314,7 +315,7 @@ compileUnoptimisedREs(relist **curlist, wordlist * wl) } static void -aclParseRegexList(relist **curlist) +aclParseRegexList(RegexList **curlist) { char *t; wordlist *wl = NULL; diff --git a/src/acl/RegexData.h b/src/acl/RegexData.h index 4011e69e2f..87ca21f52c 100644 --- a/src/acl/RegexData.h +++ b/src/acl/RegexData.h @@ -35,8 +35,7 @@ #include "acl/Data.h" #include "MemPool.h" -/** \todo CLEANUP: break out relist, we don't need the rest. */ -#include "structs.h" +class RegexList; class ACLRegexData : public ACLData { @@ -52,7 +51,7 @@ public: virtual ACLData *clone() const; private: - relist *data; + RegexList *data; }; MEMPROXY_CLASS_INLINE(ACLRegexData); diff --git a/src/mem.cc b/src/mem.cc index d68030d7f0..e796c0aef3 100644 --- a/src/mem.cc +++ b/src/mem.cc @@ -40,6 +40,7 @@ #include "MemBuf.h" #include "memMeter.h" #include "mgr/Registration.h" +#include "RegexList.h" #include "SquidConfig.h" #include "SquidList.h" #include "SquidTime.h" @@ -466,7 +467,7 @@ Mem::Init(void) memDataInit(MEM_HTTP_HDR_CONTENT_RANGE, "HttpHdrContRange", sizeof(HttpHdrContRange), 0); memDataInit(MEM_NETDBENTRY, "netdbEntry", sizeof(netdbEntry), 0); memDataInit(MEM_NET_DB_NAME, "net_db_name", sizeof(net_db_name), 0); - memDataInit(MEM_RELIST, "relist", sizeof(relist), 0); + memDataInit(MEM_RELIST, "RegexList", sizeof(RegexList), 0); memDataInit(MEM_CLIENT_INFO, "ClientInfo", sizeof(ClientInfo), 0); memDataInit(MEM_MD5_DIGEST, "MD5 digest", SQUID_MD5_DIGEST_LENGTH, 0); MemPools[MEM_MD5_DIGEST]->setChunkSize(512 * 1024); diff --git a/src/structs.h b/src/structs.h index 127448988e..f58422b0c8 100644 --- a/src/structs.h +++ b/src/structs.h @@ -86,13 +86,6 @@ struct acl_size_t { int64_t size; }; -struct relist { - int flags; - char *pattern; - regex_t regex; - relist *next; -}; - #if USE_DELAY_POOLS #include "DelayConfig.h" #include "ClientDelayConfig.h"