summaryrefslogtreecommitdiff
path: root/libcult/cult/os/net/ipv4/address.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libcult/cult/os/net/ipv4/address.cxx')
-rw-r--r--libcult/cult/os/net/ipv4/address.cxx37
1 files changed, 37 insertions, 0 deletions
diff --git a/libcult/cult/os/net/ipv4/address.cxx b/libcult/cult/os/net/ipv4/address.cxx
new file mode 100644
index 0000000..2507ed6
--- /dev/null
+++ b/libcult/cult/os/net/ipv4/address.cxx
@@ -0,0 +1,37 @@
+// file : cult/os/net/ipv4/address.cxx
+// author : Boris Kolpackov <boris@kolpackov.Net>
+// copyright : Copyright (c) 2005-2010 Boris Kolpackov
+// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+
+#include <cult/os/net/ipv4/address.hxx>
+
+#include <ostream>
+
+namespace Cult
+{
+ namespace OS
+ {
+ namespace Net
+ {
+ namespace IPv4
+ {
+ std::ostream&
+ operator<< (std::ostream& os, Address const& addr)
+ {
+ char str[INET_ADDRSTRLEN];
+
+ if (inet_ntop (AF_INET,
+ &addr.addr_.sin_addr,
+ str,
+ INET_ADDRSTRLEN) == 0)
+ {
+ throw Address::Invalid ();
+ }
+
+ return os << str << ":" << addr.port ();
+ }
+ }
+ }
+ }
+}
+