Previously, a channel could only be created by sending a PUT request, and a GET request to receive the channel's stream would only succeed after channel creation had happened that way. This forces client libraries, that generally have an explicit "set up" step before allowing normal operation, to do strange things, like sending faux pokes (commonly hi-ing oneself) before connecting to the channel's stream as normal. Here, we update the GET request handling for channels to allow requests for non-existent channels. When this happens, the channel will be created, and eyre tracks the request as normal. We do some... gentle restructuring... of +on-get-request:by-channel to let the new creation case share code with the "already exists" codepath. In the process, we find that duct-to-key was never getting updated in the case where we replace the original channel request/connection with the new incoming one. We fix this, it's trivial. We also identify two other areas with vaguely-incorrect behavior, but consider them less important and out of scope. We also add a test case for "create channel through GET". |
||
---|---|---|
.github | ||
bin | ||
doc/spec | ||
extras | ||
nix | ||
pkg | ||
sh | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.ignore | ||
.mailmap | ||
.stylish-haskell.yaml | ||
CONTRIBUTING.md | ||
default.nix | ||
flake.lock | ||
flake.nix | ||
LICENSE.txt | ||
MAINTAINERS.md | ||
Makefile | ||
README.md | ||
shell.nix | ||
test-desk.bill | ||
vere-version |
Urbit
Urbit is a personal server stack built from scratch. It has an identity layer (Azimuth), virtual machine (Vere), and operating system (Arvo).
A running Urbit "ship" is designed to operate with other ships peer-to-peer. Urbit is a general-purpose, peer-to-peer computer and network.
This repository contains the Arvo Kernel
For the Runtime, see Vere. For more on the identity layer, see Azimuth. To manage your Urbit identity, use Bridge.
Install
To install and run Urbit, please follow the instructions at urbit.org/getting-started. You'll be on the live network in a few minutes.
Contributing
Contributions of any form are more than welcome! Please take a look at our contributing guidelines for details on our git practices, coding styles, and how we manage issues.
You might also be interested in joining the urbit-dev mailing list.
Release
For details about our release process, see the maintainers guidelines