XSF Discussion - 2019-01-28


  1. jonas’

    my boss ACKed me taking a day off on 31st

  2. jonas’

    so I can at least attend remotely :)

  3. Guus

    Awesome!

  4. Ge0rG

    jonas’: I've added a footnote to "Any other error" - does that make sense? I'm not happy with the rendering though, maybe should move it into braces? https://op-co.de/tmp/xep-0410.html#performingselfping

  5. jonas’

    Ge0rG, no, I don’t think that should be a footnote.

  6. jonas’

    That should be normative language, with a MUST, for the services which implement the disco#info feature.

  7. jonas’

    That should be normative language, with a MUST, for the services which implement/advertise the disco#info feature.

  8. flow

    what jonas’ said

  9. jonas’

    (the footnote is good for clients having to deal with non-implementing servers)

  10. Ge0rG

    > Therefore, a MUC service supporting this protocol may directly respond to a participant's Ping request I suppose I need to change that as well, then?

  11. Ge0rG

    into a SHOULD?

  12. flow

    I see no need to change that as well, reads good as it is. Maybe I am missing something. It also appears that a SHOULD would contradict the "service MUST reply with xxx if not joined"

  13. jonas’

    Ge0rG, into a MUST

  14. jonas’

    if it advertises the feature, replying is a MUST

  15. jonas’

    that’s the idea

  16. Ge0rG

    jonas’, flow: https://op-co.de/tmp/xep-0410.html#serveroptimization

  17. flow

    wait there are still cases where the MUC service does not respond directly to a ping, but instead does route it, right? If so, then you can say that a "service MUST respond to a participants ping". Or doex xep410 mandate that participants ping are always handled by the service?

  18. flow

    Ge0rG, a html diff would be great

  19. Ge0rG

    flow: 0410 is only for participant self-ping

  20. Ge0rG

    flow: I don't know how to create a html diff. I wish we had tooling for that

  21. jonas’

    Ge0rG, hm, what about the case when a ping races with a nickname change?

  22. jonas’

    that would yield (<item-not-found/> (sometimes?) if the nickname isn’t in use again && the client is joined) || (a full round-trip if it is && the client is joined)

  23. Ge0rG

    jonas’: do you want me to add <item-not-found/> to the list?

  24. jonas’

    I’m not sure

  25. jonas’

    I may want a different IQ if the server explicitly supports this.

  26. jonas’

    something to the bare MUC JID

  27. jonas’

    so that we don’t have to deal with nickname races

  28. Ge0rG

    flow: the changed text is: > A service implementing this optimization needs to advertise the self-ping-optimization feature in the Service Discovery (XEP-0030) [5] response on the individual MUC room JIDs, and it MUST respond to a self-ping request as follows: > - Successful IQ response: the client is joined to the MUC. > - Error (<not-acceptable>): the client is not joined to the MUC.

  29. jonas’

    (in addition to handling the self-ping IQ efficiently)

  30. jonas’

    Ge0rG, adding <item-not-found/> as an informative thing for client developers in that list is a good thing IMO

  31. Ge0rG

    jonas’: you know, I've been thinking about that and dropped it because you can't fix all MUC services out there.

  32. Ge0rG

    jonas’: the informative thing for client developers is in §3.2

  33. jonas’

    right

  34. jonas’

    Ge0rG, we won’t get all MUC sevrices fixed, but that’s why there is a separate feature.

  35. jonas’

    I’d imagine a good client to behave like this: - MUC advertises feature: use specialised IQ - MUC does not advertise feature: use self-ping with kludgy response parsing

  36. jonas’

    I mediocre client would: - MUC advertises feature: use self-ping and less kludgy response parsing - MUC does not advertise feature: use self-ping with kludgy response parsing

  37. jonas’

    A bad client would: use self-ping

  38. jonas’

    A very bad client would: not notice outages at all

  39. Ge0rG

    jonas’: so you want to at least double the complexity for the benefit of making server-side nickname changes, which are widely considered as broken anyway, more robust when racing with a self-ping?

  40. flow

    Ge0rG, how about adding a xep410 error condition to the "client is not joined" error response?

  41. Ge0rG

    flow: what would that serve?

  42. flow

    in case a broken client responds with <not-acceptable/>

  43. flow

    http://paste.debian.net/1062860/

  44. flow

    Makes life easier (e.g. reading stanza traces) and does not hurt

  45. flow

    didn't we want to add a disco feature for xep410?

  46. Ge0rG

    flow: we have one

  47. flow

    I see one for the self-ping-optimization

  48. Ge0rG

    yes.

  49. flow

    But not for "this service implements xep410"

  50. Ge0rG

    that's the one. What else do you want to have a feature for? Client-side?

  51. Ge0rG

    the self-ping-optimization is the only xep410 thing that can be implemented service-side

  52. flow

    couldn't you implement "sending <not-acceptable/> on not joined" without the self-ping optmization?

  53. Ge0rG

    flow: as with jonas’' suggestion, I don't want to make the logic even more complex (you'd have to check for the additional condition to be really sure)

  54. Ge0rG

    flow: most MUCs already do so.

  55. Ge0rG

    flow: except the ones that return other errors.

  56. flow

    If the answer is yes, then I would suggest adding another disco feature, if not, then that would mean that the self-ping optimization is a mandatory part of xep410 and I would suggest changing the disco feature value

  57. Ge0rG

    to what?

  58. Ge0rG

    initially, 0410 didn't even need a disco feature for the optimization.

  59. flow

    https://xmpp.org/extensions/msp/0

  60. flow

    just an example

  61. Ge0rG

    flow: if the MUC implements self-ping-optimization, you know you won't receive a self-ping resonse from a client anyway.

  62. Ge0rG

    even less so from a broken client

  63. flow

    the important part is that the feature value does not include "self-ping-optimzation" because it make it look like that this is a different optional aspect of xep410

  64. Ge0rG

    msp standing for muc-self-ping?!

  65. flow

    I just saw that you already set the XEPs short name, +1 for that, in this case I would change the xmlns value to https://xmpp.org/extensions/muc-selfping/0

  66. Ge0rG

    flow: what's your ultimate goal?

  67. Ge0rG

    `http://jabber.org/protocol/muc#self-ping-optimization` was supposed to be in line with the other MUC features

  68. flow

    world peace

  69. Ge0rG

    flow: world peace is not a goal of XEP-0410

  70. flow

    How about http://jabber.org/protocol/muc#self-ping

  71. Ge0rG

    flow: why?

  72. flow

    I mean, that is the name of the XEP, it's not "XEP-0410: MUC Self-Ping Optimization"

  73. Ge0rG

    Yes. Because the XEP is about more than just the optimization.

  74. Ge0rG

    But the optimization is what a server can implement. And advertise

  75. flow

    But the MUC service could also implement just "send <not-acceptable/> if not joined", without the optimization, right?

  76. Ge0rG

    flow: yes. That would be XEP-0045 then.

  77. flow

    Ge0rG, doex xep45 define that not-acceptable must be send in this case?

  78. Ge0rG

    Oh. Ugh. https://xmpp.org/extensions/xep-0045.html#disco-occupant

  79. Ge0rG

    jonas’: ^

  80. jonas’

    Ge0rG, > of making server-side nickname changes or MSN nickname changes

  81. jonas’

    flow, wtf, why https://xmpp.org

  82. jonas’

    we have urn:xmpp for that purpose

  83. jonas’

    aside from that, I agree with Ge0rG

  84. jonas’

    I agree with Ge0rG, though, so this is just tangential

  85. flow

    jonas’, I see some appeal in xmlns being an URL which ideally would point to the latest revision of the XEP for that particular namespace

  86. jonas’

    flow, not going to happen.

  87. flow

    jonas’, I am not so sure about that

  88. jonas’

    flow, we aren’t even able to make redirects from accepted inbox ProtoXEPs to their accepted versions, or maintain the attic reliably

  89. jonas’

    or our registries

  90. flow

    that doesn't mean that it has to be that way forever

  91. ralphm

    flow: this was what we had before, and it was decided we went with URNs instead

  92. jonas’

    not ot mention that https vs. http is an ambiguity I do not want to even theoretically have in namespaces when we can avoid it

  93. flow

    ralphm, so it is textified/codified somewhere that XEPs have to use urn:xmpp?

  94. Ge0rG

    jonas’: what do you think about bad-request?

  95. Ge0rG

    ...as the default response for a non-participant, that is

  96. jonas’

    Ge0rG, works for me

  97. jonas’

    I don’t have a strong opinion on the specific type

  98. jonas’

    and the precedent for disco#info is convincing

  99. jonas’

    consistency is nice

  100. ralphm

    flow: https://xmpp.org/extensions/xep-0053.html

  101. Ge0rG

    jonas’: consistency with a specification that is widely ignored?

  102. ralphm

    (which is referenced from XEP-0001)

  103. flow

    ralphm, ta

  104. ralphm

    no problem, sir

  105. ralphm

    One can't know all the things, but people that have been around longer just tend to know a bit more of the ancient bits.

  106. flow

    Certainly, although I am pretty sure I have read xep53 before, but unfortunately that piece of information did not stick

  107. ralphm

    You mean the entire section comprising half of the document?

  108. flow

    not exactly, more like the whole document