diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-07-31 18:39:13 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-07-31 18:39:13 (GMT) |
commit | 67d69026c64a96b4e0dc64391b8bdcf43a187fab (patch) | |
tree | 4dce2be022cc052c7744cb6af8d0f1eeb56850ce /Swiften/Network/HostAddress.cpp | |
parent | b3e6f21953d5d4b55ab9ffde78e1a1ff2a59dad1 (diff) | |
download | swift-contrib-67d69026c64a96b4e0dc64391b8bdcf43a187fab.zip swift-contrib-67d69026c64a96b4e0dc64391b8bdcf43a187fab.tar.bz2 |
HostAddress: Add constructor from String.
Diffstat (limited to 'Swiften/Network/HostAddress.cpp')
-rw-r--r-- | Swiften/Network/HostAddress.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Swiften/Network/HostAddress.cpp b/Swiften/Network/HostAddress.cpp index 84a0012..ea324cb 100644 --- a/Swiften/Network/HostAddress.cpp +++ b/Swiften/Network/HostAddress.cpp @@ -1,10 +1,14 @@ #include "Swiften/Network/HostAddress.h" #include <boost/numeric/conversion/cast.hpp> +#include <boost/lexical_cast.hpp> #include <cassert> #include <sstream> #include <iomanip> +#include "Swiften/Base/foreach.h" +#include "Swiften/Base/String.h" + namespace Swift { HostAddress::HostAddress() { @@ -13,6 +17,14 @@ HostAddress::HostAddress() { } } +HostAddress::HostAddress(const String& address) { + std::vector<String> components = address.split('.'); + assert(components.size() == 4); + foreach(const String& component, components) { + address_.push_back(boost::lexical_cast<int>(component.getUTF8String())); + } +} + HostAddress::HostAddress(const unsigned char* address, int length) { assert(length == 4 || length == 16); address_.reserve(length); |