mirror of
https://github.com/urbit/shrub.git
synced 2024-12-24 03:14:30 +03:00
4affae8181
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". |
||
---|---|---|
.. | ||
bug | ||
lib | ||
run | ||
sys |