gevent v20.5.0 Release Notes
Release Date: 2020-05-01 // almost 4 years ago-
🔋 Features
- ⚡️ Update bundled c-ares to version 1.16.0.
Changes <https://c-ares.haxx.se/changelog.html>
_. See :issue:1588
. - ⚡️ Update all the bundled
config.guess
andconfig.sub
scripts. See :issue:1589
. - ⚡️ Update bundled libuv from 1.34.0 to 1.36.0.
See :issue:
1597
.
🛠 Bugfixes
- 👉 Use
ares_getaddrinfo
instead of a manual lookup.
This requires c-ares 1.16.0.
Note that this may change the results, in particular their order.
As part of this, certain parts of the c-ares extension were adapted to use modern Cython idioms.
A few minor errors and discrepancies were fixed as well, such as
gethostbyaddr('localhost')
working on Python 3 and failing on Python 2. The DNSpython resolver now raises the expected TypeError in more cases instead of an AttributeError. See :issue:1012
.- The c-ares and DNSPython resolvers now raise exceptions much more consistently with the standard resolver. Types and errnos are substantially more likely to match what the standard library produces.
Depending on the system and configuration, results may not match exactly, at least with DNSPython. There are still some rare cases where the system resolver can raise
herror
but DNSPython will raisegaierror
or vice versa. There doesn't seem to be a deterministic way to account for this. On PyPy,getnameinfo
can produce results when CPython raisessocket.error
, and gevent's DNSPython resolver also raisessocket.error
.In addition, several other small discrepancies were addressed, including handling of localhost and broadcast host names.
.. note:: This has been tested on Linux (CentOS and Ubuntu), macOS, and Windows. It hasn't been tested on other platforms, so results are unknown for them. The c-ares support, in particular, is using some additional socket functions and defines. Please let the maintainers know if this introduces issues.
See :issue:
1459
.
- ⚡️ Update bundled c-ares to version 1.16.0.