You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mitogen/mitogen
Russell Yanofsky 0b28a7242a Get mitogen.fakessh module working again
Fixes include

- Setting cloexec flag on pipe files, using set_inheritable on sockets,
  and close_fds=False on subprocess.Popen to work around file
  descriptors not being inheritable by default in new versions of python

- Adding mitogen.exit_status variable and avoiding os.kill call so fake
  'ssh' script is able to exit cleanly with correct status code

- Fixing broken os.dup call in ExternalContext._setup_master when input
  and output streams have the same descriptor

- Updating fakessh module to do necessary python3 string/byte
  conversions, and use updated mitogen Protocol, Stream, and Router apis

- Simplifying fakessh startup sequence so there aren't unnecessary
  differences between ways control and data handles are passed, and ways
  master and slave processes are initialized

- Fixing shutdown race conditions where subprocess exit handling or
  stdin EOF handling could result in a truncated stdout stream

- Updating and adding a lot of docstrings and comments

- Adding Process.proc is None / is not None assertions to be clear about
  which parts of fakessh.Process code are specific to the slave process,
  and which parts are specific to the master process.

- Re-enabling unit test case and updating an outdated file path so it
  passes

Co-authored-by: Alex Willmer <alex@moreati.org.uk>
3 months ago
..
compat compat: fix Py2.4 SyntaxError 6 years ago
imports Python 3.14 support 3 months ago
__init__.py Begin 0.3.30dev 3 months ago
buildah.py Remove unused module imports 4 years ago
core.py Get mitogen.fakessh module working again 3 months ago
debug.py [stream-refactor] fix flake8 errors 7 years ago
doas.py remove unused imports flagged by lgtm 7 years ago
docker.py Refactor Stream, introduce quasi-asynchronous connect, much more 7 years ago
fakessh.py Get mitogen.fakessh module working again 3 months ago
fork.py mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
jail.py Stop using mitogen root logger in more modules, remove unused loggers 7 years ago
kubectl.py Remove unused module imports 4 years ago
lxc.py Remove unused module imports 4 years ago
lxd.py Remove unused module imports 4 years ago
master.py mitogen: Refactor scan_code_imports() as mitogen.imports.codeobj_imports() 4 months ago
minify.py Normalize docstring formatting 7 years ago
os_fork.py mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
parent.py mitogen: Fix non-blocking IO errors in first stage of bootstrap 4 months ago
podman.py Remove unused module imports 4 years ago
profiler.py Fix stdlib typos that would cause NameError or AttributeError exceptions 4 years ago
select.py Merge devel/290 @ 79b979ec8544ef5d8620c64068d4a42fabf50415 6 years ago
service.py mitogen: Consolidate back compatibility fallbacks and polyfills in mitogen.core 1 year ago
setns.py Refactor Stream, introduce quasi-asynchronous connect, much more 7 years ago
ssh.py mitogen: Consolidate back compatibility fallbacks and polyfills in mitogen.core 1 year ago
su.py mitogen: Consolidate back compatibility fallbacks and polyfills in mitogen.core 1 year ago
sudo.py reverted autolinted code 6 years ago
unix.py mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
utils.py mitogen: Consolidate back compatibility fallbacks and polyfills in mitogen.core 1 year ago