summaryrefslogtreecommitdiffstats
path: root/Lib/asyncore.py
Commit message (Collapse)AuthorAgeFilesLines
* Add XXX about Winsock error valuesGuido van Rossum2002-12-261-0/+1
|
* Fix an old bug in poll(). When a signal is handled while we'reGuido van Rossum2002-11-051-0/+2
| | | | | | | | | | | | blocked in select(), this will raise select.error with errno set to EINTR. The except clauses correctly ignores this error, but the rest of the logic will then call read() for all objects in select's *input* list of read file descriptors. Then when an object's read_handler() is naive, it will call recv() on its socket, which will raise an IOError, and then asyncore decides to close the socket. To fix this, we simply return in this case. Backport candidate.
* Again, I did check in too many changes. Sorry.Thomas Heller2002-09-261-1/+1
|
* On Windows, select() does not accept empty lists.Thomas Heller2002-09-241-5/+9
| | | | | | Patch suggested by Guido, fixes SF item 611464. Bugfix candidate, will backport to release22-maint myself.
* Fiddle with compact_traceback().Guido van Rossum2002-09-131-7/+6
| | | | More whitespace cleanup.
* I don't think it's safe to use map.iteritems() in the various pollGuido van Rossum2002-09-121-103/+107
| | | | | | | | | | | | | | routines. I got some errors "dictionary changed size during iteration" when running ZEO tests on machine while doing heavy forground work in another window, and thinking about it, I believe that it should be okay if readable() or writable() modifies the map. I also finally made all the spacing conform to the Python style guide: no space between a function/method name and the following left parenthesis (fixed lots of occurrences), spaces around assignment operators (fixed a few, always of the form "map=..."), and a blank line between the class statement and the first method definition (a few).
* A little refactoring.Jeremy Hylton2002-09-081-60/+46
| | | | | | | | | | | | Add read(), write(), and readwrite() helper functions to shorten poll functions. Use get() instead of try/except KeyError for lookup. XXX How could the lookup ever fail? Remove module-level DEBUG flag. Use iteritems() instead of items() when walking the socket map. Reformat the functions I touched so that are consistently Pythonic.
* Convert a pile of obvious "yes/no" functions to return bool.Tim Peters2002-04-041-2/+2
|
* Replace use of apply() with extended call syntax.Jeremy Hylton2002-04-041-2/+3
|
* Remove duplicate "import os"Neal Norwitz2002-03-141-1/+0
|
* [Bug #517554] When a signal happens during the select call inAndrew M. Kuchling2002-03-081-0/+1
| | | | | | | | | asyncore.poll, the select fails with EINTR, which the code catches. However, the code fails to clear the r/w/e arrays (like poll3 does), which means it acts as if every descriptor had received all possible events. Bug report and patch by Cesar Eduardo Barros
* Partial fix for problem in SF buf #487458Jeremy Hylton2001-12-141-1/+7
| | | | | | | | | | | | | | | | | | Rev 1.20 introduced a call to getpeername() in the dispatcher constructor. This only works for a connected socket. Apparently earlier versions of the code worked with un-connected sockets, e.g. a listening socket. It's not clear that the code is supposed to accept these sockets, because it sets self.connected = 1 when passed a socket. But it's also not clear that it should be a fatal error to pass a listening socket. The solution, for now, is to put a try/except around the getpeername() call and continue if it fails. The self.addr attribute is used primarily (only?) to produce a nice repr for the object, so it hardly matters. If there is a real error on a connected socket, it's likely that subsequent calls will fail too.
* /F observes that we need an else: in connect()Jeremy Hylton2001-10-301-1/+2
|
* Use connect_ex() instead of connect().Jeremy Hylton2001-10-291-12/+9
| | | | Removes old XXX comment and possible source of long-delays.
* Fix for SF bug 453099 -- select not defensiveJeremy Hylton2001-10-291-5/+16
| | | | | | | | | | And SF patch 473223 -- infinite getattr loop Wrap select() and poll() calls with try/except for EINTR. If EINTR is raised, treat as a response where no fd is ready. In dispatcher constructor, make sure self.socket is always initialized.
* Reindent __repr__.Martin v. Löwis2001-10-181-11/+11
|
* Patch #470744: Simplify __repr__ error handling.Martin v. Löwis2001-10-181-16/+4
|
* Correct __repr__: include module name, avoid extra space for empty status,Martin v. Löwis2001-10-121-3/+2
| | | | use 0x format for id. Proposed by Cesar Eduardo Barros in patch #470680.
* Patch #468647: Fix exception propagation in asyncore.Martin v. Löwis2001-10-091-34/+38
|
* Set .addr in a few more places (patch approved by Sam Rushing)Andrew M. Kuchling2001-10-031-0/+2
|
* Patch #461321: Support None as a timeout in poll2 and poll3.Martin v. Löwis2001-09-191-4/+6
|
* Patch #460554: Properly test for tuples.Martin v. Löwis2001-09-111-1/+1
|
* Whitespace normalization.Tim Peters2001-08-201-1/+1
|
* Remove redundant assignment l = [] from poll3() -- copy-and-pasteGuido van Rossum2001-08-131-1/+0
| | | | error.
* Remove hard-coded NT constants that are already defined in errno on NT.Jeremy Hylton2001-08-101-11/+5
| | | | | Wrap some long lines. Remove unnecessary tuple unpack.
* <socket>.getsockopt() and <socket>.setsockopt() can only raise socket.error,Fred Drake2001-05-111-1/+1
| | | | so only catch that specific exception.
* Remove all remaining uses of the FCNTL module from the standard library.Fred Drake2001-05-101-4/+3
|
* Whitespace normalization.Tim Peters2001-05-021-1/+1
|
* dispatcher.__repr__() was unprepared to handle the address for a UnixJeremy Hylton2001-04-201-11/+16
| | | | | domain socket. Fix that and make the error message for failures a little more helpful by including the class name.
* String method conversion.Eric S. Raymond2001-02-091-9/+2
|
* Updated version of asyncore.py from Sam Rushing:Andrew M. Kuchling2001-01-241-4/+40
| | | | | | Adds support for using select.poll() if it's available Move a 'map is None' test out of an else branch and into the right place
* Whitespace standardization.Tim Peters2001-01-141-11/+11
|
* Untabify. When compiling in -tt mode, an inconsistent Tab use errorFred Drake2000-09-111-408/+407
| | | | was raised. This occurred during installation.
* Match Sam Rushing's current version of asyncore.py and asynchat.pyAndrew M. Kuchling2000-09-081-77/+119
| | | | (SF patch 101447, fixing PR#113704)
* Fix a couple broken append() calls, spotted by Tim.Guido van Rossum2000-02-251-4/+4
|
* Actually, the previous batch's comment should have been different;Guido van Rossum2000-02-041-0/+21
| | | | | | | | | | *this* set of patches is Ka-Ping's final sweep: The attached patches update the standard library so that all modules have docstrings beginning with one-line summaries. A new docstring was added to formatter. The docstring for os.py was updated to mention nt, os2, ce in addition to posix, dos, mac.
* Put Sam Rushing's original RCS ID string back, without dollars around it.Guido van Rossum1999-09-141-1/+1
|
* Sam's latest versionsGuido van Rossum1999-06-081-48/+48
|
* A gift from Sam Rushing - modules asyncore and asynchat for theGuido van Rossum1999-01-121-0/+453
standard Python library. (Async socket support.)