X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FClientSocketHandle.ct;h=c6fa8fd4de22ae470902d572ce5e65b264f16bb6;hb=5443435c4c2b6e4386c5334b5b8358273f2bae93;hp=4ba87e58583bdc122ab03034196e12b51164f6f4;hpb=c778649a04a9835ecaad9108b9613832d76c2d15;p=senf.git diff --git a/Socket/ClientSocketHandle.ct b/Socket/ClientSocketHandle.ct index 4ba87e5..c6fa8fd 100644 --- a/Socket/ClientSocketHandle.ct +++ b/Socket/ClientSocketHandle.ct @@ -1,8 +1,8 @@ // $Id$ // // Copyright (C) 2006 -// Fraunhofer Institute for Open Communication Systems (FOKUS) -// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -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