/* * Copyright (c) 2011 Tobias Markmann * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include #include namespace Swift { class JID; class IQRouter; class SOCKS5BytestreamProxyFinder { public: SOCKS5BytestreamProxyFinder(const JID& service, IQRouter *iqRouter); ~SOCKS5BytestreamProxyFinder(); void start(); void stop(); boost::signal)> onProxyFound; private: void sendBytestreamQuery(const JID&); void handleServiceFound(const JID&, boost::shared_ptr); void handleProxyResponse(boost::shared_ptr, ErrorPayload::ref); private: JID service; IQRouter* iqRouter; boost::shared_ptr serviceWalker; std::vector > > requests; }; }