From: Amos Jeffries Date: Tue, 3 Mar 2015 07:46:18 +0000 (-0800) Subject: Shuffle packerPrintf() to be Packer::Printf method X-Git-Tag: merge-candidate-3-v1~101^2~14^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d2a739f519b9863bb1920a5a1353c4c6827415b0;p=thirdparty%2Fsquid.git Shuffle packerPrintf() to be Packer::Printf method --- diff --git a/src/HttpHdrCc.cc b/src/HttpHdrCc.cc index 5bef600921..c079b7447e 100644 --- a/src/HttpHdrCc.cc +++ b/src/HttpHdrCc.cc @@ -265,24 +265,24 @@ HttpHdrCc::packInto(Packer * p) const if (isSet(flag) && flag != CC_OTHER) { /* print option name for all options */ - packerPrintf(p, (pcount ? ", %s": "%s") , CcAttrs[flag].name); + p->Printf((pcount ? ", %s": "%s") , CcAttrs[flag].name); /* for all options having values, "=value" after the name */ switch (flag) { case CC_MAX_AGE: - packerPrintf(p, "=%d", (int) maxAge()); + p->Printf("=%d", (int) maxAge()); break; case CC_S_MAXAGE: - packerPrintf(p, "=%d", (int) sMaxAge()); + p->Printf("=%d", (int) sMaxAge()); break; case CC_MAX_STALE: /* max-stale's value is optional. If we didn't receive it, don't send it */ if (maxStale()!=MAX_STALE_ANY) - packerPrintf(p, "=%d", (int) maxStale()); + p->Printf("=%d", (int) maxStale()); break; case CC_MIN_FRESH: - packerPrintf(p, "=%d", (int) minFresh()); + p->Printf("=%d", (int) minFresh()); break; default: /* do nothing, directive was already printed */ @@ -294,7 +294,7 @@ HttpHdrCc::packInto(Packer * p) const } if (other.size() != 0) - packerPrintf(p, (pcount ? ", " SQUIDSTRINGPH : SQUIDSTRINGPH), + p->Printf((pcount ? ", " SQUIDSTRINGPH : SQUIDSTRINGPH), SQUIDSTRINGPRINT(other)); } diff --git a/src/HttpHdrContRange.cc b/src/HttpHdrContRange.cc index 98eebf1bb6..0c33b75311 100644 --- a/src/HttpHdrContRange.cc +++ b/src/HttpHdrContRange.cc @@ -104,9 +104,9 @@ httpHdrRangeRespSpecPackInto(const HttpHdrRangeSpec * spec, Packer * p) assert (spec->length >= 0); if (!known_spec(spec->offset) || !known_spec(spec->length)) - packerPrintf(p, "*"); + p->Printf("*"); else - packerPrintf(p, "bytes %" PRId64 "-%" PRId64, + p->Printf("bytes %" PRId64 "-%" PRId64, spec->offset, spec->offset + spec->length - 1); } @@ -208,9 +208,9 @@ httpHdrContRangePackInto(const HttpHdrContRange * range, Packer * p) assert (range->elength >= 0); if (!known_spec(range->elength)) - packerPrintf(p, "/*"); + p->Printf("/*"); else - packerPrintf(p, "/%" PRId64, range->elength); + p->Printf("/%" PRId64, range->elength); } void diff --git a/src/HttpHdrRange.cc b/src/HttpHdrRange.cc index 80d7e19905..e297de7258 100644 --- a/src/HttpHdrRange.cc +++ b/src/HttpHdrRange.cc @@ -108,12 +108,11 @@ void HttpHdrRangeSpec::packInto(Packer * packer) const { if (!known_spec(offset)) /* suffix */ - packerPrintf(packer, "-%" PRId64, length); + packer->Printf("-%" PRId64, length); else if (!known_spec(length)) /* trailer */ - packerPrintf(packer, "%" PRId64 "-", offset); + packer->Printf("%" PRId64 "-", offset); else /* range */ - packerPrintf(packer, "%" PRId64 "-%" PRId64, - offset, offset + length - 1); + packer->Printf("%" PRId64 "-%" PRId64, offset, offset + length - 1); } void diff --git a/src/HttpHdrSc.cc b/src/HttpHdrSc.cc index 83906481cc..537b880ad7 100644 --- a/src/HttpHdrSc.cc +++ b/src/HttpHdrSc.cc @@ -245,23 +245,23 @@ HttpHdrScTarget::packInto(Packer * p) const if (isSet(flag) && flag != SC_OTHER) { /* print option name */ - packerPrintf(p, (pcount ? ", " SQUIDSTRINGPH : SQUIDSTRINGPH), + p->Printf((pcount ? ", " SQUIDSTRINGPH : SQUIDSTRINGPH), SQUIDSTRINGPRINT(ScFieldsInfo[flag].name)); /* handle options with values */ if (flag == SC_MAX_AGE) - packerPrintf(p, "=%d", (int) max_age); + p->Printf("=%d", (int) max_age); if (flag == SC_CONTENT) - packerPrintf(p, "=\"" SQUIDSTRINGPH "\"", SQUIDSTRINGPRINT(content_)); + p->Printf("=\"" SQUIDSTRINGPH "\"", SQUIDSTRINGPRINT(content_)); ++pcount; } } if (hasTarget()) - packerPrintf (p, ";" SQUIDSTRINGPH, SQUIDSTRINGPRINT(target)); + p->Printf(";" SQUIDSTRINGPH, SQUIDSTRINGPRINT(target)); } void diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc index 942a2e8470..9206a3e64d 100644 --- a/src/HttpRequest.cc +++ b/src/HttpRequest.cc @@ -377,9 +377,9 @@ HttpRequest::pack(Packer * p) { assert(p); /* pack request-line */ - packerPrintf(p, SQUIDSBUFPH " " SQUIDSTRINGPH " HTTP/%d.%d\r\n", - SQUIDSBUFPRINT(method.image()), SQUIDSTRINGPRINT(urlpath), - http_ver.major, http_ver.minor); + p->Printf(SQUIDSBUFPH " " SQUIDSTRINGPH " HTTP/%d.%d\r\n", + SQUIDSBUFPRINT(method.image()), SQUIDSTRINGPRINT(urlpath), + http_ver.major, http_ver.minor); /* headers */ header.packInto(p); /* trailer */ @@ -510,10 +510,10 @@ const char *HttpRequest::packableURI(bool full_uri) const void HttpRequest::packFirstLineInto(Packer * p, bool full_uri) const { // form HTTP request-line - packerPrintf(p, SQUIDSBUFPH " %s HTTP/%d.%d\r\n", - SQUIDSBUFPRINT(method.image()), - packableURI(full_uri), - http_ver.major, http_ver.minor); + p->Printf(SQUIDSBUFPH " %s HTTP/%d.%d\r\n", + SQUIDSBUFPRINT(method.image()), + packableURI(full_uri), + http_ver.major, http_ver.minor); } /* diff --git a/src/Packer.cc b/src/Packer.cc index b9f7675459..fcc674cc75 100644 --- a/src/Packer.cc +++ b/src/Packer.cc @@ -123,14 +123,13 @@ Packer::append(const char *buf, int sz) } void -packerPrintf(Packer * p, const char *fmt,...) +Packer::Printf(const char *fmt,...) { va_list args; va_start(args, fmt); - assert(p); - assert(p->real_handler && p->packer_vprintf); - p->packer_vprintf(p->real_handler, fmt, args); + assert(real_handler && packer_vprintf); + packer_vprintf(real_handler, fmt, args); va_end(args); } diff --git a/src/Packer.h b/src/Packer.h index 964913aad2..86a37bd6d5 100644 --- a/src/Packer.h +++ b/src/Packer.h @@ -24,15 +24,20 @@ class Packer public: virtual ~Packer(); + virtual void append(const char *buf, int size); + /* + * \note we use Printf instead of printf so the compiler won't + * think we're calling the libc printf() + */ + virtual void Printf(const char *fmt,...) PRINTF_FORMAT_ARG2; + /* protected, use interface functions instead */ append_f append_; vprintf_f packer_vprintf; void *real_handler; /* first parameter to real append and vprintf */ }; -void packerPrintf(Packer * p, const char *fmt,...) PRINTF_FORMAT_ARG2; - #endif /* SQUID_PACKER_H */ diff --git a/src/http/StatusLine.cc b/src/http/StatusLine.cc index b06161ea88..57008291c6 100644 --- a/src/http/StatusLine.cc +++ b/src/http/StatusLine.cc @@ -57,14 +57,14 @@ Http::StatusLine::packInto(Packer * p) const debugs(57, 9, "packing sline " << this << " using " << p << ":"); debugs(57, 9, "FORMAT=" << IcyStatusLineFormat ); debugs(57, 9, "ICY " << status() << " " << reason()); - packerPrintf(p, IcyStatusLineFormat, status(), reason()); + p->Printf(IcyStatusLineFormat, status(), reason()); return; } debugs(57, 9, "packing sline " << this << " using " << p << ":"); debugs(57, 9, "FORMAT=" << Http1StatusLineFormat ); debugs(57, 9, "HTTP/" << version.major << "." << version.minor << " " << status() << " " << reason()); - packerPrintf(p, Http1StatusLineFormat, version.major, version.minor, status(), reason()); + p->Printf(Http1StatusLineFormat, version.major, version.minor, status(), reason()); } /*