Skip to content
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

Document content length check is applied to outoing-body output-stream #84

Open
guybedford opened this issue Nov 24, 2023 · 1 comment

Comments

@guybedford
Copy link
Contributor

In the current WIT definitions, outgoing-body finish defines that the content length must be validated against the actual length.

But, in addition to this, the Wasmtime implementation also throws a stream error from the output-stream for the outgoing-body as soon as a write is made that exceeds the expected content length. Thus this check is not only performed at finish but also dynamically with each write operation to the stream.

If this is the defined behaviour, it should be documented in the WIT.

@pchickey
Copy link
Contributor

pchickey commented Nov 27, 2023

Agreed we should document this on outgoing-body.write!

One way to implement this is for check-write to refuse readiness once the content-length has been reached, but this is difficult to debug because blocking-write would loop forever, or have to trap.

Instead we should specify that check-write may allow writes beyond the content-length, but if those writes are performed, write (or blocking-write or blocking-write-and-flush) will throw a last-operation-failed that will downcast to a HTTP-{request,response}-body-size.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants