summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* codecov: allow 3% threshold to pass status checkcodecovSergey Shepelev2021-05-141-0/+5
|
* ci: cache pip/tox; faster tox with `skipdist` and `usedevelop`Sergey Shepelev2021-05-133-3/+41
|
* Add classifiers for py38 and py39Tim Burke2021-05-121-0/+2
|
* ssl: py3.6 using client certificates raised ValueError: check_hostname needs ↵Paul Lockaby2021-05-112-1/+25
| | | | | | | server_hostname argument https://github.com/eventlet/eventlet/issues/567 https://github.com/eventlet/eventlet/pull/575
* tests: extend default mysqldb test timeout to 5sSergey Shepelev2021-05-111-0/+2
|
* replace Travis with Github (actions) CISergey Shepelev2021-05-106-81/+108
|
* v0.31.0 releasev0.31.0Sergey Shepelev2021-05-052-1/+5
|
* websocket: Limit maximum uncompressed frame length to 8MiBOnno Kortmann2021-05-052-7/+86
| | | | | | | This fixes a memory exhaustion DOS attack vector. References: GHSA-9p9m-jm8w-94p2 https://github.com/eventlet/eventlet/security/advisories/GHSA-9p9m-jm8w-94p2
* v0.30.3 releasev0.30.3Sergey Shepelev2021-05-052-1/+8
|
* wsgi: websocket ALREADY_HANDLED flag on corolocalChoi Geonu2021-05-024-22/+47
| | | https://github.com/eventlet/eventlet/issues/543
* green.ssl: Set suppress_ragged_eofs default based on SSLSocket defaultsreese-allison2021-04-121-1/+1
| | | | | | | Error: `EOF occurred in violation of protocol (_ssl.c:2570)` in some HTTPS `connection: close` scenario. This is a result of suppress_ragged_eofs defaulting to True in SSLSocket, but defaulting to None in GreenSSLSocket when monkey_patched. This only occurs in Python 3.7+. https://github.com/eventlet/eventlet/pull/695
* Security Policysecurity-policySergey Shepelev2021-03-311-0/+19
|
* greenio: socket.connect_ex returned None instead of 0 on success696-connect_exSergey Shepelev2021-03-252-0/+10
| | | | | | https://github.com/eventlet/eventlet/issues/696 Co-authored-by: Skyline124 <gregoire2011dumas@gmail.com>
* Use _imp instead of deprecated impOndřej Nový2021-03-172-2/+8
| | | | | | Module imp is deprecated in favour of importlib. But importlib doesn't support acquire_lock/release_lock/lock_held. Use internal _imp module instead.
* v0.30.2 releasev0.30.2Sergey Shepelev2021-03-032-1/+5
|
* greendns: Patch sslTim Burke2021-03-031-0/+2
| | | | | | | | | | | | Newer (2.0+) dnspython imports ssl (and requests, which would have eventually imported ssl), so greendns needs a monkey-patched ssl, too. This should prevent a RecursionError with SSLContext. Note that this *does not* bring full dnspython>=2.0 support, but our version pin hasn't stopped people from trying to run with newer dnspython anyway. May as well make it hurt a little less. Fixes #677, but see also #619.
* v0.30.1 releasev0.30.1Sergey Shepelev2021-02-022-1/+5
|
* patcher: built-in open() did not accept kwargs683-open-kwargsSergey Shepelev2021-01-293-2/+16
| | | | https://github.com/eventlet/eventlet/issues/683
* greenio: base: Fix minor typo in greenpipe_doc stringAndreas Fischer2020-12-201-1/+1
|
* v0.30.0 releasev0.30.0Sergey Shepelev2020-12-132-1/+8
|
* use py3 urllib import in doc and examplesSergey Shepelev2020-12-139-21/+22
| | | | https://github.com/eventlet/eventlet/issues/668
* pyopenssl tsafe module was deprecated and removed in v20.0.0Sergey Shepelev2020-12-134-3/+9
| | | | | https://github.com/eventlet/eventlet/issues/671 https://github.com/pyca/pyopenssl/pull/913
* website: PyPI badgeSergey Shepelev2020-12-111-0/+1
|
* deprecate pyevent hubSergey Shepelev2020-12-091-0/+6
| | | | https://github.com/eventlet/eventlet/pull/657
* readme: PyPI badgeSergey Shepelev2020-12-081-0/+3
|
* Deprecate CPython 2.7 and 3.4 supportJakub Stasiak2020-11-044-0/+19
| | | | | | | This will allow us to remove some code and better spend the available resources. Both 2.7 and 3.4 are EOL. Closes GH-623.
* py39: Add _at_fork_reinit method to SemaphoresTim Burke2020-11-032-0/+26
| | | | | | | | CPython expects to be able to call such a method on RLocks, Conditions, and Events in threading; since we may monkey-patch threading to use Semaphores as locks, they need the method, too. Addresses #646
* v0.29.1 releasev0.29.1Sergey Shepelev2020-10-222-1/+8
|
* patcher: [py27] recursion error in pytest/python2.7 installing register_at_forkSergey Shepelev2020-10-221-5/+14
| | | | | | | https://github.com/eventlet/eventlet/issues/660 https://github.com/getsentry/sentry-python/pull/880 Could not reproduce problem without pytest, so normal production code was probably safe.
* tests: Improve ECONNREFUSED checksIvan A. Melnikov2020-10-221-4/+5
| | | | | | | | | | | Only the value for the current platform should be considered valid here, so this check uses the constant from `errno` module as expected output, instead of hardcoded ints. Also, this fixes build on MIPS, where ECONNREFUSED is defined as 146. Signed-off-by: Ivan A. Melnikov <iv@altlinux.org>
* patcher: monkey_patch(builtins=True) failed on py3 because `file` class is ↵秋葉2020-10-223-6/+28
| | | | | | | gone (#545) https://github.com/eventlet/eventlet/issues/541 https://github.com/eventlet/eventlet/pull/545 https://docs.python.org/release/3.0/whatsnew/3.0.html#builtins
* don't crash on PyPy 7.0.0 https://github.com/eventlet/eventlet/pull/547Antonio Cuni2020-10-221-5/+12
| | | | | PyPy 7.0.0 uses 'py3-style' rlocks, i.e. they are implemented natively instead of being in pure-python. Fixes the code in the sense that at least doesn't crash on PyPy, but it still suffers of https://github.com/eventlet/eventlet/issue/546 as python3.6 does.
* Only install monotonic on python2 (#583)Jon Schlueter2020-10-223-5/+12
| | | | | Only install monotonic on python<3.5 Co-authored-by: Sergey Shepelev <temotor@gmail.com>
* v0.29.0 releasev0.29.0Sergey Shepelev2020-10-202-1/+5
|
* ssl: context wrapped listener failed to supply _context in accept()Sergey Shepelev2020-10-202-6/+49
| | | | https://github.com/eventlet/eventlet/issues/651
* v0.28.1 releasev0.28.1Sergey Shepelev2020-10-202-1/+7
|
* doc index: (mostly) remove dead linksSergey Shepelev2020-10-201-35/+9
|
* travis: update according to their validatorSergey Shepelev2020-10-191-5/+3
| | | | | | | - deprecated key sudo (The key `sudo` has no effect anymore.) - missing os/dist - key matrix is an alias for jobs, using jobs - eventlet slack channel was abandoned
* patcher: no os.register_at_fork on Windows (#654)Sergey Shepelev2020-10-191-2/+2
| | | | | https://github.com/eventlet/eventlet/issues/644 Eventlet 0.27.0 and 0.28.0 were incompatible with Windows (and other non-Unix) platforms
* Clean up TypeError in __del__Tim Burke2020-09-291-1/+4
| | | | | | | At the end of the py2 tests, we would see (ignored) errors like Exception TypeError: "'NoneType' object is not callable" in <bound method _SocketDuckForFd.__del__ of _SocketDuckForFd:14> ignored
* v0.28.0 releasev0.28.0Sergey Shepelev2020-09-232-1/+5
|
* Make remove more explicitClay Gerrard2020-09-231-16/+19
| | | | | | | | | | | | | There was some concern in fixing hub.remove for secondary listeners because tests seemed to rely on the implicit robustness of hub.remove when a listener wasn't being tracked. It was discovered that socket errors can bubble up in poll and select hubs which result in all listeners being removed for that fileno before the listener was alerted (which would then *also* triggered a remove). Rather than having remove be robust to being called twice this change makes it be called only once.
* Always remove the right listener from the hubSamuel Merritt2020-09-232-10/+63
| | | | | | | | | | | | | | | When in hubs.trampoline(fd, ...), a greenthread registers itself as a listener for fd, switches to the hub, and then calls hub.remove(listener) to deregister itself. hub.remove(listener) removes the primary listener. If the greenthread awoke because its fd became ready, then it is the primary listener, and everything is fine. However, if the greenthread was a secondary listener and awoke because a Timeout fired then it would remove the primary and promote a random secondary to primary. This commit makes hub.remove(listener) check to make sure listener is the primary, and if it's not, remove the listener from the secondaries.
* v0.27.0 releasev0.27.0Sergey Shepelev2020-09-022-1/+6
|
* Clean up threading book-keeping at fork when monkey-patchedTim Burke2020-08-283-0/+83
| | | | | | | | | | | | | | | | | | | | | | Previously, if we patched threading then forked (or, in some cases, used the subprocess module), Python would log an ignored exception like Exception ignored in: <function _after_fork at 0x7f16493489d8> Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 1335, in _after_fork assert len(_active) == 1 AssertionError: This comes down to threading in Python 3.7+ having an import side-effect of registering an at-fork callback. When we re-import threading to patch it, the old (but still registered) callback still points to the old thread-tracking dict, rather than the new dict that's actually doing the tracking. Now, register our own at_fork hook that will fix up the dict reference before threading's _at_fork runs and put it back afterwards. Closes #592
* .travis.yml: Remove superfluous matrix selectorsJohn Vandenberg2020-08-191-3/+3
| | | | sudo: and dist: are no longer needed.
* Add Python 3.8 testingJohn Vandenberg2020-08-192-1/+7
|
* tests checking output were broken by Python 2 end of support warningpy27-warningSergey Shepelev2020-08-191-2/+2
| | | | Previous behavior to ignore DeprecationWarning is now default in py2.7
* backdoor: handle disconnects betterTim Burke2020-07-312-8/+32
| | | | | | | | | | | Previously, when a client quickly disconnected (causing a socket.error before the SocketConsole greenlet had a chance to switch), it would break us out of our accept loop, permanently closing the backdoor. Now, it will just break us out of the interactive session, leaving the server ready to accept another backdoor client. Fixes #570
* v0.26.1 releasev0.26.1Sergey Shepelev2020-07-312-1/+5
|