| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
server_hostname argument
https://github.com/eventlet/eventlet/issues/567
https://github.com/eventlet/eventlet/pull/575
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
This fixes a memory exhaustion DOS attack vector.
References: GHSA-9p9m-jm8w-94p2
https://github.com/eventlet/eventlet/security/advisories/GHSA-9p9m-jm8w-94p2
|
| | |
|
| |
|
| |
https://github.com/eventlet/eventlet/issues/543
|
| |
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
|
| |
https://github.com/eventlet/eventlet/issues/696
Co-authored-by: Skyline124 <gregoire2011dumas@gmail.com>
|
| |
|
|
|
|
| |
Module imp is deprecated in favour of importlib. But importlib doesn't
support acquire_lock/release_lock/lock_held. Use internal _imp module
instead.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
| |
https://github.com/eventlet/eventlet/issues/683
|
| | |
|
| | |
|
| |
|
|
| |
https://github.com/eventlet/eventlet/issues/668
|
| |
|
|
|
| |
https://github.com/eventlet/eventlet/issues/671
https://github.com/pyca/pyopenssl/pull/913
|
| | |
|
| |
|
|
| |
https://github.com/eventlet/eventlet/pull/657
|
| | |
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
| |
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 python<3.5
Co-authored-by: Sergey Shepelev <temotor@gmail.com>
|
| | |
|
| |
|
|
| |
https://github.com/eventlet/eventlet/issues/651
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
|
| |
https://github.com/eventlet/eventlet/issues/644
Eventlet 0.27.0 and 0.28.0 were incompatible with Windows (and other non-Unix) platforms
|
| |
|
|
|
|
|
| |
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
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
sudo: and dist: are no longer needed.
|
| | |
|
| |
|
|
| |
Previous behavior to ignore DeprecationWarning is now default in py2.7
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|