From b5e713e0f03349f53200beff034bb654010e8da2 Mon Sep 17 00:00:00 2001 From: tho <tho@wiback.org> Date: Mon, 15 Jun 2009 14:55:47 +0000 Subject: [PATCH] Socket: fixed bug in readfrom where socklen was not set --- Socket/ReadWritePolicy.cc | 4 ++-- Socket/ReadWritePolicy.cti | 2 +- Socket/ReadWritePolicy.hh | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Socket/ReadWritePolicy.cc b/Socket/ReadWritePolicy.cc index c8426044f..9ca08ad84 100644 --- a/Socket/ReadWritePolicy.cc +++ b/Socket/ReadWritePolicy.cc @@ -61,11 +61,11 @@ prefix_ unsigned senf::ReadablePolicy::read(FileHandle handle, char * buffer, prefix_ unsigned senf::ReadablePolicy::do_readfrom(FileHandle handle, char * buffer, unsigned size, - struct ::sockaddr * addr, socklen_t len) + struct ::sockaddr * addr, socklen_t * len) { int rv = -1; do { - rv = ::recvfrom(handle.fd(),buffer, size, 0, addr, &len); + rv = ::recvfrom(handle.fd(),buffer, size, 0, addr, len); if (rv < 0) switch (errno) { case EINTR: diff --git a/Socket/ReadWritePolicy.cti b/Socket/ReadWritePolicy.cti index 618c2d3ff..edb7915c9 100644 --- a/Socket/ReadWritePolicy.cti +++ b/Socket/ReadWritePolicy.cti @@ -38,7 +38,7 @@ readfrom(ClientSocketHandle<SPolicy> handle, char * buffer, unsigned size, typename SPolicy::AddressingPolicy::Address & address, typename IfCommunicationPolicyIs<SPolicy,UnconnectedCommunicationPolicy>::type *) { - return do_readfrom(handle, buffer, size, address.sockaddr_p(), address.socklen()); + return do_readfrom(handle, buffer, size, address.sockaddr_p(), address.socklen_p()); } #else template <class SPolicy> diff --git a/Socket/ReadWritePolicy.hh b/Socket/ReadWritePolicy.hh index 023b3f664..24d5cea6b 100644 --- a/Socket/ReadWritePolicy.hh +++ b/Socket/ReadWritePolicy.hh @@ -78,7 +78,7 @@ namespace senf { private: static unsigned do_readfrom(FileHandle handle, char * buffer, unsigned size, - struct ::sockaddr * addr, socklen_t len); + struct ::sockaddr * addr, socklen_t * len); }; /** \brief ReadPolicy for unreadable sockets -- GitLab