Commit Graph

69 Commits

Author SHA1 Message Date
Georg Brandl
7357c23ee7 Fix exception slicing. 2008-01-06 18:23:30 +00:00
Georg Brandl
6464d47195 In followup to #1310: Remove more exception indexing. 2007-10-22 16:16:13 +00:00
Collin Winter
ce36ad8a46 Raise statement normalization in Lib/. 2007-08-30 01:19:48 +00:00
Guido van Rossum
df4a743ac0 Fix test_asyncore after merge. It needs to use bytes. 2007-07-18 20:57:44 +00:00
Guido van Rossum
be19ed77dd Fix most trivially-findable print statements.
There's one major and one minor category still unfixed:
doctests are the major category (and I hope to be able to augment the
refactoring tool to refactor bona fide doctests soon);
other code generating print statements in strings is the minor category.

(Oh, and I don't know if the compiler package works.)
2007-02-09 05:37:30 +00:00
Guido van Rossum
b940e113bf SF patch 1631942 by Collin Winter:
(a) "except E, V" -> "except E as V"
(b) V is now limited to a simple name (local variable)
(c) V is now deleted at the end of the except block
2007-01-10 16:19:56 +00:00
Guido van Rossum
e2b70bcf74 Get rid of dict.has_key(). Boy this has a lot of repercussions!
Not all code has been fixed yet; this is just a checkpoint...
The C API still has PyDict_HasKey() and _HasKeyString(); not sure
if I want to change those just yet.
2006-08-18 22:13:04 +00:00
Neal Norwitz
4ce69a5b06 No need to import exceptions, they are builtins 2005-09-01 00:45:28 +00:00
Andrew M. Kuchling
e47c381c62 [Bug #1011606] Only check file descriptors for exceptional conditions if the fd is readable or writable 2004-09-01 14:04:51 +00:00
Andrew M. Kuchling
9d499f2f96 Back out patch #982681 2004-08-13 20:06:57 +00:00
Tim Peters
182b5aca27 Whitespace normalization, via reindent.py. 2004-07-18 06:16:08 +00:00
Andrew M. Kuchling
5336f8caa4 [Patch #982681] Apply this patch correctly; makes set_reuse_addr() work on Windows 2004-07-15 16:17:07 +00:00
Andrew M. Kuchling
0fff6c8651 In poll(), check connections for exceptional conditions 2004-07-10 17:36:11 +00:00
Andrew M. Kuchling
dfa74b97ec Return value from .close(); move .set_file up 2004-07-10 15:51:19 +00:00
Tim Peters
4e0e1b6a54 Whitespace normalization. 2004-07-07 20:54:48 +00:00
Andrew M. Kuchling
6fe93cdeb3 For readable() objects, the previous value of 'flags' was ignored.
Rearrange code for writable() case to make the parallel logic clearer
2004-07-07 12:23:53 +00:00
Michael W. Hudson
d5cf143482 Check in the updated version of patch #957240, which doesn't rely
on the marshalling characteristics of infinities.
2004-06-30 09:02:33 +00:00
Martin v. Löwis
ad21945d03 Back out #957240. 2004-06-14 04:58:42 +00:00
Martin v. Löwis
eac324b90b Patch #957240: Add count parameter to asyncore.loop. 2004-06-03 09:18:35 +00:00
Andrew M. Kuchling
67867eaf8c [Part of patch #909005] Added map parameter for file_dispatcher and dispatcher_with_send 2004-03-21 20:03:18 +00:00
Andrew M. Kuchling
174bdbc999 [Part of patch #909005] Repeating exception changed from 'raise socket.error, why' to just raise. Make use of connect_ex() raise socket.error with 2-tuple instead of just error code 2004-03-21 19:58:28 +00:00
Andrew M. Kuchling
419af88b34 [Part of patch #909005] Remove Mac code for writable 2004-03-21 19:52:01 +00:00
Andrew M. Kuchling
0ebbbe30f1 [Part of patch #909005] Set initial poll flags 2004-03-21 19:50:09 +00:00
Andrew M. Kuchling
68522b1895 [Part of patch #909005] Use True/False 2004-03-21 19:46:16 +00:00
Andrew M. Kuchling
9303777f22 [Part of patch #909005] Handle POLLPRI flag, and various errors cases. Fixes bug #887279 2004-03-21 19:26:00 +00:00
Raymond Hettinger
3dc3484ac8 SF bug #892492: Multiple close() for asyncore.dispatcher.
(Contributed by Alexey Klimkin.)

Don't keep the file descriptor after the channel is deleted.
2004-02-08 11:32:50 +00:00
Andrew M. Kuchling
6c2871e707 [Part of patch #648322] Delete the poll2() function, which uses a 'poll' extension module that was once part of Medusa. Contributed by Kjetil Jacobsen 2003-10-22 14:38:27 +00:00
Andrew M. Kuchling
f9ca409292 [Bug #758241] When you use asyncore with a non-default map, methods
of the dispatcher object break.  e.g. if you close() the object, it
  tries to remove itself from the default map, not from the map the
  dispatcher was created with.

  The patch, from Stephane Ninin, records the map as an attribute of
  the dispatcher instance.

2.3 bugfix candidate.
2003-10-22 13:48:27 +00:00
Walter Dörwald
f0dfc7ac5c Fix a bunch of typos in documentation, docstrings and comments.
(From SF patch #810751)
2003-10-20 14:01:56 +00:00
Andrew M. Kuchling
c07fb2fc5b Fix comment typo 2003-02-14 01:13:01 +00:00
Guido van Rossum
9a40c1c299 Add XXX about Winsock error values 2002-12-26 18:22:54 +00:00
Guido van Rossum
e94d8fab56 Fix an old bug in poll(). When a signal is handled while we're
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.
2002-11-05 18:41:20 +00:00
Thomas Heller
6d817ad43d Again, I did check in too many changes. Sorry. 2002-09-26 13:19:48 +00:00
Thomas Heller
d8ce87ad84 On Windows, select() does not accept empty lists.
Patch suggested by Guido, fixes SF item 611464.

Bugfix candidate, will backport to release22-maint myself.
2002-09-24 17:30:31 +00:00
Guido van Rossum
12e9668989 Fiddle with compact_traceback().
More whitespace cleanup.
2002-09-13 14:09:26 +00:00
Guido van Rossum
d560ace3a7 I don't think it's safe to use map.iteritems() in the various poll
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).
2002-09-12 04:57:29 +00:00
Jeremy Hylton
d750036b20 A little refactoring.
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.
2002-09-08 00:14:54 +00:00
Tim Peters
bc0e910826 Convert a pile of obvious "yes/no" functions to return bool. 2002-04-04 22:55:58 +00:00
Jeremy Hylton
f32e459125 Replace use of apply() with extended call syntax. 2002-04-04 21:02:24 +00:00
Neal Norwitz
9672901742 Remove duplicate "import os" 2002-03-14 23:48:18 +00:00
Andrew M. Kuchling
cc5f5b2686 [Bug #517554] When a signal happens during the select call in
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
2002-03-08 18:19:59 +00:00
Jeremy Hylton
2a05bc72d6 Partial fix for problem in SF buf #487458
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.
2001-12-14 16:15:11 +00:00
Jeremy Hylton
f24339f6f7 /F observes that we need an else: in connect() 2001-10-30 14:16:17 +00:00
Jeremy Hylton
e16e54f7f1 Use connect_ex() instead of connect().
Removes old XXX comment and possible source of long-delays.
2001-10-29 16:44:37 +00:00
Jeremy Hylton
fbd5797eb7 Fix for SF bug 453099 -- select not defensive
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.
2001-10-29 16:32:19 +00:00
Martin v. Löwis
29103c7b32 Reindent __repr__. 2001-10-18 17:33:19 +00:00
Martin v. Löwis
eee80ee2ef Patch #470744: Simplify __repr__ error handling. 2001-10-18 11:39:34 +00:00
Martin v. Löwis
106bdd3b80 Correct __repr__: include module name, avoid extra space for empty status,
use 0x format for id. Proposed by Cesar Eduardo Barros in patch #470680.
2001-10-12 22:39:20 +00:00
Martin v. Löwis
6ec9a36faf Patch #468647: Fix exception propagation in asyncore. 2001-10-09 10:10:33 +00:00
Andrew M. Kuchling
4602c1b702 Set .addr in a few more places (patch approved by Sam Rushing) 2001-10-03 17:07:25 +00:00