X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FClientSocketHandle.ct;h=c6fa8fd4de22ae470902d572ce5e65b264f16bb6;hb=82e8df5de8b11448423388632e8602ad97bc7885;hp=2678fa65f330096f4bc0c5c3efa7a60b2514b744;hpb=a1a6c76a214ad1935032826713cabaf9ac57bf07;p=senf.git diff --git a/Socket/ClientSocketHandle.ct b/Socket/ClientSocketHandle.ct index 2678fa6..c6fa8fd 100644 --- a/Socket/ClientSocketHandle.ct +++ b/Socket/ClientSocketHandle.ct @@ -28,6 +28,7 @@ // Custom includes #include +#include #include "../Utils/Buffer.hh" #define prefix_ @@ -97,7 +98,7 @@ template prefix_ std::string senf::ClientSocketHandle::read(unsigned limit) { std::string rv; - this->read(rv,limit); + this->read(rv, limit); return rv; } @@ -105,10 +106,9 @@ template template prefix_ void senf::ClientSocketHandle::read(Sequence & container, unsigned limit) { - unsigned nread (available()); - if (limit>0 && nread>limit) - nread = limit; - container.resize(nread); + if (limit == 0) + limit = available(); + container.resize(limit); container.erase(read( std::make_pair(container.begin(), container.end()) ), container.end()); } @@ -120,9 +120,9 @@ prefix_ std::pair senf::ClientSocketHandle::readfrom(unsigned limit) { std::string rv; - typename SPolicy::AddressingPolicy::Address addr; - this->readfrom(rv,addr,limit); - return std::make_pair(rv,addr); + boost::value_initialized addr; + this->readfrom(rv, addr.data(), limit); + return std::make_pair(rv, addr.data()); } template