diff options
| author | Remko Tronçon <git@el-tramo.be> | 2009-12-02 20:42:30 (GMT) |
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2009-12-03 08:09:01 (GMT) |
| commit | 5608da36a3a319070494d5a70ff984e7c172186e (patch) | |
| tree | 2c44df5a9f0ea0ab180763222e54aece5dc65c93 /Swiften/Network/BoostConnection.cpp | |
| parent | 6e50bd41dc3f11815a40dfef500dc0d61ea5d737 (diff) | |
| download | swift-5608da36a3a319070494d5a70ff984e7c172186e.zip swift-5608da36a3a319070494d5a70ff984e7c172186e.tar.bz2 | |
DNS querying is now asynchronous.
This means we can now move them to a separate thread.
Diffstat (limited to 'Swiften/Network/BoostConnection.cpp')
| -rw-r--r-- | Swiften/Network/BoostConnection.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/Swiften/Network/BoostConnection.cpp b/Swiften/Network/BoostConnection.cpp index 9f2a7da..0d62300 100644 --- a/Swiften/Network/BoostConnection.cpp +++ b/Swiften/Network/BoostConnection.cpp @@ -1,59 +1,58 @@ #include "Swiften/Network/BoostConnection.h" #include <iostream> #include <boost/bind.hpp> #include <boost/thread.hpp> #include "Swiften/EventLoop/MainEventLoop.h" #include "Swiften/Base/String.h" #include "Swiften/Base/ByteArray.h" -#include "Swiften/Network/DomainNameResolver.h" -#include "Swiften/Network/DomainNameResolveException.h" +#include "Swiften/Network/HostAddressPort.h" namespace Swift { static const size_t BUFFER_SIZE = 4096; // ----------------------------------------------------------------------------- // A reference-counted non-modifiable buffer class. class SharedBuffer { public: SharedBuffer(const ByteArray& data) : data_(new std::vector<char>(data.begin(), data.end())), buffer_(boost::asio::buffer(*data_)) { } // ConstBufferSequence requirements. typedef boost::asio::const_buffer value_type; typedef const boost::asio::const_buffer* const_iterator; const boost::asio::const_buffer* begin() const { return &buffer_; } const boost::asio::const_buffer* end() const { return &buffer_ + 1; } private: boost::shared_ptr< std::vector<char> > data_; boost::asio::const_buffer buffer_; }; // ----------------------------------------------------------------------------- BoostConnection::BoostConnection(boost::asio::io_service* ioService) : socket_(*ioService), readBuffer_(BUFFER_SIZE) { } BoostConnection::~BoostConnection() { } void BoostConnection::listen() { doRead(); } void BoostConnection::connect(const HostAddressPort& addressPort) { boost::asio::ip::tcp::endpoint endpoint( boost::asio::ip::address::from_string(addressPort.getAddress().toString()), addressPort.getPort()); socket_.async_connect( endpoint, boost::bind(&BoostConnection::handleConnectFinished, shared_from_this(), boost::asio::placeholders::error)); } void BoostConnection::disconnect() { |
Swift