emus, sorry I didn't quite finish, I'll get the rest tommorow
sabryhas left
tykaynhas left
stphas joined
wladmishas left
restive_monkhas left
Alexhas left
restive_monkhas joined
stphas left
intosihas joined
debaclehas joined
ti_gj06has left
ti_gj06has joined
qwestionhas left
Mikaelahas joined
Vaulorhas joined
stphas joined
goffihas joined
adiaholichas left
lovetoxhas left
lovetoxhas joined
xnamedhas left
adiaholichas joined
emus
moparisthebest: thanks is alright
Alexhas joined
stphas left
emushas left
restive_monkhas left
marc0shas left
marc0shas joined
marc0shas left
marc0shas joined
Andrzejhas joined
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 ?
mdoschhas left
mdoschhas joined
goffihas left
goffihas joined
dan.caseleyhas left
adiaholichas left
chronosx88has left
adiaholichas joined
chronosx88has joined
BASSGODhas left
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.
So, no XML excuses anymore 🙂 https://github.com/legastero/stanza
Sevehas joined
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.
ti_gj06has joined
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.
restive_monkhas left
Link Mauve
You have to dig pretty far if you want to manipulate raw XML objects.
Andrzejhas left
moparisthebest
see I always found that super annoying
Andrzejhas joined
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
Matthew (away)has left
uhoreghas left
homebeachhas left
Rixon 👁🗨has left
Half-Shothas left
Half-Shothas joined
Matthew (away)has joined
Rixon 👁🗨has joined
uhoreghas joined
homebeachhas joined
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"
norkkihas left
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 ✏
xnamedhas joined
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.
Andrzejhas left
paulhas left
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.
paulhas joined
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)
norkkihas joined
norkkihas left
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>"###;
```
BASSGODhas left
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
adiaholichas left
Sevehas left
Sevehas joined
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
me9has left
atomicwatchhas left
adiaholichas joined
Andrzejhas joined
dwdhas joined
adiaholichas left
xeckshas left
xeckshas joined
dwdhas left
qwestionhas joined
qwestionhas left
qwestionhas joined
ti_gj06has left
gooyahas left
pasdesushihas left
pasdesushihas joined
gooyahas joined
emus
👍
emus
> moparisthebest escribió:
> this is XMPP, where (virtually) every client re-invents the wheel with their own library
☺
Mikaelahas left
govanifyhas left
govanifyhas joined
govanifyhas left
druthidhas left
govanifyhas joined
wladmishas left
Andrzejhas left
druthidhas joined
BASSGODhas joined
wladmishas joined
bunghas joined
Andrzejhas joined
adiaholichas joined
adiaholichas left
xeckshas left
xeckshas joined
bunghas left
Tobiashas left
kyemxdenhas joined
qwestionhas left
karoshihas left
adiaholichas joined
qwestionhas joined
Andrzejhas left
qwestionhas left
qwestionhas joined
florettahas left
florettahas joined
adiaholichas left
karoshihas joined
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)
Alexhas left
florettahas left
florettahas joined
msavoritiashas left
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
Menelhas left
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.
Sevehas left
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
BASSGODhas left
BASSGODhas joined
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.
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.