From: Francesco Chemolli Date: Mon, 12 Sep 2011 16:07:03 +0000 (+0200) Subject: Removed httpHdrCcParseCreate as a first-class method, it only had one in-class caller. X-Git-Tag: BumpSslServerFirst.take01~126^2~31 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cf66f10abcda986a67743a6ea21e6a9ae948c6ff;p=thirdparty%2Fsquid.git Removed httpHdrCcParseCreate as a first-class method, it only had one in-class caller. HttpHdrCc::parseInit now takes a const String reference argument. Same function of httpHdrCcParseCreate can be obtained by new HttpHdrCc() + HttpHdrCc::parseInit() --- diff --git a/src/HttpHeader.cc b/src/HttpHeader.cc index 274505aee0..43158c1dd5 100644 --- a/src/HttpHeader.cc +++ b/src/HttpHeader.cc @@ -1319,7 +1319,11 @@ HttpHeader::getCc() const getList(HDR_CACHE_CONTROL, &s); - cc = httpHdrCcParseCreate(&s); + cc=new HttpHdrCc(); + if (!cc->parseInit(s)) { + delete cc; + cc = NULL; + } HttpHeaderStats[owner].ccParsedCount++; diff --git a/src/HttpHeaderCacheControl.cc b/src/HttpHeaderCacheControl.cc index fb4374aa0b..07e0c8fea6 100644 --- a/src/HttpHeaderCacheControl.cc +++ b/src/HttpHeaderCacheControl.cc @@ -98,23 +98,9 @@ httpHdrCcCleanModule(void) // HdrCcNameToIdMap is self-cleaning } -/* creates an cc object from a 0-terminating string */ -HttpHdrCc * -httpHdrCcParseCreate(const String * str) -{ - HttpHdrCc *cc = new HttpHdrCc(); - - if (!cc->parseInit(str)) { - delete cc; - cc = NULL; - } - - return cc; -} - /* parses a 0-terminating string and inits cc */ bool -HttpHdrCc::parseInit(const String * str) +HttpHdrCc::parseInit(const String & str) { const char *item; const char *p; /* '=' parameter */ @@ -122,11 +108,10 @@ HttpHdrCc::parseInit(const String * str) http_hdr_cc_type type; int ilen; int nlen; - assert(str); /* iterate through comma separated list */ - while (strListGetItem(str, ',', &item, &ilen, &pos)) { + while (strListGetItem(&str, ',', &item, &ilen, &pos)) { String tmpstr; /* isolate directive name */ diff --git a/src/HttpHeaderCacheControl.h b/src/HttpHeaderCacheControl.h index f6a5dd58eb..b09eb29f40 100644 --- a/src/HttpHeaderCacheControl.h +++ b/src/HttpHeaderCacheControl.h @@ -56,13 +56,11 @@ public: mask(0), max_age(max_age_), s_maxage(s_maxage_), max_stale(max_stale_), stale_if_error(0), min_fresh(min_fresh_) {} + /// (re)initialize by parsing the supplied Cache-control header string + bool parseInit(const String &s); MEMPROXY_CLASS(HttpHdrCc); -//TODO: make private: - /// (re)initialize by parsing the supplied Cache-control header string - bool parseInit(const String *s); - }; MEMPROXY_CLASS_INLINE(HttpHdrCc); diff --git a/src/protos.h b/src/protos.h index 7c1bd6e382..189d3cd704 100644 --- a/src/protos.h +++ b/src/protos.h @@ -237,7 +237,6 @@ SQUIDCEXTERN void httpBodyPackInto(const HttpBody * body, Packer * p); /* Http Cache Control Header Field */ SQUIDCEXTERN void httpHdrCcInitModule(void); SQUIDCEXTERN void httpHdrCcCleanModule(void); -SQUIDCEXTERN HttpHdrCc *httpHdrCcParseCreate(const String * str); SQUIDCEXTERN void httpHdrCcDestroy(HttpHdrCc * cc); SQUIDCEXTERN HttpHdrCc *httpHdrCcDup(const HttpHdrCc * cc); SQUIDCEXTERN void httpHdrCcPackInto(const HttpHdrCc * cc, Packer * p);