changeset 448:5310aa051568

Socket: put back getsockname
author David Demelier <markand@malikania.fr>
date Thu, 29 Oct 2015 20:18:00 +0100
parents 828d3dc89f2d
children c3d55937754f
files C++/modules/Socket/Sockets.h
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/C++/modules/Socket/Sockets.h	Wed Oct 28 21:16:27 2015 +0100
+++ b/C++/modules/Socket/Sockets.h	Thu Oct 29 20:18:00 2015 +0100
@@ -643,8 +643,14 @@
 	 */
 	Address address() const
 	{
-		// TODO: to reimplement
-		return {};
+		sockaddr_storage ss;
+		socklen_t length = sizeof (sockaddr_storage);
+
+		if (::getsockname(m_handle, (sockaddr *)&ss, &length) == Failure) {
+			throw Error{Error::System, "getsockname"};
+		}
+
+		return Address(&ss, length);
 	}
 
 	/**