◐ Shell
clean mode source ↗

Message 183755 - Python tracker

A much larger patch which should address all issues is in attachment.
Updates:

- use poll() instead of select() whenever possible
- take socket timeout into account
- take SSL/FTPS into account
- when using select() look for EMFILE in case num fds >  FD_SETSIZE
- look for (AttributeError, io.UnsupportedOperation) when invoking file.fileno() instead of Exception, which seemed too general