47c5afe3f5
Merge pull request #1061 from silveraignacio/fix-broken-pipe-handling
...
fix: improve broken pipe (EPIPE) error handling in socket operations
2025-08-02 09:07:33 +10:00
514847e7d8
fix: improve broken pipe (EPIPE) error handling in socket operations
...
**Problem:**
- sshuttle v1.2.0+ crashes with "socket.error: [Errno 32] Broken pipe"
during long-running commands like "cilium status --wait"
- The _nb_clean() function re-raises EPIPE errors before socket methods
can handle them gracefully
- This causes tunnel termination instead of graceful recovery
**Solution:**
- Enhanced uwrite() and uread() methods to catch both OSError and
socket.error for Python 2/3 compatibility
- Added specific EPIPE handling in uread() to treat broken pipes as EOF
- Improved error messages in client.py for better user experience
- Maintains existing error handling patterns and backward compatibility
**Benefits:**
- Long-running commands no longer crash the tunnel
- Graceful connection recovery instead of fatal errors
- Better resilience for network interruptions
- Improved error reporting
Fixes issues with tunnel stability during extended operations.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-08-01 15:36:17 +02:00
c01e133fb1
build(deps): bump flake8 from 7.1.2 to 7.3.0
...
Bumps [flake8](https://github.com/pycqa/flake8 ) from 7.1.2 to 7.3.0.
- [Commits](https://github.com/pycqa/flake8/compare/7.1.2...7.3.0 )
---
updated-dependencies:
- dependency-name: flake8
dependency-version: 7.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-08-01 12:11:26 +10:00
ae84e82265
build(deps): bump jedi-language-server from 0.44.0 to 0.45.1
...
Bumps [jedi-language-server](https://github.com/pappasam/jedi-language-server ) from 0.44.0 to 0.45.1.
- [Release notes](https://github.com/pappasam/jedi-language-server/releases )
- [Changelog](https://github.com/pappasam/jedi-language-server/blob/main/CHANGELOG.md )
- [Commits](https://github.com/pappasam/jedi-language-server/compare/v0.44.0...v0.45.1 )
---
updated-dependencies:
- dependency-name: jedi-language-server
dependency-version: 0.45.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-08-01 11:57:38 +10:00
d35a21ef3a
build(deps): bump pytest from 8.3.4 to 8.4.1
...
Bumps [pytest](https://github.com/pytest-dev/pytest ) from 8.3.4 to 8.4.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases )
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst )
- [Commits](https://github.com/pytest-dev/pytest/compare/8.3.4...8.4.1 )
---
updated-dependencies:
- dependency-name: pytest
dependency-version: 8.4.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-08-01 08:12:38 +10:00
5b0651f285
build(deps): bump python-lsp-server from 1.12.2 to 1.13.0
...
Bumps [python-lsp-server](https://github.com/python-lsp/python-lsp-server ) from 1.12.2 to 1.13.0.
- [Release notes](https://github.com/python-lsp/python-lsp-server/releases )
- [Changelog](https://github.com/python-lsp/python-lsp-server/blob/develop/CHANGELOG.md )
- [Commits](https://github.com/python-lsp/python-lsp-server/compare/v1.12.2...v1.13.0 )
---
updated-dependencies:
- dependency-name: python-lsp-server
dependency-version: 1.13.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-08-01 08:10:00 +10:00
c536d0206f
build(deps): bump ruff from 0.11.2 to 0.12.7
...
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.11.2 to 0.12.7.
- [Release notes](https://github.com/astral-sh/ruff/releases )
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md )
- [Commits](https://github.com/astral-sh/ruff/compare/0.11.2...0.12.7 )
---
updated-dependencies:
- dependency-name: ruff
dependency-version: 0.12.7
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-08-01 08:09:38 +10:00
16841f0755
build(deps): bump pytest-cov from 6.0.0 to 6.2.1
...
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov ) from 6.0.0 to 6.2.1.
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst )
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v6.0.0...v6.2.1 )
---
updated-dependencies:
- dependency-name: pytest-cov
dependency-version: 6.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-08-01 08:09:09 +10:00
fc49a8e078
build(deps): bump furo from 2024.8.6 to 2025.7.19
...
Bumps [furo](https://github.com/pradyunsg/furo ) from 2024.8.6 to 2025.7.19.
- [Release notes](https://github.com/pradyunsg/furo/releases )
- [Changelog](https://github.com/pradyunsg/furo/blob/main/docs/changelog.md )
- [Commits](https://github.com/pradyunsg/furo/compare/2024.08.06...2025.07.19 )
---
updated-dependencies:
- dependency-name: furo
dependency-version: 2025.7.19
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-08-01 08:06:22 +10:00
5ce4e8c409
build(deps): bump astral-sh/setup-uv from 5 to 6
...
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv ) from 5 to 6.
- [Release notes](https://github.com/astral-sh/setup-uv/releases )
- [Commits](https://github.com/astral-sh/setup-uv/compare/v5...v6 )
---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-04-26 06:59:25 +10:00
934fac9d6c
fix: Updates sudoers config according to executable
...
- Sudoers config has not been working since the firewall command was updated in 32fceefa
.
- This is to update the command for sudoers to keep it similar to what the client executes.
2025-04-05 07:47:57 +11:00
e2624f533f
chore(master): release 1.3.1
v1.3.1
2025-03-26 07:32:24 +11:00
375810a9a8
fix: Restore "nft" method
...
Accidentally removed in refactoring (commit 900acc3
).
Closes #1037 .
Co-authored-by: Vadim Dyadkin <dyadkin@3lp.cx >
2025-03-26 07:26:38 +11:00
5942376090
fix: add pycodestyle config
2025-03-25 12:37:32 +11:00
ae3c022d1d
fix: add python lint tools
2025-03-25 12:15:09 +11:00
63f94aa6ec
build: fix readthedocs build version number
2025-03-12 08:56:43 +11:00
7b662536ba
fix: correct bad version number at runtime
2025-03-12 08:45:22 +11:00
cf867248c2
ci: attempt to use dependabot beta support for uv (2)
...
I can read the instructions. Really!
2025-03-04 07:48:03 +11:00
454262829c
ci: attempt to use dependabot beta support for uv
...
See https://github.com/dependabot/dependabot-core/issues/10478#issuecomment-2691330949
2025-03-03 09:00:56 +11:00
684417d363
build: convert from poetry to uv
2025-03-03 09:00:56 +11:00
0b7440e65c
build: convert from poetry to uv
2025-03-03 08:38:35 +11:00
12138e2b8d
build: split build and upload into 2 jobs
2025-03-02 17:18:19 +11:00
7991e3d9a2
build: fix pypi upload getting skipped
2025-02-24 08:16:44 +11:00
99c4abce81
chore(master): release 1.3.0
v1.3.0
2025-02-24 07:54:01 +11:00
a2d405a6a7
docs: update installation instructions
...
* Update pip installation instructions to work
without setup.py.
* Remove duplication of installation instructions
in two places.
2025-02-23 20:38:07 +11:00
7fa927ef8c
fix: support ':' sign in password
2025-02-22 08:23:36 +11:00
a1dd6859b0
build(deps-dev): bump flake8 from 7.1.1 to 7.1.2
...
Bumps [flake8](https://github.com/pycqa/flake8 ) from 7.1.1 to 7.1.2.
- [Commits](https://github.com/pycqa/flake8/compare/7.1.1...7.1.2 )
---
updated-dependencies:
- dependency-name: flake8
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-02-18 08:11:24 +11:00
8a123d9762
feat: switch to a network namespace on Linux
...
* Add support to run inside Linux namespace
**Motivation:**
In a specific use case, we use sshuttle to provide access to private
networks from multiple sites to a specific host. The sites may contain
networks that overlap each other, so each site is accessed inside a
different namespace that provides process-level network isolation and
prevents network overlap.
**Objective:**
This commit just adds a convenient way of spawning multiple sshuttle
instances inside different namespaces from a single process, by passing
the namespace's name though the variable --namespace. The result is the
same as calling `ip netns exec $NAMESPACE sshuttle ...`
* Add the argument --namespace-pid
The argument '--namespace-pid' allows sshuttle to attach to the same net
namespace used by a running process.
* PEP-8 compliance
* Add comment
* Make --namespace and --namespace-pid mutually exclusive.
* Prevent UnicodeDecodeError parsing iptables rule with comments
If one or more iptables rule contains a comment with a non-unicode character, an UnicodeDecodeError would be raised.
2025-02-09 08:48:55 +11:00
cbe3d1e402
fix: prevent UnicodeDecodeError parsing iptables rule with comments
...
If one or more iptables rule contains a comment with a non-unicode character, an UnicodeDecodeError would be raised.
2025-02-09 08:45:25 +11:00
340ccc705e
docs: replace nix-env with nix-shell
2025-02-08 10:02:31 +11:00
1f5e6cea70
fix: remove temp build hack
2025-02-08 09:59:46 +11:00
fd6b6bb71f
build: redo publish to pypi
2025-02-08 09:58:09 +11:00
5b08caaeb1
build: hack force publish pypi
2025-02-08 09:25:06 +11:00
40f6c1d4f2
build: don't skip pypi release
2025-02-08 09:23:33 +11:00
c09e2985f2
chore(master): release 1.2.0
v1.2.0
2025-02-08 09:21:02 +11:00
7725f93d94
build: release to prod pypi
2025-02-08 09:18:45 +11:00
75faa9b9e8
build: remove setup.py
2025-02-08 09:16:15 +11:00
d910b64be7
feat: Add release-please to build workflow
2025-02-08 08:34:58 +11:00
3f0f88eb09
build(deps): bump abatilo/actions-poetry from 3 to 4
...
Bumps [abatilo/actions-poetry](https://github.com/abatilo/actions-poetry ) from 3 to 4.
- [Release notes](https://github.com/abatilo/actions-poetry/releases )
- [Changelog](https://github.com/abatilo/actions-poetry/blob/master/.releaserc )
- [Commits](https://github.com/abatilo/actions-poetry/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: abatilo/actions-poetry
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-02-07 07:24:08 +11:00
f7f9a4dbc6
build(deps): bump actions/cache from 3 to 4
...
Bumps [actions/cache](https://github.com/actions/cache ) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases )
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md )
- [Commits](https://github.com/actions/cache/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/cache
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-02-07 07:23:55 +11:00
bf294643e2
fix: use Python >= 3.10 for docs
2025-02-06 19:11:50 +11:00
693ee40c48
fix: ensure poetry works for Python 3.9
2025-02-06 18:57:16 +11:00
a0d94367f6
Back out "Bump sphinx from 7.1.2 to 8.1.3"
...
This backs out commit ac4313deca
.
2025-02-06 18:55:48 +11:00
ac4313deca
Bump sphinx from 7.1.2 to 8.1.3
...
Bumps [sphinx](https://github.com/sphinx-doc/sphinx ) from 7.1.2 to 8.1.3.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases )
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES.rst )
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v7.1.2...v8.1.3 )
---
updated-dependencies:
- dependency-name: sphinx
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-02-06 17:42:29 +11:00
9bcedf1904
fix: replace requirements.txt files with poetry (4)
2025-02-06 16:48:22 +11:00
62da70510e
fix: replace requirements.txt files with poetry (3)
2025-02-06 16:05:55 +11:00
d08f78a2d9
fix: replace requirements.txt files with poetry (2)
2025-02-06 16:03:58 +11:00
85dc3199a3
fix: replace requirements.txt files with poetry
2025-02-06 15:57:36 +11:00
6f12698209
Bump pytest-cov from 5.0.0 to 6.0.0
...
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov ) from 5.0.0 to 6.0.0.
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst )
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v5.0.0...v6.0.0 )
---
updated-dependencies:
- dependency-name: pytest-cov
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-02-06 09:17:17 +11:00
4b6f7c6a65
fix: fix broken workflow_dispatch CI rule
2025-02-06 09:11:21 +11:00