Description
The current draft spec does't anywhere define what values proxy_action_t
might take.
The C++ and Rust SDKs also seem to diverge on this, the Rust SDK only provides Action::Continue
and Action::Pause
for all handlers. The CPP SDK seems to define differnt actions for HTTP headers which include being able to terminate the stream.
It's not clear what is expected here!
For context, I'm attempting to write a WASM filter for Envoy currently.
I'm writing an L4 (Stream Context) filter that needs to determine if the caller is authorized to access the service. If not I need to be able to terminate the connection.
As far as I can see there is no way to do this currently - the Rust SDK only defines Continue
and Pause
which will just hang the connection not terminate it.
I also tried calling self.done()
on the StreamContext to attempt to terminate that TCP stream however that causes Envoy to segfault so I presume that is not the correct way to achieve that. I don't see any other method in the ABI spec that would allow terminating the current stream though - is this intended to work?
Thanks for your help. I'm looking forward to proxy-wasm stablizing!