Add option to send ORIGIN frame
seanmonstar opened this issue · comments
This proposes adding an option to the h2::server::Builder
config such that it sends the ORIGIN frame to connections.
- A method
origin
is added to the h2::server::Builder` struct.- We need to decide on the method argument. How should a user provide the origin-set?
- The specification says the origin must ASCII, so we could just ask for a list of strings.
- Or, we could force the user to provide a list of
(Scheme, Authority)
tuples, since we have those types in thehttp
crate. - I'm not convinced which way is better myself.
- A new file would be added,
src/frame/origin.rs
.- Implement encoding of the ORIGIN header according the RFC.
- We don't need decoding for now.
- Update the
src/proto/connection.rs
file such thatConnection
has anOption<Origin>
, and if set, is written after the initialSETTINGS
frame.
@lucacasonato
This would work for us right? AFAICT there would be no need to send the ORIGIN frame after processing the first request.
Yeah, this looks good. We can determine the value of the ORIGIN frame based on an SNI field in the TLS handshake.
I have no preference between strings and (Scheme, Authority)
.