-
moparisthebest
emus, sorry I didn't quite finish, I'll get the rest tommorow
-
emus
moparisthebest: thanks is alright
-
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 ?
-
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.
-
Kev
https://xmpp.org/extensions/xep-0077.html#usecases-cancel
-
Guus
Ah, thank you.
-
emus
So, no XML excuses anymore 🙂 https://github.com/legastero/stanza
-
Link Mauve
emus, doesn’t sound very maintained.
-
emus
yep, I just saw it
-
Link Mauve
But this (and many similar ones) has been available for literally decades.
-
Link Mauve
People ranting on XML just want a reason to not use XMPP imo.
-
emus
ah, didn't knew
-
Link Mauve
A library like slixmpp or aioxmpp will not expose any XML to you, it will expose native objects.
-
Link Mauve
You have to dig pretty far if you want to manipulate raw XML objects.
-
moparisthebest
see I always found that super annoying
-
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
-
Link Mauve
Have fun playing with libstrophe I guess. ^^'
-
Link Mauve
I’m not into kink shaming.
-
moparisthebest
the key is layers so you can reach down as deep as you'd like
-
emus
I cannot review this, is there anyone volunteering? https://github.com/xsf/xmpp.org/pull/1001
-
moparisthebest
I've got "connecting to xmpp, being handed seperate stanzas as &[u8] working
-
moparisthebest
next would be an XML layer, and *then* an object layer, maybe
-
emus
maybe we should add this to XMPP Myths --> "XMPP means XML = bad"
-
Link Mauve
moparisthebest, we have that in tokio-xmpp.
-
Link Mauve
And you can use xmpp-parsers if you want something more usable than XML stuff.
-
moparisthebest
tokio-xmpp depends on an XML lib though right?
-
Link Mauve
But besides XMPP hackers, this is not usable by the layman.
-
Link Mauve
Yes.
-
moparisthebest
that's the layer above &[u8]
-
Link Mauve
For XMPP you kind of need to. :p
-
Link Mauve
Otherwise you’d have like, a socket library?
-
moparisthebest
you don't, you can easily split up stanzas without an XML parser
-
Link Mauve
And parse the stream headers, do the login dance, etc.
-
Link Mauve
Yeah sure, I mean my first client was literally implemented using printf() and scanf(), but…
-
moparisthebest
some simple substring on the byte array
-
Link Mauve
Oh my.
-
moparisthebest
fun fact, ejabberd works like this
-
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✎ -
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 ✏
-
moparisthebest
it's not using an xml library on stream features etc, because if you send them formatted differently, it won't work
-
Link Mauve
emus, I still don’t consider the xmpp-rs part usable enough, and the other parts are more like building blocks.
-
emus
but it is being developed right?
-
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.
-
Link Mauve
Yes it is.
-
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!!!!"
-
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)
-
Link Mauve
emus, hmm, that makes sense.
-
emus
I would apprecitate a upgrade. Its more usable than this stanza thing I think, right?✎ -
emus
I would appreciate a update. Its more usable than this stanza thing I think, right? ✏
-
Link Mauve
emus, just one entry, or one entry per component?
-
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
-
emus
(they likely wont find if we dont link at all 😉 - IMHO)
-
Link Mauve
Indeed. :)
-
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>"###; ```
-
moparisthebest
that was, let's say, annoying to debug :)
-
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✎ -
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 ✏
-
moparisthebest
this is XMPP, where (virtually) every client re-invents the wheel with their own library
-
Zash
inb4 libprosody
-
Link Mauve
https://github.com/xsf/xmpp.org/pull/1078
-
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
-
emus
👍
-
emus
> moparisthebest escribió: > this is XMPP, where (virtually) every client re-invents the wheel with their own library ☺
-
wurstsalat
There is no Rust in https://github.com/xsf/xmpp.org/blob/master/data/platforms.json This will most likely fail
-
Zash
Add there too?
-
wurstsalat
Sorry, just on the phone
-
mathieui
wurstsalat, platforms for the libraries page do not reference those, AFAIK
-
mathieui
(see the other entries, it’s the programming language instead)
-
emus
wurstsalat, Link Mauve: could you guys check on that?
-
mathieui
Sam, they relate because you don’t trust a single client’s featureset anymore
-
mathieui
so feature detection is mostly dropped in a multidevice world
-
Zash
.
-
larma
It's relevant for Jingle things, as Jingle doesn't use message 😉
-
mathieui
(but yes, the correlation is loose)
-
mathieui
larma, true
-
Zash
the return of calls, yeah
-
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.
-
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
-
Sam
larma: sure, but you still rely on caps/features to know that something supported it in the first place.
-
larma
You could, but then you risk of not showing the call icon for some users that would actually support it
-
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.
-
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
-
Sam
I still don't understand what MUCs or people reading history in 10 years have to do with feature negotiation
-
Sam
I'm not trying to be obtuse, but maybe I am? I don't see how this relates to the previous conversation, sorry.
-
larma
It depends on which feature you want to negotiate
-
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.
-
Link Mauve
I can send XHTML-IM to this room right now, even if some of you might not support it yet.
-
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.
-
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.
-
Link Mauve
Sam, Zash’s point was only that fewer and fewer features are actually negociated that way.
-
Link Mauve
Due to multi-client, due to the assumption that people are always online (even if they don’t have a resource), etc.
-
Link Mauve
Due to MUC.✎ -
Link Mauve
Due to MUC+MAM. ✏
-
Sam
Sure, that's probably true
-
Zash
Like, Swift IIRC has a banner warning that not everyone in the chat supports LMC
-
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
-
Sam
But yah, lots of things have saner fallbacks
-
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)
-
Link Mauve
I feel like LMC’s fallback is actually pretty sane. :)
-
Zash
Annoying, but survivable, sure
-
Link Mauve
It could be much worse if you were to just miss an important correction altogether.
-
Link Mauve
The obvious solution being, to actually implement it.
-
Sam
That is not a solution for most users.
-
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
-
Sam
That's fair
-
Zash
Messing with call support detection, or PEP +notify might be bad enough tho.