Author josiahcarlson
Recipients
Date 2007-06-13.00:37:23
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
There are a handful of outstanding asyncore/asynchat related bugs in the tracker.  This patch seeks to handle all of the issues with the exception of windows-specific socket errors from 658749 .

In particular, it takes pieces of patches 909005 and 1736101, to address some issues raised there, as well as the bugs: 539444, 760475, 777588, 889153, 953599, 1025525, and 1063924.

In some cases where it could potentially handle fewer exceptions (see the send method), I have opted to handle more of them due to testing actually producing them.

It adds test cases from patch 909005.

It adds two new sample methods to asynchat.async_chat _get_data and _collect_incoming_data to be used as examples for handling incoming buffers.

It removes the simple_producer and fifo classes from asynchat, but accepts work-alikes to the asynchat.async_chat.push_with_producer method.

It further fixes an unreported violated invariant in asynchat.async_chat.handle_read() .

It also produces a useful error message when asyncore.dispatcher.handle_expt_evt is called if the base handle_expt has not been overwritten.


This patch should be applied to the trunk.  The new methods, and removal of the two classes should not be included in patches to 2.5 maintenance (don't add the methods and don't remove the classes).  Basically everything else should work as it did before (with better error handling), unless someone was monkey-patching asyncore.dispatcher.handle_expt .
History
Date User Action Args
2007-08-23 15:58:45adminlinkissue1736190 messages
2007-08-23 15:58:45admincreate