From: Christos Tsantilas Date: Fri, 15 Jul 2016 14:06:44 +0000 (+0300) Subject: make the Downloader::CbDialer a CallDialer kid X-Git-Tag: SQUID_4_0_13~5^2~1^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4cab96c57327d31308f42eb20ecf1639a91fc859;p=thirdparty%2Fsquid.git make the Downloader::CbDialer a CallDialer kid --- diff --git a/src/Downloader.cc b/src/Downloader.cc index de2dd9d6c6..ee85e953b5 100644 --- a/src/Downloader.cc +++ b/src/Downloader.cc @@ -56,6 +56,12 @@ DownloaderContext::finished() http = nullptr; } +void +Downloader::CbDialer::print(std::ostream &os) const +{ + os << " Http Status:" << status << Raw("body data", object.rawContent(), 64).hex(); +} + Downloader::Downloader(SBuf &url, AsyncCall::Pointer &aCallback, unsigned int level): AsyncJob("Downloader"), url_(url), diff --git a/src/Downloader.h b/src/Downloader.h index b409dfa0ff..d15ec32081 100644 --- a/src/Downloader.h +++ b/src/Downloader.h @@ -31,10 +31,16 @@ class Downloader: virtual public AsyncJob public: /// Callback data to use with Downloader callbacks. - class CbDialer { + class CbDialer: public CallDialer { public: CbDialer(): status(Http::scNone) {} virtual ~CbDialer() {} + + /* CallDialer API */ + virtual bool canDial(AsyncCall &call) = 0; + virtual void dial(AsyncCall &call) = 0; + virtual void print(std::ostream &os) const; + SBuf object; Http::StatusCode status; }; diff --git a/src/ssl/PeerConnector.cc b/src/ssl/PeerConnector.cc index 65bc422fe4..bc2d87ffe3 100644 --- a/src/ssl/PeerConnector.cc +++ b/src/ssl/PeerConnector.cc @@ -514,7 +514,7 @@ Ssl::PeerConnector::status() const } /// CallDialer to allow use Downloader objects within PeerConnector class. -class PeerConnectorCertDownloaderDialer: public CallDialer, public Downloader::CbDialer +class PeerConnectorCertDownloaderDialer: public Downloader::CbDialer { public: typedef void (Ssl::PeerConnector::*Method)(SBuf &object, int status); @@ -525,11 +525,7 @@ public: /* CallDialer API */ virtual bool canDial(AsyncCall &call) { return peerConnector_.valid(); } - void dial(AsyncCall &call) { ((&(*peerConnector_))->*method_)(object, status); } - virtual void print(std::ostream &os) const { - os << '(' << peerConnector_.get() << ", Http Status:" << status << ')'; - } - + virtual void dial(AsyncCall &call) { ((&(*peerConnector_))->*method_)(object, status); } Method method_; ///< The Ssl::PeerConnector method to dial CbcPointer peerConnector_; ///< The Ssl::PeerConnector object };