From 6643b4188a75464e20144ccfdbd9a689157bb0f9 Mon Sep 17 00:00:00 2001 From: "Francisco Blas (klondike) Izquierdo Riera" Date: Wed, 7 Jan 2015 22:49:28 +0100 Subject: [PATCH] Solve weak_ptr issue --- HTTPProxy.cpp | 7 +++++-- SOCKS.cpp | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/HTTPProxy.cpp b/HTTPProxy.cpp index b99c63b2..77c2be40 100644 --- a/HTTPProxy.cpp +++ b/HTTPProxy.cpp @@ -53,8 +53,9 @@ namespace proxy public: HTTPProxyHandler(HTTPProxyServer * parent, boost::asio::ip::tcp::socket * sock) : I2PServiceHandler(parent), m_sock(sock) - { AsyncSockRead(); EnterState(GET_METHOD); } + { EnterState(GET_METHOD); } ~HTTPProxyHandler() { Terminate(); } + void Handle () { AsyncSockRead(); } }; void HTTPProxyHandler::AsyncSockRead() @@ -255,7 +256,9 @@ namespace proxy if (!ecode) { LogPrint(eLogDebug,"--- HTTP Proxy accepted"); - AddHandler(std::make_shared (this, socket)); + auto handler = std::make_shared (this, socket); + AddHandler(handler); + handler->Handle(); Accept(); } else diff --git a/SOCKS.cpp b/SOCKS.cpp index d4db0767..1cae4c83 100644 --- a/SOCKS.cpp +++ b/SOCKS.cpp @@ -128,8 +128,9 @@ namespace proxy SOCKSHandler(SOCKSServer * parent, boost::asio::ip::tcp::socket * sock) : I2PServiceHandler(parent), m_sock(sock), m_stream(nullptr), m_authchosen(AUTH_UNACCEPTABLE), m_addrtype(ADDR_IPV4) - { m_address.ip = 0; EnterState(GET_SOCKSV); AsyncSockRead(); } + { m_address.ip = 0; EnterState(GET_SOCKSV); } ~SOCKSHandler() { Terminate(); } + void Handle() { AsyncSockRead(); } }; void SOCKSHandler::AsyncSockRead() @@ -538,7 +539,9 @@ namespace proxy if (!ecode) { LogPrint(eLogDebug,"--- SOCKS accepted"); - AddHandler(std::make_shared (this, socket)); + auto handle = std::make_shared (this, socket); + AddHandler(handle); + handle->Handle(); Accept(); } else