Skip to content

Commit 0ba79a3

Browse files
committed
Regenerate proxy.md
1 parent 4850f66 commit 0ba79a3

File tree

1 file changed

+86
-14
lines changed

1 file changed

+86
-14
lines changed

proxy.md

Lines changed: 86 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -644,6 +644,9 @@ their headers, trailers, and bodies.</p>
644644
#### <a name="output_stream">`type output-stream`</a>
645645
[`output-stream`](#output_stream)
646646
<p>
647+
#### <a name="stream_error">`type stream-error`</a>
648+
[`error`](#error)
649+
<p>
647650
#### <a name="pollable">`type pollable`</a>
648651
[`pollable`](#pollable)
649652
<p>
@@ -670,16 +673,68 @@ their headers, trailers, and bodies.</p>
670673
<li><a name="scheme.https"><code>HTTPS</code></a></li>
671674
<li><a name="scheme.other"><code>other</code></a>: <code>string</code></li>
672675
</ul>
673-
<h4><a name="error"><code>variant error</code></a></h4>
674-
<p>TODO: perhaps better align with HTTP semantics?
675-
This type enumerates the different kinds of errors that may occur when
676-
initially returning a response.</p>
676+
<h4><a name="dns_error_payload"><code>record DNS-error-payload</code></a></h4>
677+
<p>Defines the case payload type for <code>DNS-error</code> above:</p>
678+
<h5>Record Fields</h5>
679+
<ul>
680+
<li><a name="dns_error_payload.rcode"><code>rcode</code></a>: option&lt;<code>string</code>&gt;</li>
681+
<li><a name="dns_error_payload.info_code"><code>info-code</code></a>: option&lt;<code>u16</code>&gt;</li>
682+
</ul>
683+
<h4><a name="tls_alert_received_payload"><code>record TLS-alert-received-payload</code></a></h4>
684+
<p>Defines the case payload type for <code>TLS-alert-received</code> above:</p>
685+
<h5>Record Fields</h5>
686+
<ul>
687+
<li><a name="tls_alert_received_payload.alert_id"><code>alert-ID</code></a>: option&lt;<code>u8</code>&gt;</li>
688+
<li><a name="tls_alert_received_payload.alert_message"><code>alert-message</code></a>: option&lt;<code>string</code>&gt;</li>
689+
</ul>
690+
<h4><a name="field_size_payload"><code>record field-size-payload</code></a></h4>
691+
<p>Defines the case payload type for <code>HTTP-response-{header,trailer}-size</code> above:</p>
692+
<h5>Record Fields</h5>
693+
<ul>
694+
<li><a name="field_size_payload.field_name"><code>field-name</code></a>: option&lt;<code>string</code>&gt;</li>
695+
<li><a name="field_size_payload.field_size"><code>field-size</code></a>: option&lt;<code>u32</code>&gt;</li>
696+
</ul>
697+
<h4><a name="error_code"><code>variant error-code</code></a></h4>
698+
<p>The cases of this variant correspond to the IANA HTTP Proxy Error Types:
699+
https://www.iana.org/assignments/http-proxy-status/http-proxy-status.xhtml#table-http-proxy-error-types</p>
677700
<h5>Variant Cases</h5>
678701
<ul>
679-
<li><a name="error.invalid_url"><code>invalid-url</code></a>: <code>string</code></li>
680-
<li><a name="error.timeout_error"><code>timeout-error</code></a>: <code>string</code></li>
681-
<li><a name="error.protocol_error"><code>protocol-error</code></a>: <code>string</code></li>
682-
<li><a name="error.unexpected_error"><code>unexpected-error</code></a>: <code>string</code></li>
702+
<li><a name="error_code.dns_timeout"><code>DNS-timeout</code></a></li>
703+
<li><a name="error_code.dns_error"><code>DNS-error</code></a>: <a href="#dns_error_payload"><a href="#dns_error_payload"><code>DNS-error-payload</code></a></a></li>
704+
<li><a name="error_code.destination_not_found"><code>destination-not-found</code></a></li>
705+
<li><a name="error_code.destination_unavailable"><code>destination-unavailable</code></a></li>
706+
<li><a name="error_code.destination_ip_prohibited"><code>destination-IP-prohibited</code></a></li>
707+
<li><a name="error_code.destination_ip_unroutable"><code>destination-IP-unroutable</code></a></li>
708+
<li><a name="error_code.connection_refused"><code>connection-refused</code></a></li>
709+
<li><a name="error_code.connection_terminated"><code>connection-terminated</code></a></li>
710+
<li><a name="error_code.connection_timeout"><code>connection-timeout</code></a></li>
711+
<li><a name="error_code.connection_read_timeout"><code>connection-read-timeout</code></a></li>
712+
<li><a name="error_code.connection_write_timeout"><code>connection-write-timeout</code></a></li>
713+
<li><a name="error_code.connection_limit_reached"><code>connection-limit-reached</code></a></li>
714+
<li><a name="error_code.tls_protocol_error"><code>TLS-protocol-error</code></a></li>
715+
<li><a name="error_code.tls_certificate_error"><code>TLS-certificate-error</code></a></li>
716+
<li><a name="error_code.tls_alert_received"><code>TLS-alert-received</code></a>: <a href="#tls_alert_received_payload"><a href="#tls_alert_received_payload"><code>TLS-alert-received-payload</code></a></a></li>
717+
<li><a name="error_code.http_request_denied"><code>HTTP-request-denied</code></a></li>
718+
<li><a name="error_code.http_request_length_required"><code>HTTP-request-length-required</code></a></li>
719+
<li><a name="error_code.http_request_content_too_large"><code>HTTP-request-content-too-large</code></a></li>
720+
<li><a name="error_code.http_request_uri_too_long"><code>HTTP-request-URI-too-long</code></a></li>
721+
<li><a name="error_code.http_request_header_section_size"><code>HTTP-request-header-section-size</code></a>: option&lt;<code>u32</code>&gt;</li>
722+
<li><a name="error_code.http_request_header_size"><code>HTTP-request-header-size</code></a>: option&lt;<a href="#field_size_payload"><a href="#field_size_payload"><code>field-size-payload</code></a></a>&gt;</li>
723+
<li><a name="error_code.http_response_incomplete"><code>HTTP-response-incomplete</code></a></li>
724+
<li><a name="error_code.http_response_header_section_size"><code>HTTP-response-header-section-size</code></a>: option&lt;<code>u32</code>&gt;</li>
725+
<li><a name="error_code.http_response_header_size"><code>HTTP-response-header-size</code></a>: <a href="#field_size_payload"><a href="#field_size_payload"><code>field-size-payload</code></a></a></li>
726+
<li><a name="error_code.http_response_body_size"><code>HTTP-response-body-size</code></a>: option&lt;<code>u32</code>&gt;</li>
727+
<li><a name="error_code.http_response_trailer_section_size"><code>HTTP-response-trailer-section-size</code></a>: option&lt;<code>u32</code>&gt;</li>
728+
<li><a name="error_code.http_response_trailer_size"><code>HTTP-response-trailer-size</code></a>: <a href="#field_size_payload"><a href="#field_size_payload"><code>field-size-payload</code></a></a></li>
729+
<li><a name="error_code.http_response_transfer_coding"><code>HTTP-response-transfer-coding</code></a>: option&lt;<code>string</code>&gt;</li>
730+
<li><a name="error_code.http_response_content_coding"><code>HTTP-response-content-coding</code></a>: option&lt;<code>string</code>&gt;</li>
731+
<li><a name="error_code.http_response_timeout"><code>HTTP-response-timeout</code></a></li>
732+
<li><a name="error_code.http_upgrade_failed"><code>HTTP-upgrade-failed</code></a></li>
733+
<li><a name="error_code.http_protocol_error"><code>HTTP-protocol-error</code></a></li>
734+
<li><a name="error_code.proxy_internal_response"><code>proxy-internal-response</code></a></li>
735+
<li><a name="error_code.proxy_internal_error"><code>proxy-internal-error</code></a></li>
736+
<li><a name="error_code.proxy_configuration_error"><code>proxy-configuration-error</code></a></li>
737+
<li><a name="error_code.proxy_loop_detected"><code>proxy-loop-detected</code></a></li>
683738
</ul>
684739
<h4><a name="header_error"><code>variant header-error</code></a></h4>
685740
<p>This type enumerates the different kinds of errors that may occur when
@@ -728,6 +783,23 @@ so they are provided as a list of bytes.
728783
<h4><a name="future_incoming_response"><code>resource future-incoming-response</code></a></h4>
729784
<hr />
730785
<h3>Functions</h3>
786+
<h4><a name="http_error_code"><code>http-error-code: func</code></a></h4>
787+
<p>Attempts to extract a http-related <a href="#error"><code>error</code></a> from the stream <a href="#error"><code>error</code></a>
788+
provided.</p>
789+
<p>Stream operations which return <a href="#stream_error.last_operation_failed"><code>stream-error::last-operation-failed</code></a> have
790+
a payload with more information about the operation that failed. This
791+
payload can be passed through to this function to see if there's
792+
http-related information about the error to return.</p>
793+
<p>Note that this function is fallible because not all stream-related errors
794+
are http-related errors.</p>
795+
<h5>Params</h5>
796+
<ul>
797+
<li><a name="http_error_code.err"><code>err</code></a>: borrow&lt;<a href="#stream_error"><a href="#stream_error"><code>stream-error</code></a></a>&gt;</li>
798+
</ul>
799+
<h5>Return values</h5>
800+
<ul>
801+
<li><a name="http_error_code.0"></a> option&lt;<a href="#error_code"><a href="#error_code"><code>error-code</code></a></a>&gt;</li>
802+
</ul>
731803
<h4><a name="constructor_fields"><code>[constructor]fields: func</code></a></h4>
732804
<p>Construct an empty HTTP Fields.</p>
733805
<h5>Return values</h5>
@@ -1118,7 +1190,7 @@ implementation determine how to respond with an HTTP error response.</p>
11181190
<h5>Params</h5>
11191191
<ul>
11201192
<li><a name="static_response_outparam.set.param"><code>param</code></a>: own&lt;<a href="#response_outparam"><a href="#response_outparam"><code>response-outparam</code></a></a>&gt;</li>
1121-
<li><a name="static_response_outparam.set.response"><code>response</code></a>: result&lt;own&lt;<a href="#outgoing_response"><a href="#outgoing_response"><code>outgoing-response</code></a></a>&gt;, <a href="#error"><a href="#error"><code>error</code></a></a>&gt;</li>
1193+
<li><a name="static_response_outparam.set.response"><code>response</code></a>: result&lt;own&lt;<a href="#outgoing_response"><a href="#outgoing_response"><code>outgoing-response</code></a></a>&gt;, <a href="#error_code"><a href="#error_code"><code>error-code</code></a></a>&gt;</li>
11221194
</ul>
11231195
<h4><a name="method_incoming_response.status"><code>[method]incoming-response.status: func</code></a></h4>
11241196
<p>Returns the status code from the incoming response.</p>
@@ -1210,7 +1282,7 @@ trailers were present in the body.</p>
12101282
</ul>
12111283
<h5>Return values</h5>
12121284
<ul>
1213-
<li><a name="method_future_trailers.get.0"></a> option&lt;result&lt;option&lt;own&lt;<a href="#trailers"><a href="#trailers"><code>trailers</code></a></a>&gt;&gt;, <a href="#error"><a href="#error"><code>error</code></a></a>&gt;&gt;</li>
1285+
<li><a name="method_future_trailers.get.0"></a> option&lt;result&lt;option&lt;own&lt;<a href="#trailers"><a href="#trailers"><code>trailers</code></a></a>&gt;&gt;, <a href="#error_code"><a href="#error_code"><code>error-code</code></a></a>&gt;&gt;</li>
12141286
</ul>
12151287
<h4><a name="constructor_outgoing_response"><code>[constructor]outgoing-response: func</code></a></h4>
12161288
<p>Construct an <a href="#outgoing_response"><code>outgoing-response</code></a>, with a default <a href="#status_code"><code>status-code</code></a> of <code>200</code>.
@@ -1331,7 +1403,7 @@ but those will be reported by the <a href="#incoming_body"><code>incoming-body</
13311403
</ul>
13321404
<h5>Return values</h5>
13331405
<ul>
1334-
<li><a name="method_future_incoming_response.get.0"></a> option&lt;result&lt;result&lt;own&lt;<a href="#incoming_response"><a href="#incoming_response"><code>incoming-response</code></a></a>&gt;, <a href="#error"><a href="#error"><code>error</code></a></a>&gt;&gt;&gt;</li>
1406+
<li><a name="method_future_incoming_response.get.0"></a> option&lt;result&lt;result&lt;own&lt;<a href="#incoming_response"><a href="#incoming_response"><code>incoming-response</code></a></a>&gt;, <a href="#error_code"><a href="#error_code"><code>error-code</code></a></a>&gt;&gt;&gt;</li>
13351407
</ul>
13361408
<h2><a name="wasi:http_outgoing_handler">Import interface wasi:http/outgoing-handler</a></h2>
13371409
<p>This interface defines a handler of outgoing HTTP Requests. It should be
@@ -1347,8 +1419,8 @@ imported by components which wish to make HTTP Requests.</p>
13471419
#### <a name="future_incoming_response">`type future-incoming-response`</a>
13481420
[`future-incoming-response`](#future_incoming_response)
13491421
<p>
1350-
#### <a name="error">`type error`</a>
1351-
[`error`](#error)
1422+
#### <a name="error_code">`type error-code`</a>
1423+
[`error-code`](#error_code)
13521424
<p>
13531425
----
13541426
<h3>Functions</h3>
@@ -1368,7 +1440,7 @@ through the <a href="#future_incoming_response"><code>future-incoming-response</
13681440
</ul>
13691441
<h5>Return values</h5>
13701442
<ul>
1371-
<li><a name="handle.0"></a> result&lt;own&lt;<a href="#future_incoming_response"><a href="#future_incoming_response"><code>future-incoming-response</code></a></a>&gt;, <a href="#error"><a href="#error"><code>error</code></a></a>&gt;</li>
1443+
<li><a name="handle.0"></a> result&lt;own&lt;<a href="#future_incoming_response"><a href="#future_incoming_response"><code>future-incoming-response</code></a></a>&gt;, <a href="#error_code"><a href="#error_code"><code>error-code</code></a></a>&gt;</li>
13721444
</ul>
13731445
<h2><a name="wasi:http_incoming_handler">Export interface wasi:http/incoming-handler</a></h2>
13741446
<hr />

0 commit comments

Comments
 (0)