-
Zash
I just realized that XEP-0363 talks about the <header>s as MAY. Does this mean as a server-side implementer I can't actually use that?
-
jonas’
depends on whether you control the client
-
Zash
Not quite worded in an obvious compliance level way tho
-
Zash
Oh > the client MUST include all allowed headers that came with the slot assignment.
-
Zash
So, server MAY include <header>s, client MUST support.
-
jonas’
:)
-
flow
I wonder if this is a case where the 'may' should be lowercased
-
Zash
So I need to file a bug report instead instead of redesigning my thing.
-
jonas’
I think so
-
Zash
Let's do it
-
Daniel
I don't find that very ambiguous tbg✎ -
Daniel
I don't find that very ambiguous tbh ✏
-
Daniel
But I wrote the thing so I'm obviously biased
-
dwd
I don't understand the problem - servers might or might not include headers, entirely at their discretion, but if they do then client have to handle them if they expect things to actually work.
-
jonas’
dwd, then the MAY is not RFC 2119 language in that context, but just plain english IMO
-
jonas’
the action of a server including or not including headers is irrelevant for interop, what is relevant for interop is that clients can deal with the case (where the MUST is also placed)
-
Zash
Daniel, mostly because I didn't see the part about clients when I searched, which is isn't in the same spot in the document.
-
Daniel
Zash: I'd be curious on where and how you use the headers though. Because I started to suspect nobody uses them
-
dwd
jonas’, One implies the other, indeed, but actually the way RFC 2119 is written, MAY implies MUST on the recipient, and not the other way around.
-
Zash
Daniel: I recently started on a new implementation and went with passing magic via a Authorization header.
-
Zash
dwd, oh!
-
dwd
Zash, Oh?
-
Zash
re > MAY implies MUST
-
dwd
Zash, Well, what it says is more nuanced, but: An implementation which does not include a particular option MUST be prepared to interoperate with another implementation which does include the option, though perhaps with reduced functionality.
-
Zash
So, never mind, just me not having read the whole thing into my head yet 🙂
-
jonas’
dwd, TIL
- jonas’ goes back to updating countless instances of sudo(1)
-
dwd
Zash, So there's an implication here that a client could conform to the server's MAY by ignoring the headers, which we don't want.
-
dwd
jonas’, I did my bastion hosts last night, indeed. Got the rest of the estate to do today and our head of infra is off sick so I suppose it's my job now.
-
jonas’
dwd, hah
-
dwd
Zash, But anyway MAY send, MUST handle is fine by me. I've generally preferred specifying sender/receiver behaviour separately, and it's especially useful in fun cases like MUST NOT send, SHOULD ignore, where you have legacy behaviour to deal with.