Mercurial > code
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); } /**