Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information