-
lovetox
no
-
lovetox
why? so MAM does archive it?
-
lovetox
or so clients that dont support direct can display something
-
Ge0rG
lovetox: both of those, yeah
-
Ge0rG
also for Carbons to work
-
flow
appears that including a fallback body should become a pattern (at least in some cases)
-
Ge0rG
flow: it's been a pattern for twenty years
-
Ge0rG
most MUC implementations send a fallback body in direct invites.
-
Ge0rG
it's also mostly very ugly
-
flow
then it's not a widely known one and at least not specifies in xep249✎ -
flow
then it's not a widely known one and at least not specified in xep249 ✏
-
flow
Ge0rG, sending a fallback body with xep249 direct muc invitations is ugly? care to elaborate?
-
Ge0rG
flow: feel free to PR, I guess
-
Ge0rG
flow: no, the fallback body generated by MUC implementations is ugly
-
Zash
The direct invite included in the meditated invite is also fun
-
Ge0rG
flow: it would be great to have a small section in 0249 discussing that a) a fallback body MAY be added by the sender and that if it is added, it MUST NOT contain any information that's not in the <x/>, so that it is safe to ignore by compliant implementations
-
lovetox
when do i want to send an directed invite instead of a mediated one?
-
jonas’
lovetox, when your recipient filters messages from strangers
-
lovetox
i cant know that
-
jonas’
(since the MUC is going to be a stranger)
-
jonas’
exactly
-
jonas’
so the answer is "always, unless you have to go mediated because of ACLs"
-
lovetox
so it cant be factor in my decision
-
lovetox
but mediated invite adds automatically to member list
-
jonas’
that’s what I meant
-
jonas’
if you are in members-only and you are not an admin, you have to go mediated
-
jonas’
if you are in members-only and you are an admin, you add them to the member list and send direct
-
jonas’
otherwise, you send direct
-
lovetox
omg, way too complicated
-
jonas’
yes
-
lovetox
somebody should write some flowchart
-
jonas’
I just did :)
-
jonas’
in text form tho
-
lovetox
flowchart in text form i have to remember that :D
-
flow
lovetox, "way too compliacted" implies that there is a less complicated way. Please share that :)
-
lovetox
i dont see how one implys the other
-
Zash
0401 ish flow for MUC?
-
lovetox
quantum physic is also way to complicated for me, that does not mean there is an easier way :)
-
jonas’
+------------------+ +-----------------+ +-------------------+ | | yes | | no | | | is members-only? +------->+ am admin? +------------->+ send mediated | | | | | | | +--------+---------+ +--------+--------+ +-------------------+ | | | |yes |no v | +--------+--------+ | | | | | add as member | | | | | +--------+--------+ | | | | | v | +--------+--------+ | | | +----------------->+ send directed | | | +-----------------+✎ -
jonas’
https://paste.debian.net/hidden/727768a8/ ✏
-
flow
oh, now the nice flow chart is gone :(
-
jonas’
flow, it was only nice if you have a mono-spaced font
-
lovetox
great thanks jonas’
-
flow
ahh true :)
-
jonas’
lovetox, if you’re smart, you put this somewhere sane ;)
-
jonas’
because that paste expires in 7d
-
flow
PR that in xep45, otherwise it will be gone forever in 7d?
-
jonas’
flow, maybe rather in the XEP for invites?
-
flow
or that
-
jonas’
https://xmpp.org/extensions/xep-0249.html
-
flow
jonas’, I wonder: was that hand crafted or did you use some tool?
-
jonas’
asciiflow.com✎ -
jonas’
http://asciiflow.com ✏
-
jonas’
flow, note that it has nothing to do with re-encoding you in ASCII, no worries.
-
flow
Yes, good, I like my DNA-based encoding
-
lovetox
and how to deal with invites received through MAM?
-
lovetox
obviously i check if its already in my bookmarks, but what if not?
-
lovetox
check the date? and only show if its the near past?
-
flow
lovetox, sadly the MAM archive does not contain the information if the user decided to not follow the invitation
-
Zash
Joining every room I was ever invited to is a bit annoying, so don't do that maybe
-
flow
one could store rejected invitations with a timestamp in a private pep node
-
lovetox
yeah wondering how clients deal with that which implement auto join on invite
-
Martin
> check the date? and only show if its the near past? Can you create something like a bookmark withe 'do not join, declined' info?✎ -
Martin
> check the date? and only show if its the near past? Can you create something like a bookmark with 'do not join, declined' info? ✏
-
flow
Martin, you can
-
Martin
Ah, what flow said.
-
flow
but someone has to implement it ;)
-
jonas’
if only we had a mechanism where the server tracks inbound requests and ack/naks for those
-
lovetox
but i can decline a invite, why would it not be stored in mam?
-
lovetox
its a message
-
flow
there is not really a nack for rejected invitations?
-
Zash
``` $ graph-easy --as=ascii <<. graph "test" { foo -> { bar boo } -> baz } . +-----+ +-----+ | boo | <-- | foo | +-----+ +-----+ | | | | | v | +-----+ | | bar | | +-----+ | | | | | v | +-----+ +-------> | baz | +-----+ ```
-
jonas’
in groupchat 1.0, (mediated) invites could’ve been presence subscription requests which are indeed tracked by the server. Doesn’t solve it for the non-insane post-GC-1.0 world, nor for mediated invites, but it still crossed my mind.
-
Zash
Pretty sure there's a way to reject invites
-
Zash
https://xmpp.org/extensions/xep-0045.html#example-59
-
flow
Nice, so problem solves?✎ -
flow
Nice, so problem solved? ✏
-
jonas’
not for '249 though?
-
Zash
Could also keep bookmarks around for some with autojoin=false after you left
-
Zash
Maybe invent a bookmarks2 'trash' flag?
-
flow
can't xep239 simply re-use xep45 decline (even though it currently states to silently discard)✎ -
flow
can't xep249 simply re-use xep45 decline (even though it currently states to silently discard) ✏
-
Zash
What if you accept, but later leave?
-
flow
Zash, dunno, using muc bookmarks for mucs you are not really interested in seems not right
-
Zash
And then a fresh client syncs MAM, sees the invite and joins the room that you wanted nothing to do with anymore.
-
flow
meh
-
Zash
Needs more flowcharts!
-
Ge0rG
you *could* reject an invite, but why should you?
-
Zash
invited -> rejected -> ensure rejection is saved somewhere invited -> accepted -> bookmarked -> leave -> ???
-
Ge0rG
autojoin=1 -> yes, autojoin=0 -> keep in mind but don't join, autojoin=-1 -> blacklisted!
-
Zash
but it's a boolean
-
Ge0rG
autojoin=0 -> keep in mind but don't join, autojoin=n -> blacklisted!
-
Ge0rG
won't prosody keep the actual textual representation in the store?
-
Zash
Other clients parsing and re-serializing it tho?
-
Ge0rG
Zash: who cares about other clients?
-
Ge0rG
oh wait, you can just block the room JID and manually compare direct invites to the blocklist
-
Zash
Heh, hacky but I suppose it would work
-
Zash
And it would prevent unknowing clients from joining
-
Ge0rG
lovetox: there is one more reason for direct invites: you might want to auto-join invites to private rooms from a contact, because insta-chats. And you can't ensure that a mediated invite really came from a contact and not from a malicious MUC
-
flow
Zash> And it would prevent unknowing clients from joining hopefully with a nice error message instead of a silent timeout
-
flow
i'm also not sure about the UX if the user afterwards decides that to join the room
-
Zash
Blocking command mandates an error iirc
-
Zash
Hm
-
flow
what would be the 'from' value of the iq error?
-
Zash
> If the user attempts to send an outbound stanza to the JID, the user's server MUST NOT route the stanza to the JID but instead MUST return a <not-acceptable/> error [...] https://xmpp.org/extensions/xep-0191.html#block https://xmpp.org/extensions/xep-0191.html#example-9
-
Zash
flow, /error/@by is what you mean
-
Zash
@to & @from are always swapped for replies
-
flow
ahh good then
-
Zash
Not sure we set that tho, better check
-
Zash
It's not in the example, so probably not :)
-
Zash
Heh, indeed
-
pep.
> Zash> but it's a boolean or why one shouldn't represent booleans as integers :(
-
Ge0rG
pep.: as we all know, the correct represntation for booleans is ["YES", "Norway"]
-
pep.
:D
-
jonas’
I’ll just leave this here: $ host omdathetkan.monshouwer.org omdathetkan.monshouwer.org is an alias for https://omdathetkan.monshouwer.org. https://omdathetkan.monshouwer.org has address 195.191.112.29 https://omdathetkan.monshouwer.org has IPv6 address 2a02:990:100:1:0:d05::
-
jonas’
(re that discussion the other day about nameprep being not strict enough)
-
flow
jonas’, hmm, I am not sure if (other) non-LDH labels should appear on the wire
-
jonas’
non-LDH?
-
flow
ldh: letters digist hypen✎ - flow
-
flow
ldh: letters digits hyphen ✏
-
flow
it was my understanding that essentially only those are allowed in the wire protocol
-
jonas’
what about _xmpp-server
-
jonas’
there was a fun discussion in #powerdns on OFTC a few minutes back (after I asked if '&' (U+0026) is valid in DNS labels) and DNS isn’t actually strict about that
-
flow
those are underscore labels
-
flow
dns is like 1000s of RFCs, so its kind of complicated
-
flow
plus registries are lax when it comes to compliance
-
flow
which kinda forces implementations to become a little bit lax too
-
jonas’
compliance to what even
-
flow
the RFCs i'd assume
-
flow
hmm it was pretty sure the kind of labels which are allowed on the wire is specified somewhere
-
jonas’
flow, maybe you meant: https://tools.ietf.org/html/rfc1035 <label> ::= <letter> [ [ <ldh-str> ] <let-dig> ] <ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str> <let-dig-hyp> ::= <let-dig> | "-" <let-dig> ::= <letter> | <digit> <letter> ::= any one of the 52 alphabetic characters A through Z in upper case and a through z in lower case <digit> ::= any one of the ten digits 0 through 9
-
jonas’
but that seems to be generally understood more as "guideline" than as "rule" by the DNS community
-
flow
yes and no, that's one of the very first of DNS related RFCs
-
flow
there are many updates to this
-
jonas’
idneed✎ -
jonas’
indeed ✏
-
jonas’
but if the powerdns folks tell me that, I’m not going to argue ;)
-
jonas’
I don’t want to be *that* person who tries to point at RFCs in a field they don’t know about in front of the folks implementing them all day ;)
-
flow
jonas’, they tell you it is valid?
-
jonas’
yes
-
flow
could very well be, as I said i'm not sure
-
jonas’
I hear that there are not really restrictions
-
jonas’
there’s something for "hostnames", but that’s irrespective of DNS
-
jonas’
as you can see, the https:// stuff passing right through
-
jonas’
powerdns will reject & and ; with the SQL backend tho
-
flow
and '://' is not really the intersting part of the ASCII range✎ -
jonas’
so no fun to be had with ".domain.example and XML
-
flow
and '://' is not really the interesting part of the ASCII range ✏
-
Zash
Ge0rG, you might enjoy `dig 🤖️.zash.se txt +noidnin`
-
jonas’
I get NXDOMAIN
-
jonas’
but that may be copy/paste issues
-
Zash
`dig txt bender.zash.se` but it gets escaped :(
-
flow
ahh, possible that https://tools.ietf.org/html/rfc2181#section-11 is still in effect
-
flow
which means binary fun
-
flow
still LDH label is what you usually want to see on the wire, and underscore labels of course
-
flow
https://tools.ietf.org/html/rfc5890#section-2.3.1 has a nice overview
-
jonas’
"want" :>
-
jonas’
again, I’m not going to dig into that now
-
flow
@ c query ("🤖.zash.se", org.minidns.record.Record.TYPE.TXT) java.lang.IllegalArgumentException: java.text.ParseException: An unassigned code point was found in the input 🤖
-
Zash
eheehehehhee
-
jonas’
bedtime
-
flow
hmm, which is kinda strange, as the robot was added in unicode 8 and this is java 11 which should support unicode 10
-
flow
or do I have that shell switched to an older JRE…
-
flow
but bedtime sounds good :)