XSF Discussion - 2022-02-18


  1. moparisthebest

    emus, sorry I didn't quite finish, I'll get the rest tommorow

  2. emus

    moparisthebest: thanks is alright

  3. Guus

    This is probably a silly question, but I didn't have enough coffee yet. How does one unregister with a MUC? The inverse of https://xmpp.org/extensions/xep-0045.html#register ?

  4. Fishbowler

    Have always assumed, perhaps incorrectly, that it's intentionally back-channeled. In the same way that many orgs do their Right to Be Forgotten, I'd imagined it to be an "email an admin" affair.

  5. Kev

    https://xmpp.org/extensions/xep-0077.html#usecases-cancel

  6. Guus

    Ah, thank you.

  7. emus

    So, no XML excuses anymore 🙂 https://github.com/legastero/stanza

  8. Link Mauve

    emus, doesn’t sound very maintained.

  9. emus

    yep, I just saw it

  10. Link Mauve

    But this (and many similar ones) has been available for literally decades.

  11. Link Mauve

    People ranting on XML just want a reason to not use XMPP imo.

  12. emus

    ah, didn't knew

  13. Link Mauve

    A library like slixmpp or aioxmpp will not expose any XML to you, it will expose native objects.

  14. Link Mauve

    You have to dig pretty far if you want to manipulate raw XML objects.

  15. moparisthebest

    see I always found that super annoying

  16. moparisthebest

    I *want* raw XML and jumping through 80 hoops making objects for each variant and registering serializers and deserializers etc was always a PITA

  17. Link Mauve

    Have fun playing with libstrophe I guess. ^^'

  18. Link Mauve

    I’m not into kink shaming.

  19. moparisthebest

    the key is layers so you can reach down as deep as you'd like

  20. emus

    I cannot review this, is there anyone volunteering? https://github.com/xsf/xmpp.org/pull/1001

  21. moparisthebest

    I've got "connecting to xmpp, being handed seperate stanzas as &[u8] working

  22. moparisthebest

    next would be an XML layer, and *then* an object layer, maybe

  23. emus

    maybe we should add this to XMPP Myths --> "XMPP means XML = bad"

  24. Link Mauve

    moparisthebest, we have that in tokio-xmpp.

  25. Link Mauve

    And you can use xmpp-parsers if you want something more usable than XML stuff.

  26. moparisthebest

    tokio-xmpp depends on an XML lib though right?

  27. Link Mauve

    But besides XMPP hackers, this is not usable by the layman.

  28. Link Mauve

    Yes.

  29. moparisthebest

    that's the layer above &[u8]

  30. Link Mauve

    For XMPP you kind of need to. :p

  31. Link Mauve

    Otherwise you’d have like, a socket library?

  32. moparisthebest

    you don't, you can easily split up stanzas without an XML parser

  33. Link Mauve

    And parse the stream headers, do the login dance, etc.

  34. Link Mauve

    Yeah sure, I mean my first client was literally implemented using printf() and scanf(), but…

  35. moparisthebest

    some simple substring on the byte array

  36. Link Mauve

    Oh my.

  37. moparisthebest

    fun fact, ejabberd works like this

  38. emus

    https://gitlab.com/xmpp-rs/xmpp-rs can some of the official peopl PR? https://github.com/xsf/xmpp.org/blob/master/data/libraries.json

  39. emus

    https://gitlab.com/xmpp-rs/xmpp-rs can some of the official people PR? https://github.com/xsf/xmpp.org/blob/master/data/libraries.json

  40. moparisthebest

    it's not using an xml library on stream features etc, because if you send them formatted differently, it won't work

  41. Link Mauve

    emus, I still don’t consider the xmpp-rs part usable enough, and the other parts are more like building blocks.

  42. emus

    but it is being developed right?

  43. Link Mauve

    Working building blocks, someone recently made a Jitsi Meet-compatible tool, but as I said besides XMPP hackers it’s not really usable by a random person wanting to use a library.

  44. Link Mauve

    Yes it is.

  45. emus

    I think it is still okay to show its there, because I don't want people now thinking "Ahhh I am going to make a rust library!!!!"

  46. moparisthebest

    my motto is "if it's good enough for ejabberd, it's good enough for me" :P (it rhymes if you say it right)

  47. Link Mauve

    emus, hmm, that makes sense.

  48. emus

    I would apprecitate a upgrade. Its more usable than this stanza thing I think, right?

  49. emus

    I would appreciate a update. Its more usable than this stanza thing I think, right?

  50. Link Mauve

    emus, just one entry, or one entry per component?

  51. emus

    I personally don't care. if it all is rust related, I think its fine to just reference the main repo. people will find their way

  52. emus

    (they likely wont find if we dont link at all 😉 - IMHO)

  53. Link Mauve

    Indeed. :)

  54. moparisthebest

    Link Mauve: ``` // ejabberd never sends <starttls/> with the first, only the second? //let buf = br###"<features xmlns="http://etherx.jabber.org/streams"><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required/></starttls></features>"###; let buf = br###"<stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required/></starttls></stream:features>"###; ```

  55. moparisthebest

    that was, let's say, annoying to debug :)

  56. emus

    Call for everyone to rather create an entry for your project or also update extisting entries (timestamp) - Let's not have people reinventing the wheel (can I say that in English :D) - if there are doubts we can still discuss or in one year leave it to the archive again

  57. emus

    Call for everyone to rather create an entry for your project or also update existing entries (timestamp) - Let's not have people reinventing the wheel (can I say that in English? :D) - if there are doubts we can still discuss or in one year leave it to the archive again

  58. moparisthebest

    this is XMPP, where (virtually) every client re-invents the wheel with their own library

  59. Zash

    inb4 libprosody

  60. Link Mauve

    https://github.com/xsf/xmpp.org/pull/1078

  61. mathieui

    21:14:03 Link Mauve> A library like slixmpp or aioxmpp will not expose any XML to you, it will expose native objects. → I wish though

  62. emus

    👍

  63. emus

    > moparisthebest escribió: > this is XMPP, where (virtually) every client re-invents the wheel with their own library ☺

  64. wurstsalat

    There is no Rust in https://github.com/xsf/xmpp.org/blob/master/data/platforms.json This will most likely fail

  65. Zash

    Add there too?

  66. wurstsalat

    Sorry, just on the phone

  67. mathieui

    wurstsalat, platforms for the libraries page do not reference those, AFAIK

  68. mathieui

    (see the other entries, it’s the programming language instead)

  69. emus

    wurstsalat, Link Mauve: could you guys check on that?

  70. mathieui

    Sam, they relate because you don’t trust a single client’s featureset anymore

  71. mathieui

    so feature detection is mostly dropped in a multidevice world

  72. Zash

    .

  73. larma

    It's relevant for Jingle things, as Jingle doesn't use message 😉

  74. mathieui

    (but yes, the correlation is loose)

  75. mathieui

    larma, true

  76. Zash

    the return of calls, yeah

  77. Link Mauve

    Sam, let’s say a client advertises support for feature A and feature B, a victim got their cache poisoned with feature A<B because their client didn’t escape things properly, then they’ll think the first client advertises neither.

  78. larma

    Sam, you can't rely on caps/features for the call icon because the call-capable client might be offline and get a push notification as you send a call invite

  79. Sam

    larma: sure, but you still rely on caps/features to know that something supported it in the first place.

  80. larma

    You could, but then you risk of not showing the call icon for some users that would actually support it

  81. Sam

    You mean if they've never had a client come online that supports it? That seems reasonable to assume they don't have one in that case.

  82. Zash

    But if I wanna use fancy new features in say, this MUC right here, I can't do negotiation with those who will read it from the archives in 10 years

  83. Sam

    I still don't understand what MUCs or people reading history in 10 years have to do with feature negotiation

  84. Sam

    I'm not trying to be obtuse, but maybe I am? I don't see how this relates to the previous conversation, sorry.

  85. larma

    It depends on which feature you want to negotiate

  86. Link Mauve

    Sam, many features which could (and should) be negociated in 1:1 usecases don’t really make sense any longer, now that people routinely use multiple clients and you don’t address a single resource, or in MUCs where people come and go.

  87. Link Mauve

    I can send XHTML-IM to this room right now, even if some of you might not support it yet.

  88. Link Mauve

    My client didn’t even try to negociate the feature, because in the worst case you will just miss part of the message.

  89. Sam

    Oh sure, all of that is true and obvious. I don't see how that makes feature negotiation as a thing less useful though. Yes, lots of features in different ways don't need it and you can just send them and have a good fallback. Others you can't. I was never arguing that every single thing should be feature negotiation all of the time.

  90. Link Mauve

    Sam, Zash’s point was only that fewer and fewer features are actually negociated that way.

  91. Link Mauve

    Due to multi-client, due to the assumption that people are always online (even if they don’t have a resource), etc.

  92. Link Mauve

    Due to MUC.

  93. Link Mauve

    Due to MUC+MAM.

  94. Sam

    Sure, that's probably true

  95. Zash

    Like, Swift IIRC has a banner warning that not everyone in the chat supports LMC

  96. Sam

    That's a thing I wish clients would do negotiation on. Every time someone edits a huge message and I get it all over again and have to try and figure out what's different I want to smash something

  97. Sam

    But yah, lots of things have saner fallbacks

  98. Zash

    That works fine as long as the audience is the current set of participants, but it's not, it's anyone who might join in the future (before archives expire)

  99. Link Mauve

    I feel like LMC’s fallback is actually pretty sane. :)

  100. Zash

    Annoying, but survivable, sure

  101. Link Mauve

    It could be much worse if you were to just miss an important correction altogether.

  102. Link Mauve

    The obvious solution being, to actually implement it.

  103. Sam

    That is not a solution for most users.

  104. Zash

    > point was only that fewer and fewer features are actually negociated that way. and by extension that the impact of 115 exploits is reduced

  105. Sam

    That's fair

  106. Zash

    Messing with call support detection, or PEP +notify might be bad enough tho.