summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/FileTransfer/SOCKS5BytestreamProxyFinder.h')
-rw-r--r--Swiften/FileTransfer/SOCKS5BytestreamProxyFinder.h12
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;
+};
}