mobile-shell / mobile-shell/mosh
generalized port/IP rewriting
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 14.5k
- Forks
- 865
- PR merge metrics
- No merged PRs in 30d
Description
I count 10 issues and pull requests relating to handling port and/or IP address rewriting and unblocking.
These are almost invariably about IPv4 NAT modifying or blocking IP/port tuples at one end or the other. I could be a wag and shout "IPv6, already!", but I've already been doing that for 5 years, and we still haven't gotten past IPv4.
The problem that I see is that most of these issues/PRs address some narrow part of the problem specific to the reporter's network, and thus aren't broadly useful enough for inclusion into Mosh. I'd like to suggest that we come up with some more-general scheme for managing this issue.
My thoughts on this are ill-formed so far, but I have two ideas that I want to float:
- I think maybe we can abstract the needed capabilities into
threefour parts:
- Specifying/modifying desired port/address
- Actually binding to a remote port/address and obtaining network resources/connectivity (#469 has an interesting idea here)
- Reporting/modifying the port/address actually selected
- Closing/releasing the network resources
- I think adding scripting or command-execution hooks for some or all of these actions would go a long way towards a general solution.
All of this applies to both mosh-client and mosh-server.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the 10 related issues and pull requests, especially the idea in #469, then compare how mosh-client and mosh-server handle port and IP rewriting. Done means agreeing on a general scheme covering capability specification, binding, reporting, and releasing resources; the issue does not yet define an implementation or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100