9P frontend #1811
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#1811
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
9P is a POSIXish remote filesystem protocol somewhat like SFTP (protocol spec). This ticket is to write a 9P frontend that would probably be implemented alongside other frontend protocols — web-API, SFTP and FTP — as part of a gateway node.
Just as we do for SFTP, we'd have to deal with the impedence mismatch between Tahoe's access control model and 9P's, by faking permissions sufficient to satisfy 9P clients. It is probably not necessary to distinguish owner, group and world permissions.
There is a py9p library we could use to implement the 9P server. It uses blocking socket calls but they're nicely factored into a single short class (py9p.Sock), so could easily be changed. It also depends on PyCrypto; again this dependency is fairly nicely factored (into py9p.pki and one method of py9p.sk1) so could be changed to use pycryptopp, say.
The local filesystem server example code seems as though it would be reasonably easy to adapt to call into the SFTP frontend's internal POSIXish interface (i.e. with the 9P server code taking the place of Twisted's SFTP server) instead of making OS calls.
Replying to davidsarah:
... which is MIT-licensed, so no problem there.
This is my fork of py9p on bitbucket: https://bitbucket.org/davidsarah/py9p