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

Clarify that clients don't need to remember unknown SETTINGS #3113

Merged
merged 1 commit into from Oct 24, 2019

Conversation

nharper
Copy link
Contributor

@nharper nharper commented Oct 17, 2019

Fixes #3110.

frame which reduces a setting the client understands or omits a value that was
previously specified to have a non-default value, this MUST be treated as a
connection error of type HTTP_SETTINGS_ERROR.
their default values. If a server accepts 0-RTT but then sends a SETTINGS
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reserved settings do not have a default value, so I don't know if we need to call that out here specifically. If we do it affects the readability a little bit; perhaps we can rely on the readers implicit understanding.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that's implied - if a reserved setting was specified, then it was specified to have a non-default value (since there is no default value).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WFM

previously specified to have a non-default value, this MUST be treated as a
connection error of type HTTP_SETTINGS_ERROR.
their default values. If a server accepts 0-RTT but then sends a SETTINGS
frame which reduces setting the client understands, this MUST be treated as a
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An interesting consequence of the "reduces" clause here is that you can't define a "supports" setting with 0=supports and 1=doesn't support.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reduces "a" setting. #2972 switched to using the term "compatible" up at lines 1215-1216, including a definition of the term; perhaps using "incompatible" instead of "reduces" here as well would help?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for catching the missing "a" in "reduces a setting" (although it's moot now that I've reworded this).

I like using the term "compatible" instead of reduces, since it avoids this odd edge case and imo is more specific.

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

Successfully merging this pull request may close these issues.

Does a client need to remember SETTINGS it doesn't understand when doing 0-RTT resumption?
5 participants