Message91058
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). |
|
Date |
User |
Action |
Args |
2009-07-29 18:19:12 | josiahcarlson | set | recipients:
+ josiahcarlson, nirs |
2009-07-29 18:19:12 | josiahcarlson | set | messageid: <1248891552.24.0.307313128775.issue6550@psf.upfronthosting.co.za> |
2009-07-29 18:19:10 | josiahcarlson | link | issue6550 messages |
2009-07-29 18:19:10 | josiahcarlson | create | |
|