From: <arn...@us...> - 2008-01-29 17:23:43
|
Revision: 129 http://adchpp.svn.sourceforge.net/adchpp/?rev=129&view=rev Author: arnetheduck Date: 2008-01-29 09:23:40 -0800 (Tue, 29 Jan 2008) Log Message: ----------- resend fix Modified Paths: -------------- adchpp/trunk/adchpp/ManagedSocket.cpp adchpp/trunk/changelog.txt Modified: adchpp/trunk/adchpp/ManagedSocket.cpp =================================================================== --- adchpp/trunk/adchpp/ManagedSocket.cpp 2008-01-18 22:36:54 UTC (rev 128) +++ adchpp/trunk/adchpp/ManagedSocket.cpp 2008-01-29 17:23:40 UTC (rev 129) @@ -98,14 +98,13 @@ // Copy as many buffers as possible // TODO The last copied buffer should be split... size_t done = 0; - BufferList::iterator i; - for(i = outBuf.begin(); i != outBuf.end(); ++i) { + BufferList::iterator i = outBuf.begin(); + do { buffers.push_back(*i); done += (*i)->size(); - if(done > max_send) { - break; - } - } + ++i; + } while((i != outBuf.end()) && (done < max_send)); + outBuf.erase(outBuf.begin(), i); } else { buffers.swap(outBuf); @@ -135,6 +134,7 @@ (*i)->erase_first(diff); } + dcdebug("Tried %u buffers, readding %u buffers, diff is %u\n", buffers.size(), std::distance(i, buffers.end()), diff); outBuf.insert(outBuf.begin(), i, buffers.end()); } Modified: adchpp/trunk/changelog.txt =================================================================== --- adchpp/trunk/changelog.txt 2008-01-18 22:36:54 UTC (rev 128) +++ adchpp/trunk/changelog.txt 2008-01-29 17:23:40 UTC (rev 129) @@ -2,6 +2,7 @@ * access.lua: fixed message type for MSG * Some minor socket fixes * Initial Bloom filter implementation +* Fixed 100% cpu / infinite resend bug -- 2.1 2008-01-06 -- * Initial ADC 1.0 release This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |