Merged
Conversation
jsturtevant
reviewed
Mar 20, 2025
|
|
||
| @unstable(feature = tls) | ||
| get: func() -> option<result<result<tuple<client-connection, input-stream, output-stream>>>>; | ||
| get: func() -> option<result<result<tuple<client-connection, input-stream, output-stream>, io-error>>>; |
Collaborator
There was a problem hiding this comment.
should we be returning some type of error information for the first result here?
related to bytecodealliance/wasmtime#10429 (review)
Member
Author
There was a problem hiding this comment.
This funky signature has been lifted from wasi-http:
https://github.com/WebAssembly/wasi-http/blob/main/wit/types.wit#L671-L686
/// The outer `option` represents future readiness. Users can wait on this
/// `option` to become `some` using the `subscribe` method.
///
/// The outer `result` is used to retrieve the response or error at most
/// once. It will be success on the first call in which the outer option
/// is `some`, and error on subsequent calls.
///
/// The inner `result` represents that either the incoming HTTP Response
/// status and headers have received successfully, or that an error
/// occurred.
- The outer
resultis there to signal that the inner result has already been consumed by a prior call. - The inner
resultis the actual result type of the future.
Collaborator
this makes sense to me for now, as we receive usage and feedback we can adjust if the users need more detailed error processing |
jsturtevant
approved these changes
Mar 20, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This updates
client-handshake/getto return awasi:io/erroron failure.There are two sources for errors during the handshake:
client-handshakeconstructor produced an error. In that case, the handshake object passes that error on to the consumer as-is. E.g. assuming the TLS stream wraps an TCP stream, it is possible to callwasi:sockets/network/network-error-codeon an IO error returned from the TLS handshake.wasi:io/error/to-debug-stringis the only way for a guest to know what went wrong. We could add atls-error-codemethod in the future similar to wasi-sockets, wasi-filesystem & wasi-http if the need ever arises to downcast into a structured variant.Relates to:
future-client-streams/getreturns no error code #9