XSF Discussion - 2018-07-16


  1. jonasw

    somebody with IETF strings may want to give them a hint that https://tools.ietf.org/html/draft-rescorla-tls-esni-00#section-4 may be not-cool for things not HTTPS

  2. flow

    jonasw, why not just drop a mail to draft-rescorla-tls-esni@ietf.org, possibly cc'ing standards@?

  3. jonasw

    I didn’t even know that address

  4. jonasw

    do I need to subscribe somewhere before posting?

  5. flow

    jonasw, no

  6. Ge0rG

    Jul 16 12:34:11 c2s56231cdf2b10 debug Received[c2s_unbound]: <inactive xmlns='urn:xmpp:csi:0'> Jul 16 12:34:11 c2s56231cdf2b10 debug mod_csi_battery_saver(9380): Client is inactive the first time, initializing module for this session Jul 16 12:34:11 c2s56231cdf2b10 debug Received[c2s_unbound]: <resume h='128' previd='2121b279-b0c2-47eb-9537-2bbdeb3e2c21' xmlns='urn:xmpp:sm:3'>

  7. Ge0rG

    this is what you get for making CSI a stream setting and not a session setting. Sigh.

  8. daniel

    And that's how you get ants

  9. MattJ

    Ge0rG, that's not yaxim, is it?

  10. Ge0rG

    MattJ: no. yaxim is on sm:2

  11. MattJ

    Ah yes

  12. Ge0rG

    We had a heated discussion about what happens with CSI state on 0198 resume. Nobody thought about what happens if you do CSI *before* resume

  13. Zash

    Madness

  14. Ge0rG

    Where's my "told you so" stamp, again?

  15. MattJ

    I guess we should just all do what Ge0rG says from now on

  16. jonasw

    enabling CSI before bind should just be forbidden.

  17. Ge0rG

    jonasw: why?

  18. Ge0rG

    jonasw: on what grounds?

  19. jonasw

    wait, I got pre-bind and pre-auth confused.

  20. Ge0rG

    You could even CSI-inactive pre-auth.

  21. Ge0rG

    But then the stream gets restarted, so meh.

  22. jonasw

    csi-inactive pre-auth should be forbidden because the server might need to allocate resources for that.

  23. jonasw

    (and it’s not essential to secure the authentication channel)

  24. Ge0rG

    jonasw: then you can tell us the place where this should be forbidden?

  25. Ge0rG

    okay, it's rather obvious with pre-auth, but how do you handle pre-bind / pre-resume

  26. Holger

    > Clients wishing to immediately go to the inactive state should do so after stream resumption. ... is not enough?

  27. Ge0rG

    Holger: that's not even a SHOULD

  28. Ge0rG

    Holger: and above server log shows that client authors don't listen

  29. Holger

    If the CSI state was per-session, would that help with such client authors?

  30. Holger

    They set CSI-active before resume and after resume the state is suddently inactive?

  31. Holger

    Anyway "stream resumption does not affect the current CSI state" sounds a bit like the server shouldn't mess with pre-resume CSI. The second half of the sentence, "which always defaults to 'active' for new and resumed streams" sounds like it should, though :-)

  32. MattJ

    :/

  33. Holger

    Whatever. I'd just add a MUST to that sentence (clients MUST "do so after stream resumption"), problem solved. This is not how I'd do it if we started from scratch, but I wouldn't mess with the rules again without strong reasoning.

  34. Kev

    FWIW, there's no distinction on caps, so should and SHOULD are equivalent.

  35. Ge0rG

    Kev: can you translate that into plain English please?

  36. Kev

    Holger pasted a sentence containing a should, and you said it wasn't a SHOULD. I was pointing out that should and SHOULD are the same word.

  37. Kev

    2119 doesn't say that words need to be in caps.

  38. Holger

    > These words are often capitalized.

  39. Holger

    Hehe.

  40. Ge0rG

    but it's generally expected

  41. Holger

    It doesn't even say they SHOULD be capitalized.

  42. Ge0rG

    I was actually tryign to parse "caps" as "entity capabilities", leading to confusion

  43. Holger

    Ge0rG: If you get a "told you so" stamp I want a t-shirt bitching about those SHOULDs everywhere.

  44. Holger

    You SHOULD NOT use SHOULD!

  45. Ge0rG

    "You MAY use 'SHOULD' but it is NOT RECOMMENDED to rely on its implementation."

  46. pep.

    https://mail.jabber.org/pipermail/standards/2018-July/035247.html I don't really like to have to rewrite a new XEP when there is already one existing. I think that adds to the confusion of "What XEPs do I need to implement?".

  47. Kev

    There's already a XEP for sending 'file uploading' notifications?

  48. jonasw

    pep., if you can add a feature to a XEP, you can also make a new XEP which only contains that new feature

  49. jonasw

    there’s no problem with a XEP-XXXX which builds on chat states and specifies a new set of elements which may be used in combination with e.g. <composing/> to show that an upload is in progress

  50. Ge0rG

    It's not forbidden to add a sub-element to <composing/>, outlining that it's actually uploading. That would be backward-compatible

  51. Ge0rG

    lnj: ^

  52. pep.

    jonasw, yeah but why is that not the recommended way

  53. jonasw

    pep., that is what matt said

  54. pep.

    Ah wait I got it wrong

  55. pep.

    Why is that the recommended way

  56. jonasw

    he surely did *not* intend to say that XEP-0085 should be copied entirel

  57. jonasw

    pep., why not?

  58. Ge0rG

    Ah, it looks like Andrew did a similar thing there.

  59. pep.

    jonasw, hmm, ok I read that as copy 0085 and include whatever you need in it.

  60. jonasw

    Andrew Nenakhov, hey, mind writing down your extension?

  61. jonasw

    pep., no, create a new thing which only contains the new features and which builds on top of 0085

  62. jonasw

    Andrew Nenakhov, also, any reason why you didn’t opt for a child of <composing/> or next to composing instead of an attribute?

  63. Kev

    Namespaced attributes aren't the best idea in XMPP.

  64. jonasw

    nobody said "namespaced"

  65. Kev

    Shoving attributes into someone else's namespace is also not great.

  66. Ge0rG

    somebody said "hack"

  67. pep.

    Kev, ooi why it's not the best idea?

  68. jonasw

    Kev, good thing that attributes aren’t even associated with a namespace by default \o/

  69. pep.

    is it*

  70. pep.

    Because it's not widely used, because it's not advertised in the RFC?

  71. Kev

    jonasw: You know what I mean. Attributes on an element in someone else's namespace.

  72. jonasw

    Kev, yeah.

  73. Kev

    pep.: Because it's not likely to work.

  74. pep.

    Kev, because lack of deployment then, right?

  75. jonasw

    pep., namespaced attributes require namespace prefixes, and implementations historically had ..... issues with that.

  76. Kev

    pep.: Yeah.

  77. jonasw

    which I don’t get.

  78. Kev

    jonasw: We don't use namespaced attributes in XMPP, therefore XMPP XML implementations don't typically support them, therefore we can't use them.

  79. Kev

    Meet circle.

  80. pep.

    Ok, I don't think lack of deployment is really an argument. I mean things change. People should follow, otherwise things break, and that's expected

  81. jonasw

    pep., issue is, if people are using XML parsers which don’t support namespacing at all (which seems to happen, because I have no idea why) and which rely on default xmlns and dirty hacks... this will be bad

  82. jonasw

    although technically such implementatinos should not have issues with routing such content at least

  83. pep.

    Well then they should fix their parser, problem solved.

  84. jonasw

    one does not simply make an XML parser namespace-aware.

  85. pep.

    ;)

  86. pep.

    jonasw, this issue is not specific to XML parsers.

  87. pep.

    YouknowwhatImean

  88. jonasw

    not really. the xml parser is a core component. "fixing" it to support namespaces usually means: - exchange the entire XML parser and/or - re-write the entire interface between XML parser and your stuff on top of it.

  89. pep.

    Let me rephrase: the issue of people not updating/projects not staying up-to-date is not specific to XML parsers

  90. jonasw

    yes

  91. jonasw

    I wish we could use proper namespacing in all of XMPP.

  92. jonasw

    we could save quite a few bytes with that.

  93. Kev

    We can in everywhere except attributes, I think.

  94. jonasw

    e.g. by declaring the stream management prefix on the stream level

  95. Kev

    Ah, right, you want to declare prefixes.

  96. Kev

    I take it back :)

  97. jonasw

    yes, proper namespacing I said :)

  98. Kev

    Well, it's a bit different.

  99. Kev

    Namespaced attributes we can't use because we can't use a representation that will be understood widely.

  100. Kev

    Everything else we can represent, you just would like to use a different representation. IIRC.

  101. Kev

    *IIUC

  102. Kev

    But either way, yes. Prefixes are likely to end badly.

  103. Zash

    Are namespaces actually a problem anymore? I've never noticed any problems

  104. pep.

    I guess it's an issue of making widely used implementations support them, and then in a few years we'll be able to start thinking about using them

  105. pep.

    When stable-releases have updated their crap

  106. lnj

    jonasw: So about the uploading notifications your suggestion is to just create a new XEP?

  107. pep.

    lnj, yes, wiht 0085 as dependency

  108. lnj

    OK, thanks

  109. Kev

    Zash: Not namespaces in general, no, they're required everywhere. But prefix definitions are, and therefore namespaced attributes.

  110. MattJ

    Just send a new element alongside <composing/>, job done

  111. Kev

    MattJ: Alongside? I'd inside personally, although maybe it doesn't matter.

  112. pep.

    yeah I'd make it inside as well, otherwise you'd have to deal with a lot more cases

  113. MattJ

    Kev, you may not have faith in things handling namespaced attributes, I don't have faith in them handling unexpected elements properly either

  114. MattJ

    Nested ones, that is

  115. Kev

    That's kinda one of the core expectations of XMPP isn't it? That you can shove new (namespaced) elements more or less anywhere.

  116. MattJ

    There are a number of places we have avoided doing this in the past

  117. Ge0rG

    we also tried to put the <forwarded> and <message> alongside each other in Carbons. That didn't went well.

  118. flow

    I doubt that using namespaced attributes in XMPP is such a big problem as ppl here believe. I never heard of an impl that had issues, which of course, doesn't mean that such a thing does not exists. But then again, most XML parser probably support namespaced attributes out of the box.

  119. flow

    Hmm does xep85 schema try to actively forbid extension elements within? And yes I know that schemas are only considered informative, but still. I think if we extend xep85's extension elements would be a bigger problem than namespaced attributes.

  120. MattJ

    flow, I once tried to pull the 'xmpp-stanzas' namespace up into a declaration on the <error> element, instead of duplicating it on each child

  121. MattJ

    Had to revert because clients didn't like it

  122. MattJ

    And that's a basic namespace thing

  123. jonasw

    MattJ, :(

  124. jonasw

    aioxmpp would love that

  125. Zash

    Which cliens?

  126. jonasw

    well, aioxmpp would deal with it, but its lead developer would love it.

  127. MattJ

    Zash, I forget, it was a long time ago and although I put a COMPAT I didn't list which

  128. jonasw

    MattJ, when I started with aioxmpp, ejabberd failed to process such stuff, too

  129. Kev

    I believe that Swift would cope fine with prefixes for element namespaces, but likely get confused with namespaced attributes.

  130. jonasw

    why?

  131. jonasw

    I fail to find the difference

  132. Kev

    Because for one it's just coming out of the XML parser, and XMPP uses namespaced elements so that's in the abstraction. XMPP doesn't use namespaced attributes, so it's not in the abstraction.

  133. jonasw

    mmkay

  134. Kev

    At least, ISTR it's not.

  135. Kev

    " It is conventional in the XMPP community for implementations to not generate namespace prefixes for elements that are qualified by extended namespaces" BTW. Non-normative, but at least a record that it's not done.

  136. Kev

    And with that, I shall vanish for the night.

  137. jonasw

    have a good one