summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-07-31 18:39:13 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-07-31 18:39:13 (GMT)
commit67d69026c64a96b4e0dc64391b8bdcf43a187fab (patch)
tree4dce2be022cc052c7744cb6af8d0f1eeb56850ce /Swiften/Network/HostAddress.cpp
parentb3e6f21953d5d4b55ab9ffde78e1a1ff2a59dad1 (diff)
downloadswift-67d69026c64a96b4e0dc64391b8bdcf43a187fab.zip
swift-67d69026c64a96b4e0dc64391b8bdcf43a187fab.tar.bz2
HostAddress: Add constructor from String.
Diffstat (limited to 'Swiften/Network/HostAddress.cpp')
-rw-r--r--Swiften/Network/HostAddress.cpp12
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);