defanorFWIW, "Received" headers usually contain timestamps, so you may be able to track when it went where, according to the servers adding those headers, and compare to user-set "Date".
defanorI happened to receive a reply to a message from April just yesterday, maybe it's the delayed message delivery day.
ZashPerhaps it was triggered by the configuration change mentioned in https://mail.jabber.org/pipermail/council/2021-November/004520.html
Martin> Received: from NAM12-DM6-obe.outbound.protection.outlook.com
> (mail-dm6nam12olkn2074.outbound.protection.outlook.com [40.92.22.74])
> by atlas.jabber.org (Postfix) with ESMTPS id BBAF089D
> for <juser@jabber.org>; Tue, 29 Dec 2020 19:15:31 +0000 (UTC)
jubalhhas left
nephelehas joined
jubalhhas joined
machas left
Marandahas left
Marandahas joined
machas joined
jgarthas joined
sonnyhas left
Marandahas left
sonnyhas joined
Kevhas left
goffihas left
goffihas joined
Kevhas joined
raghavgururajanhas joined
marmistrzhas left
lovetoxi find it really ugly
lovetoxthat resource binding is done via IQ
ZashYES
lovetoxwhy though, i mean there was probably a history or story behind this
ZashWelcome to the sensible camp! Let's give angry stares to those who think everything in session startup should be iq stanzas 😉
Zashlovetox, behold this horror: https://xmpp.org/extensions/xep-0078.html
ZashI remember doing that with telnet 900 years ago
lovetoxbut it makes no sense, reading the rfc, its only nonzas all the way, and then suddenly they start with stanzas BEFORE WE HAVE A JID :D
ZashI think "nonzas" were invented at the time of IETF standardization
lovetoxtitle is enough for me, to not read that
ZashScroll down to https://xmpp.org/extensions/xep-0078.html#example-3 and cry
ZashTho it was easier to type that into telnet than doing SCRAM in your head 😉
Zashor even PLAIN
machas left
Zashlovetox, do you have a moment to talk about our lord and savior, https://xmpp.org/extensions/xep-0386.html ? ;)
Zashand https://xmpp.org/extensions/xep-0388.html
nephelehas left
Zashand https://xmpp.org/extensions/xep-0389.html
Zashthe holy trinity of XMPP 2.0 connection establishing
lovetoxyes, im interested in that, is there some working support in prosody for that?
ZashI had a prototype / WIP somewhere
ZashHopefully there'll be more time to work on that after Prosody 0.12 gets out the door.
jubalhhas left
lovetoxalso something very ugly
lovetoxevery stanza has a type attribute with a value
lovetoxexcept presence, it can just be absent
Zashmessage too
Zashonly iq is strict
jubalhhas joined
lovetoxno with message its just an optimization
lovetoxyou can leave it out but that means "normal"
lovetoxfor presence there is no default
ZashOnly having to send `<presence/>` to go online is nice tho.
lovetoxmakes writing stanza handlers fun, now you need to add code for the single case, where you want to match on the absence of an attribute
lovetoxZash, no problem with that, just assign a default like with message
lovetoxpresence type=normal
lovetoxor something
Zashhow about 'available' to mirror 'unavailable' ?
Zashand then hide that in abstractions so it serializes out to None or whathaveyou
jonas’enums! :)
lovetoxactually i do that, with show
jonas’and that broke everything?
Zashboolean?
lovetoxno works quite well
lovetoxi simply have a added, Show.AVAILABLE
lovetoxbut yeah this is the next ugly thing with presence
lovetoxyou commnicate your state with show
lovetoxbut not if you are available
lovetoxthen its absent
lovetoxnow you need everytime to check 2 things, actually type must be absent AND show must be absent
lovetoxand no problem with optimizations on the stream with default values etc
lovetoxbut to have nothing, puts library developers in the situation to add stuff thats not in the standard to make things sane
ZashAbstractions gonna abstract
lovetoxi really just wonder, that rfc was written over some weeks or months whatever, some inital idea and it was like
Presence:
Ok most things can be absent, we dont need defaults, just the absence is enough
IQ:
Nothing is allowed to be absent
Message:
Lets allow something to be absent, but we define a default
ZashThe initial RFCs were written years after Jabber was already a thing
lovetoxok so this was like some thing that needed to be backwards compatible from the start
lovetox?
ZashJabber was launched in 1999, the IETF standardization happened around 2002-2005 I think (I wasn't involved in any of this back then)
lovetoxno from on the jid would mean this iq is from the user account✎
lovetoxno from on the stanza would mean this iq is from the user account ✏
ZashI've found it safest for my own sanity to not think of those as actual iq stanzas
lovetoxshould it not be instead from the server? so from=jabber.fr
ZashInstead, pretend that's a nonza that just happens to be called <iq xmlns="jabber:client">
Zashto and from are only allowed on real stanzas
Zashbefore you've bound a resource, those don't even make sense
ZashProsody even treats it as a nonza
Apollohas left
lovetoxrfc does also not include a from in its example for bind
junaidhas left
ZashOh, there it is
Zashhttps://modules.prosody.im/mod_sasl2.html
marc0shas left
marc0shas joined
jgarthas left
9lakeshas joined
Yagizаhas left
Yagizаhas joined
sonnyhas left
sonnyhas joined
me9has joined
dezanthas joined
Yagizаhas left
Yagizаhas joined
sonnyhas left
sonnyhas joined
Yagizаhas left
Yagizаhas joined
sonnyhas left
sonnyhas joined
jubalhhas left
serge90has left
serge90has joined
nephelehas joined
jgarthas joined
marmistrzhas joined
Kevhas left
Kevhas joined
Yagizаhas left
Kevhas left
Kevhas joined
jubalhhas joined
lovetoxit gets more funny if you consider error cases while binding
lovetoxin iq errors the original query is not mandatory included
lovetoxthen you dont even have the bind namespace
lovetoxbut i guess the iq stanza id ..
jonas’also there can be no other stanza in flight at that point
lovetoxi hate to break the promise to the application that every iq has a from address
jonas’then don't
lovetoxonly because of this one case ...
jonas’treat it as a nonza
lovetoxthats hard
lovetoxthen i need to make an exception at the parser level
antranigvhas joined
lovetoxbut i guess i could do this
lovetoxso it does not end up as a type IQ
Zashin prosody nothing is a stanza until after resource binding
Zashtho that's handled above the parser, nearer the routing
Kevhas left
lovetoxright now the parser translates parsed elements based on tag and namespace to respective classes
lovetoxand later i dispatch depending on the type
Kevhas joined
pulkomandyhas left
pulkomandyhas joined
lovetoxjonas’, i dont know how much you have typed your lib, but such things are not just a problem because you have to create some exception in your code somewhere
lovetoxits your IQ object now returns on get_from() suddenly None or JID
jonas’lovetox, I register the stream-level elements dynamically
jonas’that's why it's not a problem
lovetoxwhich is incredibly ugly for applications
lovetoxbecuse they now get lots of typing errors, if they dont always check for None
jonas’and from gets rewritten early in the code which knows about stanzas
jonas’to be consistent
lovetoxok i will try to make it into a weird iq nonza :D
lovetoxlets see how that works out
Yagizаhas joined
Kevhas left
jubalhhas left
Kevhas joined
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
jgarthas left
antranigvhas left
Kevhas left
debaclehas joined
Kevhas joined
Kevhas left
Yagizаhas left
Kevhas joined
Kevhas left
Kevhas joined
Marandahas joined
jubalhhas joined
Kevhas left
Kevhas joined
goffihas left
goffihas joined
Kevhas left
Kevhas joined
Yagizаhas joined
Marandahas left
Zashokay, I made an https://modules.prosody.im/mod_bind2.html to go with https://modules.prosody.im/mod_sasl2.html
Zash... consisting to 80% of TODOs 🙂
Kevhas left
Kevhas joined
Yagizаhas left
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
Kevhas left
Marandahas joined
Kevhas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
Kevhas left
Kevhas joined
sonnyhas left
sonnyhas joined
sonnyhas left
sonnyhas joined
Kevhas left
Kevhas joined
moparisthebesthas left
nephelehas left
nephelehas joined
moparisthebesthas joined
Kevhas left
Kevhas joined
nephelehas left
Kevhas left
Kevhas joined
marmistrzhas left
Kevhas left
Kevhas joined
msavoritiashas left
Mx2has left
Mx2has joined
Kevhas left
Kevhas joined
Kevhas left
Kevhas joined
machas joined
Kevhas left
Kevhas joined
moparisthebesthas left
emushas left
emushas joined
moparisthebesthas joined
Kevhas left
Kevhas joined
goffihas left
emushas left
goffihas joined
emushas joined
Alexhas left
Alexhas joined
Kevhas left
Kevhas joined
pulkomandyhas left
pulkomandyhas joined
me9has left
dropshas left
dropshas joined
thomaslewisDoes it at least function semi-properly?
Zashthomaslewis, you tell me!
thomaslewisejabberd here, so...
thomaslewisneeds to get back to writing IdleRPG for XMPP at some point...