This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author josiahcarlson
Recipients josiahcarlson, nirs
Date 2009-07-29.18:19:08
SpamBayes Score 1.56376e-09
Marked as misclassified No
Message-id <1248891552.24.0.307313128775.issue6550@psf.upfronthosting.co.za>
In-reply-to
Content
Originally, handle_expt_event() was described as "handles OOB data or 
exceptions", but over-using handle_expt_event() as an error/close 
handler is a bad idea.  The function asyncore.readwrite() (called by 
asyncore.poll2()) does the right thing WRT handle_expt_event(), which it 
makes sense to apply to the standard select-based asyncore.poll().  
That's what this does (in addition to fixing the close case that you 
pointed out).

In terms of "only implementing low-level stuff", this is still the case.  
You still only need to implement handle_*(), not handle_*_event() .  But 
now, handle_expt_event() isn't written to do more than it should have 
been doing in the first place.

I've updated the patch to include semantics for actually handling OOB 
data, which I've verified by using a slightly modified pyftpdlib (remove 
the socket option calls to set socket.SO_OOBINLINE) and it's tests on 
both Windows and Ubuntu 8.04 (I also ran the full Python test suite on 
my Ubuntu install, and any failures were obviously not asyncore/asynchat 
related).
History
Date User Action Args
2009-07-29 18:19:12josiahcarlsonsetrecipients: + josiahcarlson, nirs
2009-07-29 18:19:12josiahcarlsonsetmessageid: <1248891552.24.0.307313128775.issue6550@psf.upfronthosting.co.za>
2009-07-29 18:19:10josiahcarlsonlinkissue6550 messages
2009-07-29 18:19:10josiahcarlsoncreate