diff options
Diffstat (limited to 'Swiften/FileTransfer/SOCKS5BytestreamProxyFinder.h')
| -rw-r--r-- | Swiften/FileTransfer/SOCKS5BytestreamProxyFinder.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Swiften/FileTransfer/SOCKS5BytestreamProxyFinder.h b/Swiften/FileTransfer/SOCKS5BytestreamProxyFinder.h index c5ad72a..1c24497 100644 --- a/Swiften/FileTransfer/SOCKS5BytestreamProxyFinder.h +++ b/Swiften/FileTransfer/SOCKS5BytestreamProxyFinder.h @@ -11,19 +11,18 @@ */ #pragma once #include <boost/shared_ptr.hpp> #include <Swiften/Base/API.h> #include <Swiften/Disco/DiscoServiceWalker.h> -#include <Swiften/Network/HostAddressPort.h> #include <Swiften/Elements/S5BProxyRequest.h> namespace Swift { class JID; class IQRouter; /* * This class is designed to find possible SOCKS5 bytestream proxies which are used for peer-to-peer data transfers in @@ -31,24 +30,27 @@ class IQRouter; */ class SWIFTEN_API SOCKS5BytestreamProxyFinder { public: SOCKS5BytestreamProxyFinder(const JID& service, IQRouter *iqRouter); ~SOCKS5BytestreamProxyFinder(); void start(); void stop(); - boost::signal<void(boost::shared_ptr<S5BProxyRequest>)> onProxyFound; + boost::signal<void(std::vector<boost::shared_ptr<S5BProxyRequest> >)> onProxiesFound; private: void sendBytestreamQuery(const JID&); void handleServiceFound(const JID&, boost::shared_ptr<DiscoInfo>); - void handleProxyResponse(boost::shared_ptr<S5BProxyRequest>, ErrorPayload::ref); + void handleProxyResponse(boost::shared_ptr<GenericRequest<S5BProxyRequest> > requester, boost::shared_ptr<S5BProxyRequest>, ErrorPayload::ref); + void handleWalkEnded(); + private: JID service; IQRouter* iqRouter; boost::shared_ptr<DiscoServiceWalker> serviceWalker; - std::vector<boost::shared_ptr<GenericRequest<S5BProxyRequest> > > requests; - }; + std::vector<S5BProxyRequest::ref> proxyHosts; + std::set<boost::shared_ptr<GenericRequest<S5BProxyRequest> > > pendingRequests; +}; } |
Swift