]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
make the Downloader::CbDialer a CallDialer kid
authorChristos Tsantilas <chtsanti@users.sourceforge.net>
Fri, 15 Jul 2016 14:06:44 +0000 (17:06 +0300)
committerChristos Tsantilas <chtsanti@users.sourceforge.net>
Fri, 15 Jul 2016 14:06:44 +0000 (17:06 +0300)
src/Downloader.cc
src/Downloader.h
src/ssl/PeerConnector.cc

index de2dd9d6c658b2214a916bc7796eb004eebcbabd..ee85e953b5bf34d87c4a5a10f3534f380cad42c7 100644 (file)
@@ -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),
index b409dfa0ff1cc480d7728bd1138baf1b2aef56ab..d15ec32081ab315350e296ca249216b04361487d 100644 (file)
@@ -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;
     };
index 65bc422fe4e9b6347dddd387d6f5a3ddc491b36b..bc2d87ffe34963563cbabc403e385887532243d0 100644 (file)
@@ -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<Ssl::PeerConnector> peerConnector_; ///< The Ssl::PeerConnector object
 };