-
Couldn't load subscription status.
- Fork 364
Per-ship Drum subscriptions #2867
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Per-ship Drum subscriptions #2867
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks pretty good, just a couple small changes.
de96e56 to
378fbb9
Compare
378fbb9 to
4217bfa
Compare
8379b7d to
8cbb8f1
Compare
This will fix the issue described in #2867 for ducts that have already triggered the bug. This will also send spurious acks for any messages that are outstanding at the time of the upgrade, but I don't believe this will cause a serious problem.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great, thanks!
* origin/release/link-dojo: chat-cli: allow sending • character chat-cli: always talk to local ship only chat-cli: single-target sole effects as needed chat-cli: don't allow excessively small cli widths chat-cli: pull in sole-sur namespace where relevant chat-cli: remove unused entropy from state chat-cli: print newlines correctly chat-cli: support multiple sole connections chat-cli: don't crash on %bad-text dojo: rename remote access generators gall: fix handling of empty path list dojo: remove unused %json poke dojo: add remote access controls drum: switch to per-ship /sole/drum duct Signed-off-by: Philip Monk <[email protected]>
Huge thanks to @philipcmonk for explaining in detail how to accomplish this.
Previously,
|linkcouldn't be used across ships, because Drum always subscribes on/sole/drum, regardless of what ship it's talking to. This PR changes Drum to subscribe on/sole/drum_SHIPNAME, so that updates can be routed to the appropriate ship.This means that you can run
|link ~zod %dojo, hit Ctrl-X, and be dropped into zod's Dojo prompt! This could be used for e.g. administrating one ship from another; to allow a developer to debug your ship in-situ, etc.Of course, for security reasons, apps generally reject pokes from other ships. So I also added access controls to Dojo: in addition to checking the peer against
team:title, it will look for the ship in an access control list. So it's basicallysshfor Urbit, leveraging the built-in identity system instead of needing to copy public keys around. :)