Commit Graph

119 Commits

Author SHA1 Message Date
Nir Soffer 25de5baf3e bpo-30980: Fix double close in asyncore.file_wrapper (#2789) (#2898)
* bpo-30980: Fix close test to fail

test_close_twice was not considering the fact that file_wrapper is
duping the file descriptor. Closing the original descriptor left the
duped one open, hiding the fact that close protection is not effective.

* bpo-30980: Fix double close protection

Invalidated self.fd before closing, handling correctly the case when
os.close raises.

* bpo-30980: Fix fd leak introduced in the fixed test
2017-07-27 01:27:08 +02:00
Guido van Rossum 66078ac5d0 Issue #25002: Back out asyncore/asynchat deprecation. 2016-10-25 18:42:51 -07:00
Guido van Rossum 16591f440d Issue 25002: Deprecate asyncore/asynchat. Patch by Mariatta. 2016-10-25 08:49:13 -07:00
Larry Hastings 10108a7b9a Issue #27355: Removed support for Windows CE. It was never finished,
and Windows CE is no longer a relevant platform for Python.
2016-09-05 15:11:23 -07:00
Victor Stinner e19558af1b Add a source parameter to warnings.warn()
Issue #26604:

* Add a new optional source parameter to _warnings.warn() and warnings.warn()
* Modify asyncore, asyncio and _pyio modules to set the source parameter when
  logging a ResourceWarning warning
2016-03-23 00:28:08 +01:00
Victor Stinner 3c7d6e0693 Issue #23485: select.poll.poll() is now retried when interrupted by a signal 2015-03-30 21:38:00 +02:00
Victor Stinner f70e1ca0fc Issue #23485: select.select() is now retried automatically with the recomputed
timeout when interrupted by a signal, except if the signal handler raises an
exception. This change is part of the PEP 475.

The asyncore and selectors module doesn't catch the InterruptedError exception
anymore when calling select.select(), since this function should not raise
InterruptedError anymore.
2015-03-30 21:16:11 +02:00
Raymond Hettinger df1b699447 Issue #22823: Use set literals instead of creating a set from a list 2014-11-09 15:56:33 -08:00
Victor Stinner 1db9e7bb19 Issue #22054: Add os.get_blocking() and os.set_blocking() functions to get and
set the blocking mode of a file descriptor (False if the O_NONBLOCK flag is
set, True otherwise). These functions are not available on Windows.
2014-07-29 22:32:47 +02:00
Serhiy Storchaka 521e5860a5 Issue #22032: __qualname__ instead of __name__ is now always used to format
fully qualified class names of Python implemented classes.
2014-07-22 15:00:37 +03:00
Victor Stinner a81088ae12 (Merge 3.4) Issue #11453: asyncore: emit a ResourceWarning when an unclosed
file_wrapper object is destroyed. The destructor now closes the file if needed.
The close() method can now be called twice: the second call does nothing.
2014-06-27 23:57:19 +02:00
Victor Stinner 4d4c69dc35 Issue #11453: asyncore: emit a ResourceWarning when an unclosed file_wrapper
object is destroyed. The destructor now closes the file if needed. The close()
method can now be called twice: the second call does nothing.
2014-06-27 23:52:03 +02:00
Giampaolo Rodola' 8af740c46a fix isuse #13248: remove previously deprecated asyncore.dispatcher __getattr__ cheap inheritance hack. 2014-04-29 02:03:40 +02:00
Giampaolo Rodola' a4c377cde9 Do not raise exception on close() on account of socket attribute still being None:
>>> import asyncore
>>> d = asyncore.dispatcher()
>>> d.close()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.4/asyncore.py", line 401, in close
    self.socket.close()
AttributeError: 'NoneType' object has no attribute 'close'
>>>
2013-04-09 17:21:25 +02:00
Charles-François Natali fe22dcaba7 Issue #16787: Increase asyncore and asynchat default output buffers size, to
decrease CPU usage and increase throughput.
2013-01-01 16:31:54 +01:00
Andrew Svetlov 0832af6628 Issue #16717: get rid of socket.error, replace with OSError 2012-12-18 23:10:48 +02:00
Andrew Svetlov 5b89840d9c Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:26:36 +02:00
Andrew Svetlov 737fb89dd1 Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:14:22 +02:00
Giampaolo Rodola' 3539ef3d21 merge 79422b3684f1 in 3.3 branch (issue 10340) 2012-03-22 16:19:45 +01:00
Giampaolo Rodola' 350c94b900 fix #10340: properly handle EINVAL on OSX and also avoid to call handle_connect() in case of a disconnetected socket which is not meant to connect. 2012-03-22 16:17:43 +01:00
Giampaolo Rodola' 7941736ddb Fix issue #13694: asynchronous connect in asyncore.dispatcher does not set addr. 2012-03-20 16:49:55 +01:00
Giampaolo Rodola' 2a886412ba Fix issue #13694: asynchronous connect in asyncore.dispatcher does not set addr. 2012-03-20 16:44:24 +01:00
Charles-François Natali 88c2e45367 asyncore: POLLERR, POLLHUP and POLLNVAL are ignored when passed as input flag
to poll(2): don't set them.
2011-11-05 14:16:01 +01:00
Antoine Pitrou 24d659daaf Use InterruptedError instead of checking for EINTR 2011-10-23 23:49:42 +02:00
Charles-François Natali f64f9e9ec1 Merge - Issue #12502: asyncore: fix polling loop with AF_UNIX sockets. 2011-07-14 20:00:49 +02:00
Charles-François Natali 1f0ccfa853 Merge - Issue #12502: asyncore: fix polling loop with AF_UNIX sockets. 2011-07-14 19:57:35 +02:00
Giampaolo Rodolà 00a4286591 Merged revisions 88726 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r88726 | giampaolo.rodola | 2011-03-03 15:10:58 +0100 (gio, 03 mar 2011) | 1 line

  fix attribute error
........
2011-03-03 14:11:46 +00:00
Giampaolo Rodolà de3dc0f66c fix attribute error 2011-03-03 14:10:58 +00:00
Giampaolo Rodolà 9c9105dc81 Merged revisions 88722 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r88722 | giampaolo.rodola | 2011-03-03 14:57:47 +0100 (gio, 03 mar 2011) | 1 line

  Fix issue 11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors on accept(), recv() and send().
........
2011-03-03 13:59:28 +00:00
Giampaolo Rodolà 1bc75c6cee Fix issue 11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors on accept(), recv() and send(). 2011-03-03 13:57:47 +00:00
Giampaolo Rodolà 103a6d6cd6 Issue 11177: asyncore's create_socket() arguments can now be omitted. 2011-02-25 22:21:22 +00:00
Giampaolo Rodolà 900d547047 reverting r88395 and r88387 as per http://mail.python.org/pipermail/python-dev/2011-February/108005.html 2011-02-11 14:01:46 +00:00
Giampaolo Rodolà 42e0b7f47e asyncore: introduce a new 'closed' attribute to make sure that dispatcher gets closed only once.
In different occasions close() might be called more than once, causing problems with already disconnected sockets/dispatchers.
2011-02-11 13:04:18 +00:00
Giampaolo Rodolà 73acad1fa2 get rid of asyncore.dispatcher's debug attribute, which is no longer used (assuming it ever was). 2011-02-10 18:42:36 +00:00
Giampaolo Rodolà 977c707b42 Fix issue 6706: adds new handle_accepted() method to asyncore.dispatcher 2010-10-04 21:08:36 +00:00
Giampaolo Rodolà 86909b50b7 rename DISCONNECTED global constant in _DISCONNECTED 2010-09-15 21:59:04 +00:00
Giampaolo Rodolà 985b68e611 Store all errors signaling a disconnection into a global frozenset to save some computation time on recv() and send(). 2010-09-15 21:43:47 +00:00
Giampaolo Rodolà 76fc8c7098 fix issue 658749: correctly interprets asyncore's windows errors on connect() 2010-08-23 21:53:41 +00:00
Giampaolo Rodolà 934abddaec fix issue #2944: asyncore doesn't handle connection refused correctly (patch by Alexander Shigin). Merged from 2.7 branch. 2010-08-04 09:02:27 +00:00
Georg Brandl cbb0ae4a42 #9354: Provide getsockopt() in asyncore file_wrapper(). Patch by Lukas Langa. 2010-07-28 08:19:35 +00:00
Giampaolo Rodolà 82e02b5876 Merged revisions 81294 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81294 | giampaolo.rodola | 2010-05-18 22:04:31 +0200 (mar, 18 mag 2010) | 1 line

  Fix issue #8573 (asyncore._strerror bug): fixed os.strerror typo; included NameError in the tuple of expected exception; added test case for asyncore._strerror.
........
2010-05-18 20:11:58 +00:00
Giampaolo Rodolà d61e397b12 Merged revisions 80880 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80880 | giampaolo.rodola | 2010-05-06 21:56:34 +0200 (gio, 06 mag 2010) | 1 line

  provides a clearer warning message when cheap inheritance with the underlying socket object is used
........
2010-05-06 20:02:37 +00:00
Giampaolo Rodolà 8d2dc85154 Merged revisions 80875 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80875 | giampaolo.rodola | 2010-05-06 19:57:06 +0200 (gio, 06 mag 2010) | 1 line

  Fix asyncore issues 8573 and 8483: _strerror might throw ValueError; asyncore.__getattr__ cheap inheritance caused confusing error messages when accessing undefined class attributes; added an alias for __str__ which now is used as a fallback for __repr__
........
2010-05-06 18:06:30 +00:00
Josiah Carlson 0abc64d719 This fixes bug 5798 on OS X.
This should also fix disconnect behavior cross-platform.
2009-06-03 19:48:02 +00:00
R. David Murray 78532baeab Merged revisions 70873,70904,70934,71490 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r70873 | josiah.carlson | 2009-03-31 15:32:34 -0400 (Tue, 31 Mar 2009) | 2 lines

  This resolves issue 1161031.  Tests pass.
........
  r70904 | josiah.carlson | 2009-03-31 17:49:36 -0400 (Tue, 31 Mar 2009) | 3 lines

  Made handle_expt_event() be called last, so that we don't accidentally read
  after closing the socket.
........
  r70934 | josiah.carlson | 2009-03-31 21:28:11 -0400 (Tue, 31 Mar 2009) | 2 lines

  Fix for failing asyncore tests.
........
  r71490 | r.david.murray | 2009-04-11 13:52:56 -0400 (Sat, 11 Apr 2009) | 4 lines

  Make test_asyncore tests match code changes introduced by the
  fix to Issue1161031, refactoring the test to simplify it in
  the process.
........
2009-04-12 15:35:44 +00:00
Josiah Carlson aae55cbab4 This fixes issue 4332 for Py3k. 2008-11-19 18:22:41 +00:00
Georg Brandl f112369463 Merged revisions 65152 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r65152 | georg.brandl | 2008-07-20 09:29:58 +0200 (Sun, 20 Jul 2008) | 2 lines

  Remove exception indexing in asyncore.
........
2008-07-20 07:31:30 +00:00
Josiah Carlson c31bc9a498 Fix for AttributeError in test_asynchat. 2008-07-11 22:18:27 +00:00
Josiah Carlson 9f2f83338f Fixed bugs 760475, 953599, and 1519. This is a translation of changelist 64768
to the py3k branch.
2008-07-07 05:04:12 +00:00
Josiah Carlson d74900ebb5 Committing Py3k version of changelist 64080 and 64257, along with updated tests
for smtpd, which required updating with the new semantics.
2008-07-07 04:15:08 +00:00