labdsf, caps still work with routing-ng (or why shouldn't they) and you are still able to send messages to the full jid
alexishas joined
j.rhas joined
rainslidehas left
jonasw
labdsf, please close PRs which shouldn’t be merged
jonasw
you can make a new one later
jonasw
open PRs clutter the view
Nekithas joined
ralphmhas left
flohas joined
jubalhhas joined
labdsf
ok, closed
labdsf
I can even reopen it
jonasw
yupp
jonasw
thank you d)
andyhas joined
flohas left
Nekithas left
mrdoctorwhohas left
mrdoctorwhohas joined
Nekithas joined
mrdoctorwhohas joined
Kevhas joined
Guushas left
Guushas joined
lovetoxhas joined
xnyhpshas joined
xnyhpshas joined
vanitasvitaehas left
labdsfhas left
danielhas left
danielhas joined
j.rhas joined
alexishas joined
alexishas left
j.rhas joined
alexishas joined
ralphmhas joined
Chobbeshas joined
Tobiashas left
Tobiashas joined
xnyhpshas left
xnyhpshas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
Guushas left
Guushas joined
mimi89999has left
mimi89999has joined
xnyhpshas left
xnyhpshas joined
Guushas left
Guushas joined
alexishas left
Chobbeshas joined
xnyhpshas left
Dave Cridlandhas left
Dave Cridlandhas joined
xnyhpshas joined
danielhas left
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
Guushas left
Guushas joined
SaltyBoneshas left
blablahas joined
Valerianhas joined
j.rhas joined
SaltyBoneshas joined
alexishas joined
Dave Cridlandhas left
alacerhas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
kasper.dementhas joined
goffihas joined
Dave Cridlandhas left
alacerhas left
alacerhas joined
kasper.dementhas left
alacerhas left
jubalhhas left
karphas left
karphas joined
j.rhas joined
Guushas left
Guushas joined
ralphmhas left
Dave Cridlandhas left
Guushas left
alexishas left
Guushas joined
Guushas left
Guushas joined
Guushas left
Guushas joined
SaltyBoneshas left
karphas left
karphas joined
Guushas left
ralphmhas joined
jubalhhas joined
Guushas joined
Guushas left
Guushas joined
Dave Cridlandhas joined
mrdoctorwhohas left
marmistrzhas joined
Andrew Nenakhovhas joined
alacerhas joined
kasper.dementhas joined
Dave Cridlandhas left
Dave Cridlandhas joined
alacerhas left
Syndacehas left
Syndacehas joined
kasper.dementhas left
Holgerhas left
karphas left
karphas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
la|r|mahas joined
Dave Cridlandhas left
Dave Cridlandhas joined
danielhas left
j.rhas joined
waqashas left
Andrew Nenakhovhas left
MattJhas left
Valerianhas left
vanitasvitaehas left
Valerianhas joined
Valerianhas left
Valerianhas joined
muppethhas joined
vanitasvitaehas joined
la|r|mahas joined
la|r|mahas joined
Valerianhas left
Valerianhas joined
Andrew Nenakhovhas joined
Valerianhas left
Valerianhas joined
Dave Cridlandhas left
Dave Cridlandhas joined
Valerianhas left
tuxhas left
labdsfhas left
SaltyBoneshas joined
Valerianhas joined
la|r|mahas joined
alacerhas joined
lskdjfhas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
rishiraj22has left
Dave Cridlandhas left
Dave Cridlandhas joined
marmistrzhas left
sezuanhas joined
j.rhas joined
marmistrzhas left
blablahas joined
Ge0rGhas left
Dave Cridlandhas left
Dave Cridlandhas joined
Andrew Nenakhovhas joined
alacerhas left
alacerhas joined
Dave Cridlandhas left
Dave Cridlandhas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
Kevhas left
Chobbeshas joined
rishiraj22has left
rishiraj22has joined
rainslidehas joined
sezuanhas left
Kevhas left
alacerhas left
Valerianhas left
sezuanhas joined
alacerhas joined
la|r|mahas joined
Syndacehas left
Syndacehas joined
Chobbeshas joined
kasper.dementhas joined
sezuanhas left
sezuanhas joined
alexishas joined
Valerianhas joined
Andrew Nenakhovhas left
andyhas left
andyhas joined
rishiraj22has left
rishiraj22has joined
jubalhhas joined
labdsf
flow: i mean, when I send messages to bare JID, I cannot know which capabilities the receiving client has
rainslidehas left
jonasw
labdsf, there are use-cases where you want to send to a single device, for example for IQ-based protocols and stuff like Jingle
rionhas joined
labdsf
So ok, I can simply send message to all full JIDs that I think have required capabilities
labdsf
And attach no-copy hint
jonasw
except that they’re not archived
labdsf
Not archived by MAM is ok
jonasw
awful
labdsf
For ephemeral messages that is exactly what I want
jonasw
I am strictly against introducing another reason why messages don’t appear on all devices.
jonasw
OMEMO itself is bad enough already.
lnjhas left
labdsf
If I send to all full JIDs, then it will appear on all online devices
labdsf
I think we need a better way to deliver messages to offline devices
lnjhas joined
Kev
We have it, it's MAM.
jubalhhas left
jubalhhas joined
labdsf
It does not deliver messages to full JID
jonasw
labdsf, except that the device may be going offlnie exactly in that moment you send the message
jonasw
and come back online a secodn later
jonasw
without the user noticing
kasper.dementhas joined
jonasw
(badly timed SM resumption can cause this behaviour)
kasper.dementhas joined
labdsf
How about updating XEP 0160 to say that messages send with no-copy should be postponed and delivered to exactly that full jid, not some random with positive priority?
labdsf
sent*
labdsf
Or return service-unavailable at least
jonasw
labdsf, also, what if:
1. you check device support
2. you send a message to all full JIDs you want to
3. your network is slow and the message is delayed
4. one of your target devices goes offline
5. another device from that user comes online which does *not* have the feature you were looking for, but uses the same resource
6. your message was delivered to the wrong device
Andrew Nenakhovhas joined
labdsf
jonasw: do not use the same resource
jonasw
you can’t force your peer to not do that
jonasw
using the resource for that kind of stuff is inherently racy because it’s an inherently temporary thing
labdsf
I think using unique resources is the best practice
Kev
And remember that clients don't get to choose their resources, the server does.
labdsf
Otherwise we cannot do anything but say that capabilities are totally unreliable
jonasw
labdsf, that’s what we’ve been doing for a while now :)
lnjhas left
jonasw
for IQ based stuff it’s okay, and for things like jingle where there’s constant feedback, but using it for messaging is not a good idea
Kev
It's generally ok, but not foolproof.
labdsf
Except that capabilities XEP mentions XHTML-IM in the introduction, which is messaging use case
jonasw
labdsf, it’s also old
labdsf
I would rather slowly improve offline message delivery then declare that nothing is reliable in XMPP and we should just send everything to bare JID with store hint and body and save it in MAM forever
Valerianhas left
Valerianhas joined
jonasw
labdsf, why not?
Valerianhas left
labdsf
Because it is impossible to implement any extension that relies on client support on top of that
alacerhas left
Dave Cridlandhas left
Dave Cridlandhas joined
Dave Cridlandhas left
Dave Cridlandhas joined
labdsf
Lets say, replies, editing messages other than the last etc.
alacerhas joined
labdsf
OMEMO has to put encryption keys for *all* devices except the one it is intended for
Dave Cridlandhas left
Dave Cridlandhas joined
Dave Cridlandhas left
Dave Cridlandhas joined
Dave Cridlandhas left
Dave Cridlandhas joined
Dave Cridlandhas left
Dave Cridlandhas joined
lnjhas joined
labdsf
Adding body to OMEMO messages is a kludge also
labdsf
There are two problems with full JIDs: 1. No way to get list of offline resources 2. No reliable delivery to offline resources
labdsf
Both are fixable on server side
Kev
(1) That's what a presence subscription gives you
(2) That's because there's no such thing as an offline resource.
jonasw
Kev, how does presence subscription give you a list of *offline* resources?
Kev
Sorry, I read *online* resources. It also gives you a full list of offline resources - it's an empty list because they don't exist :)
jonasw
heh
Kev
We do need to track offline clients for assorted reasons, but those are offline clients, not offline resources.
labdsf
Ok, "offline resource" means a resource that offline client will use when it reconnect
MattJ
There is no way to know what resource a client will use when it reconnects
MattJ
A resource is a session identifier for an online session only
goffihas left
MattJ
As much as it would be nice to imagine it is a device identifier, it is not - there is no standard for that, and it's not what most clients do
jonasw
(yet)
MattJ
I would like to change both of those things
labdsf
If it randomizes resource every time, it should be fixed IMO, or don't expect to get messages other than those sent to bare JID
jonasw
(I don’t expect messages except those sent to the bare JID.)
jonasw
(and I don’t think we should send normal IM to anything *but* the bare JID.)
MattJ
Agreed
jonasw
labdsf, the right way to handle stuff like XHTML-Im etc. is to provide a sensible fallback for clients which do not support it
jonasw
the protocol must be designed in such a way that legacy clients do the right thing
labdsf
MattJ: agreed to me or jonasw?
MattJ
jonasw, but I do agree that clients should not request a random resource for every session
danielhas left
MattJ
I also agree that a client cannot assume it will get *every* message sent to a full JID, but that one is far less clear
labdsf
Instead of MAM, server can list resources used by offline client for a week or so, with cached capabilities, and store offline messages sent to them for some time
MattJ
and sending to full JID is, like random client-requested resources, something we now want to discourage
MattJ
I already have most of an implementation of that, FWIW
MattJ
But I still don't think that means what you think it means
MattJ
Just because the server can track devices, doesn't necessarily mean they will always have the same resource
MattJ
It's potentially something you don't want to leak to third parties
marmistrzhas left
la|r|mahas left
la|r|mahas joined
danielhas left
danielhas left
danielhas left
danielhas left
j.rhas joined
rishiraj22has left
marmistrzhas joined
flow
yet we do it as soon as a client replies with a message
Kev
We leak resources, we don't necessarily leak devices, because resources and devices aren't a 1:1 mapping over time.
flow
true, I still wonder if we shouldn't try to address that by adding a way to send messages from the bare JID. although I fear that this would probably break some (receiving) clients
jerehas joined
danielhas left
danielhas left
j.rhas joined
rishiraj22has left
rishiraj22has joined
danielhas left
danielhas left
rishiraj22has left
rishiraj22has joined
Valerianhas joined
danielhas left
winfriedhas left
winfriedhas joined
danielhas left
labdsf
flow: or just introduce a virtual "proxy" resource maintained for you by the servet
labdsf
server*
Kevhas left
labdsf
MattJ: what are the drawbacks of "leaking" a list of resources. Third party will know how many devices you have, anything else?
MattJ
Not that I can immediately think of
MattJ
It's not just how many, it's when you use certain devices also
MattJ
e.g. someone can track you between work and home if you have a device in each location
Valerianhas left
MattJ
People used to explicitly set resources like /Home and /Work (well, some clients defaulted to things like that also), but I think we know better than to share things like that by default in 2018
flow
labdsf, the resource string is the only thing between a remote entity and your device. if a remote does know it, they can send stanzas which will very likely reach your device (compared to "probably reach your device"). For example, someone knowing the resource of your mobile could write a script which sends "silent" messages every minute or so, in an attempt to drain your battery without you noticing it
Seve/SouL
MattJ, did you or someone else publish something regarding the newsletter? I've been not able to catch up lately and I wonder if I missed something
rishiraj22has left
Seve/SouL
sorry, not the newsletter, where do I have my braind today...
Seve/SouL
The survey
danielhas left
MattJ
Seve/SouL, not yet
vanitasvitaehas left
alacerhas left
jonasw
flow, itym "reach that specific device" instead of "reach your device"
jonasw
because sending to the bare JID would normally cause the device to receive the message for sure at some point
jonasw
(in the ideal IM-NG world)
Seve/SouL
Ok ok, no rush MattJ, just worried about myself missing stuff :)
Valerianhas joined
flow
jonasw, yes, if we did im-ng, but I deliberatly did not take it into condsideration because there are still many open questions
alacerhas joined
jonasw
flow, help to solve them :)
rishiraj22has left
flow
jonasw, if it only where so easy ;)
rishiraj22has joined
flow
hmm "if it only would be that easy"
jubalhhas joined
kasper.dementhas joined
alexishas joined
danielhas left
alexishas left
alexishas joined
alexishas left
alexishas joined
alacerhas left
lorddavidiiihas left
Kevhas left
lumihas joined
alacerhas joined
jjrhhas left
kasper.dementhas joined
marmistrzhas left
j.rhas joined
alacerhas left
alacerhas joined
karphas left
karphas joined
jjrhhas left
muppethhas left
igor75has left
igor75has joined
muppethhas joined
muppethhas left
igor75has left
j.rhas left
j.rhas joined
igor75has joined
muppethhas joined
lovetoxhas left
sezuanhas left
blablahas joined
muppethhas left
igor75has left
muppethhas joined
igor75has joined
kasper.dementhas joined
alacerhas left
alacerhas joined
lorddavidiiihas left
marchas joined
kasper.dementhas left
lumihas joined
Valerianhas left
Valerianhas joined
Valerianhas left
muppethhas left
igor75has left
muppethhas joined
igor75has joined
lskdjfhas left
Valerianhas joined
kasper.dementhas joined
mrdoctorwhohas joined
lorddavidiiihas joined
pep.has left
andyhas left
Chobbeshas joined
igor75has left
muppethhas left
igor75has joined
muppethhas joined
j.rhas joined
j.rhas joined
Chobbeshas joined
jubalhhas left
lskdjfhas joined
kasper.dementhas left
lumihas joined
danielhas left
tuxhas joined
jjrhhas left
Kevhas joined
houzhenhonghas joined
houzhenhonghas left
kasper.dementhas joined
jjrhhas left
jjrhhas left
danielhas left
muppethhas joined
igor75has left
igor75has joined
doshas joined
igor75has left
igor75has joined
muppethhas joined
Chobbeshas joined
muppethhas left
igor75has left
igor75has joined
kasper.dementhas joined
muppethhas joined
kasper.dementhas joined
jubalhhas joined
kasper.dementhas left
doshas left
Tobiashas left
Tobiashas joined
jubalhhas left
jubalhhas joined
jubalhhas left
jubalhhas joined
Chobbeshas joined
j.rhas joined
kasper.dementhas joined
lorddavidiiihas left
jubalhhas left
kasper.dementhas left
SamWhitedhas left
Dave Cridlandhas left
Dave Cridlandhas joined
rainslidehas joined
rishiraj22has left
rishiraj22has joined
rishiraj22has left
rishiraj22has joined
lorddavidiiihas joined
kasper.dementhas joined
Chobbeshas joined
vanitasvitaehas left
jjrhhas left
Kevhas left
goffihas left
lorddavidiiihas left
sezuanhas joined
Dave Cridlandhas left
Dave Cridlandhas joined
goffihas joined
jubalhhas joined
alexishas left
alexishas joined
jjrhhas left
kasper.dementhas left
labdsfhas left
Dave Cridlandhas left
Dave Cridlandhas joined
danielhas left
Dave Cridlandhas left
Dave Cridlandhas joined
Nekithas left
Nekithas joined
Dave Cridlandhas left
Dave Cridlandhas joined
matlaghas left
matlaghas left
Dave Cridlandhas left
lorddavidiiihas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
alacerhas left
alacerhas joined
ThibGhas left
ThibGhas joined
Andrew Nenakhovhas left
waqashas joined
muppethhas joined
muppethhas joined
matlaghas joined
sezuanhas left
sezuanhas joined
Andrew Nenakhovhas joined
igor75has left
muppethhas left
sezuanhas left
sezuanhas joined
muppethhas joined
igor75has joined
Andrew Nenakhovhas left
tahas joined
Andrew Nenakhovhas joined
rainslidehas left
alexishas left
Valerianhas left
Valerianhas joined
Valerianhas left
Andrew Nenakhovhas left
SamWhitedhas left
Chobbeshas joined
marmistrzhas left
alacerhas left
Andrew Nenakhovhas joined
efrithas joined
blablahas left
blablahas joined
alexishas joined
efrithas left
efrithas joined
efrithas left
efrithas joined
lskdjfhas left
Chobbeshas joined
la|r|mahas left
efrithas left
efrithas joined
lskdjfhas joined
ralphmhas left
Dave Cridlandhas left
Dave Cridlandhas joined
Chobbeshas joined
Yagizahas joined
j.rhas joined
alexishas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
alexishas left
alexishas joined
la|r|mahas joined
alexishas left
la|r|mahas joined
la|r|mahas joined
goffihas left
la|r|mahas joined
la|r|mahas joined
la|r|mahas joined
la|r|mahas joined
efrithas left
efrithas joined
efrithas left
vanitasvitaehas left
efrithas joined
la|r|mahas joined
Andrew Nenakhovhas left
alexishas joined
labdsfhas left
Andrew Nenakhovhas joined
Dave Cridlandhas left
Dave Cridlandhas joined
vanitasvitaehas left
j.rhas joined
kasper.dementhas joined
j.rhas joined
danielhas left
jubalhhas joined
moparisthebesthas left
vanitasvitaehas left
ralphmhas joined
rainslidehas joined
j.rhas joined
j.rhas joined
marmistrzhas left
Dave Cridlandhas left
danielhas left
rainslidehas left
kasper.dementhas left
Dave Cridlandhas joined
jubalhhas joined
jubalhhas joined
Dave Cridlandhas left
kasper.dementhas joined
Lancehas joined
marmistrzhas left
alacerhas joined
doshas joined
lskdjfhas joined
lskdjfhas joined
kasper.dementhas left
muppethhas joined
tahas joined
tahas joined
rionhas left
jubalhhas joined
muppethhas joined
marmistrzhas left
jubalhhas joined
jubalhhas left
jubalhhas joined
Lancehas left
efrithas left
Tobiashas joined
Tobiashas joined
Valerianhas joined
anjanhas left
la|r|mahas joined
la|r|mahas left
alacerhas left
Lancehas joined
Nekithas left
Nekithas joined
Tobiashas left
danielhas left
Tobiashas joined
ralphmhas left
lskdjfhas left
lskdjfhas left
Dave Cridlandhas left
Dave Cridlandhas joined
Dave Cridlandhas left
Dave Cridlandhas joined
tahas left
tahas joined
kasper.dementhas joined
goffihas joined
sezuanhas left
rishiraj22has left
rishiraj22has joined
jubalhhas left
jubalhhas joined
Lancehas left
danielhas left
lorddavidiiihas left
jubalhhas joined
jubalhhas joined
labdsfhas left
kasper.dementhas left
moparisthebesthas joined
lorddavidiiihas joined
Guushas left
Guushas joined
marmistrzhas joined
jubalhhas joined
jubalhhas joined
labdsfhas left
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
j.rhas left
j.rhas joined
jjrhhas left
marmistrzhas left
j.rhas left
j.rhas joined
kasper.dementhas joined
SaltyBoneshas left
SaltyBoneshas joined
lskdjfhas joined
lskdjfhas joined
Lancehas joined
moparisthebesthas joined
lskdjfhas left
lskdjfhas left
kasper.dementhas left
marmistrzhas left
Lancehas left
danielhas left
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
kasper.dementhas joined
Chobbeshas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
anjanhas left
rishiraj22has left
Andrew Nenakhovhas left
rishiraj22has joined
Andrew Nenakhovhas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
danielhas left
danielhas left
kasper.dementhas left
moparisthebesthas joined
kasper.dementhas joined
SamWhitedhas left
Dave Cridlandhas left
Dave Cridlandhas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
alexishas joined
jubalhhas joined
alexishas left
alexishas joined
Yagizahas left
kasper.dementhas joined
rishiraj22has left
goffihas left
Chobbeshas joined
Chobbeshas joined
alexishas joined
anjanhas joined
alexishas left
alexishas joined
alexishas left
lnjhas left
anjanhas left
tahas left
tahas joined
moparisthebesthas joined
alexishas joined
sezuanhas joined
marmistrzhas left
kasper.dementhas joined
rionhas joined
Kevhas left
alexishas joined
Valerianhas left
tuxhas joined
j.rhas joined
kasper.dementhas left
kasper.dementhas joined
rishiraj22has left
doshas left
alexishas joined
danielhas left
moparisthebesthas joined
kasper.dementhas left
ralphmhas joined
efrithas joined
kasper.dementhas joined
rionhas left
marchas left
labdsf
flow, what if someone sents silent messages to bare JID?
efrithas left
jubalhhas joined
labdsf
MattJ, where can I find your implementation of offline message delivery?
j.rhas joined
MattJ
labdsf: on my laptop
labdsf
so it is not in https://hg.prosody.im/trunk/ yet?
MattJ
No
MattJ
It will probably be in prosody-modules first
MattJ
Too much of this is new and experimental
labdsf
is there any description of it, maybe in ML?
MattJ
But I am writing it with the full intention of it replacing the current code we have
MattJ
No, and to be honest I have mostly avoided talking about it until recently
MattJ
There is not really anything to discuss
MattJ
For the initial implementation it will need no protocol changes, and no client changes
labdsf
but still, you will keep disconnected resources around, they will be seen in presence and it will be possible to send messages to them, right?
MattJ
No, as I said earlier a resource is not a device
MattJ
I am not trying to change that
MattJ
Prosody will track devices, but that does not necessarily mean sessions will have predictable resource strings
alexishas joined
labdsf
if some client uses the same resource string on every connection, and no other client uses the same resource string, the message will be delivered to that device only?
MattJ
Send a message to a full JID, use no-copy and Prosody will deliver to that device only
labdsf
and if there is no no-copy, it is delivered to some other resource, as per https://xmpp.org/extensions/xep-0160.html ?
SamWhitedhas left
MattJ
As I wrote, I am not trying to change any protocols or behaviour beyond what should reasonably be expected
MattJ
If the device is online when you send the message, it is not an offline message
MattJ
It will go to that device
MattJ
If you send to a resource that is not online, core routing rules apply as always, it will be redirected
MattJ
If all devices are offline it's an offline message
alexishas left
marmistrzhas left
labdsf
what happens if there is some device online, message has no no-copy and resource it is sent to 1) was used before 2) was never used before
labdsf
and what if there is no-copy and resource was never used before, message is lost?
alexishas joined
kasper.dementhas left
MattJ
You're over-thinking it... the answer to all the questions is essentially: "exactly the same as happens now"
MattJ
Whether a resource was used before is completely irrelevant - resources are temporary, and they belong to a session
MattJ
Prosody is not tracking resources, it is not making resources persistent in any way
MattJ
Prosody is tracking devices. Devices != resources
labdsf
how does it track devices, besides the resource string they request on connection?
MattJ
XEP-0198 session token is another way, for example
MattJ
A client could try to resume a session, fail (because the session timed out), and then it goes on to bind a completely random resource
MattJ
Same device, different resource
alexishas joined
Zash
Except not, because the device was killed by the OS and all that was lost
marmistrzhas joined
labdsf
the device can try to save SM id in some persistent database
MattJ
Zash, tangential to the devices != resources point :)
Zash
Possibly
MattJ
labdsf, I would eventually like bind2 or some alternative to be implemented, and allow the client to unambigously send a unique id
MattJ
But as I mentioned, my current scope involves no protocol changes
MattJ
After it's done, bind2/something will become more of a priority
daniel
saving the id only wont help you. you'd have to save the entire state
MattJ
Yeah
daniel
but on mobile the push target is another nice id for the device
daniel
clients will enable that in every session
waqashas left
MattJ
Ah, good point, thanks :)
daniel
but maybe too late depending on what you are trying to do
alexishas left
MattJ
No, it's easily extended to that
MattJ
Though I would like the push target to become part of bind as well
kasper.dementhas joined
alexishas joined
MattJ
Kinda "this is another way to reach me" metadata associated with the session
jjrhhas left
danielhas left
lorddavidiiihas left
kasper.dementhas left
j.rhas joined
SamWhitedhas left
Kevhas left
kasper.dementhas joined
SamWhitedhas left
valohas left
Chobbeshas joined
ThibGhas joined
valohas joined
ThibGhas joined
danielhas left
danielhas joined
Guushas left
Guushas joined
labdsf
MattJ, how is it different from mod_smacks_offline?
labdsf
it just places message for offline delivery, and you try to deliver it to the correct device instead?
MattJ
mod_smacks_offline is not ideal, it doesn't work with multiple resources online
labdsf
it just delivers to the resource with highest priority?
MattJ
If deviceA and deviceB are both online, if deviceB goes offline and does not resume, and there is an unacked message in the queue, there is a question about what to do
MattJ
It can't save it to the offline message store, because there is another device still online
MattJ
it could send it to that other device
MattJ
but that device possibly already received it
MattJ
via bare-JID forking or through carbons
MattJ
etc.
kasper.dementhas joined
MattJ
so you end up with duplicated messages or bounced messages. In the case of a single resource going offline, with no other resources, it's simple to just save it to the offline store
MattJ
Next resource to log in receives it
labdsf
ok, current default is that it is just lost
labdsf
and what will you do instead with the new code?
MattJ
Current default (mod_smacks) is to send an error reply to the sender
j.rhas joined
MattJ
Which works fine, and is the safe option
MattJ
...except when the sender has gone offline
Zash
or ignore all of that and Just Use MAM™
MattJ
labdsf, new code tracks devices and what stanzas/messages they need to receive
jjrhhas left
MattJ
which means the mod_smacks problem is solved, because the code can focus on delivery to a single device, and not worry about whether other resources are online/offline/etc.
MattJ
so at the time of forking/carbons/etc. that is when it gets decided what device receives what stanza
MattJ
Instead of 5-15min later "Oops, that failed to deliver, now where should we send it?"
rainslidehas joined
labdsf
MattJ, so what will be different, you will try to identify deviceB even after timeout?