jdev - 2026-08-23


  1. Cynthia

    I heard most XMPP servers require TLS or STARTTLS

  2. Cynthia

    But what if it's hosting over WebSocket

  3. Cynthia

    I don't think it can do STARTTLS in WebSocket, so I'm assuming it's either the connection is already TLS or it won't connect

  4. moparisthebest

    Cynthia: yea tls over websocket, hopefully no real client in 2026 would connect without tls

  5. nicoco

    I have been working on serving avatars via http instead of in-band in slidge. For "contacts", XEP-0084 specify how to do that, it's great. For MUC participants however, vcard-temp has no defined syntax. Am I going to jail if I add a XEP-0084 metadata in presences of participants, eg: ```xml <presence xmlns="jabber:component:accept" from="room@aim.shakespeare.lit/juliet" to="romeo@montague.lit/gajim"> ... <x xmlns="vcard-temp:x:update"> <photo>{hash}</photo> </x> <metadata xmlns="urn:xmpp:avatar:metadata"> <info bytes="547" height="5" id="{hash}" type="image/png" url="https://upload.test/profile/{hash}/avatar.png" width="5" /> </metadata> </presence> ```

  6. nicoco

    I have been working on serving avatars via http instead of in-band in slidge. For "contacts", XEP-0084 specifies how to do that, it's great. For MUC participants however, vcard-temp has no defined syntax. Am I going to jail if I add a XEP-0084 metadata in presences of participants, eg: ```xml <presence xmlns="jabber:component:accept" from="room@aim.shakespeare.lit/juliet" to="romeo@montague.lit/gajim"> ... <x xmlns="vcard-temp:x:update"> <photo>{hash}</photo> </x> <metadata xmlns="urn:xmpp:avatar:metadata"> <info bytes="547" height="5" id="{hash}" type="image/png" url="https://upload.test/profile/{hash}/avatar.png" width="5" /> </metadata> </presence> ```

  7. lovetox

    i mean, we dont make http queries without user interaction in MUCs

  8. lovetox

    so .. i dont see Gajim doing that for hundreds of avatars

  9. lovetox

    you can add whatever you want to a stanza, i would expect it under a custom namespace though

  10. nicoco

    it is the metadata element, why wouldn't I use the same namespace?

  11. nicoco

    I get your point about gajim not doing anything with it but I suspect edhelas will be interested for movim :)

  12. nicoco

    (arguably, you could whitelist the user's *.example.com for user@example.com though)

  13. nicoco

    (arguably, you could whitelist the *.example.com for user@example.com though)

  14. nicoco

    (arguably, you could whitelist *.example.com for user@example.com though)

  15. lovetox

    in theory i would say if you take a namespace and repurpose it in a different context without having documented in a spec, you run the risk that a later spec does something different with it

  16. lovetox

    but i guess the chances of this happening here are low

  17. lovetox

    > (arguably, you could whitelist *.example.com for user@example.com though) its not about downloading something dangerous, its about revealing your IP in public MUCs

  18. lovetox

    also do you not leak the domain of the muc occupant with this?

  19. lovetox

    or is this for private chats only?

  20. nicoco

    > its not about downloading something dangerous, its about revealing your IP in public MUCs sure, but I mean if the gajim user is user@example.com, I don't think leakage to *.example.com is an issue

  21. lovetox

    i guess this is for gateways, and the domain points at a gateway?

  22. nicoco

    it is for gateways yes

  23. nicoco

    and with the most typical slidge setup, the domain is going to be upload.example.com for everybody yeah

  24. nicoco

    and with the most typical slidge setup, the domain is going to be upload.example.com for all participants yeah

  25. lovetox

    but if i have the real jid of the user, why would i need this metadata url? if i dont know the hash, i request the metadata pubsub node and get the url myself

  26. lovetox

    seems like a very micro optimization

  27. lovetox

    i guess you spare one pubsub request vs the additional traffic on all presences

  28. nicoco

    true. but there is vcard-temp already in the presence, so might as well push that metadata in there too. maybe sunken costs fallacy as I implemented "serving avatars through HTTP" and want to make it easy for clients to use them if they feel like it :)

  29. lovetox

    and the reason to do this via http is to not block the xmpp stream?

  30. lovetox

    or what is the problem that this solves

  31. nicoco

    not block is a reason. providing higher res avatars is another

  32. nicoco

    conversations implemented fetching avatars via http to get better resolution (after getting the URL via pubsub, not the in-presence metadata that we discussed)

  33. lovetox

    because the avatar was to big to put it on the stream?

  34. lovetox

    probably, yeah the xmpp stream blocking is a probelm indeed

  35. lovetox

    im not sure where C uses these avatars, every avatar is tiny for me in C

  36. lovetox

    i did not see avatar resolution as lacking until now, but maybe i never saw a client with high res ones :D

  37. marios

    What is the most optimal checking a client should do to a TLS/SSL certificate without rejecting a ton of servers?

  38. nicoco_

    > im not sure where C uses these avatars, every avatar is tiny for me in C lovetox: Few people have updated their avatars, but if you set a highres avatar, C will upload it fullres (with the 'profile' purpose) and advertise the URL as another metadata/info.

  39. nicoco_

    AFAIK C will not fetch anything in band if it sees a metadata/info/url

  40. nicoco_

    Also, prosody mod_http_file_share does not support the upload 'purpose' (yet?)

  41. lovetox

    marios, you should leave that to your TLS lib

  42. lovetox

    either your TLS lib notifies you that the cert is invalid, then you abort the connection, or it is fine, then you continue

  43. marios

    lovetox: I do leave that up to the TLS lib, but how about the non-standard TLS attributes like the otherName/dNS name

  44. lovetox

    either your TLS lib can validate / use them, or you simple not use them

  45. lovetox

    never heard of that being used or a problem, FYI, do you have a user that reports a problem with that?

  46. marios

    they were just mentioned in the RFC6120 and I was curious if they were actually used nowadays and if I need to handle them

  47. lovetox

    hm, reading this the first time, never heard in the last 10 years anyone talk about this, so my gut feeling would say this is not used, but maybe wait for some other opinions, maybe i learn something new today :

  48. lovetox

    hm, reading this the first time, never heard in the last 10 years anyone talk about this, so my gut feeling would say this is not used, but maybe wait for some other opinions, maybe i learn something new today :)

  49. marios

    would not be surprised at all, if that actually was the case. Ty tho!

  50. marios

    haven't seen them mentioned in any guides for setting up some server certs too

  51. moparisthebest

    marios: not used because no CAs will issue a cert with them because google forbids it

  52. marios

    moparisthebest: I see, thanks, not surprised

  53. marios

    moparisthebest: I see, thanks, not surprised by google forbidding it

  54. Sunglocto

    does anyone here know if any XMPP client actually supports sending one message with two different bodies in different languages

  55. theTedd

    Not that I've seen, but it's more likely to be used for automated messages/announcements

  56. villain

    how is the experience of xmpp.rs for anyone who used it?

  57. villain

    I thought about using it for a project of mine (I won't say much about what it is but it is mainly client-side work)

  58. villain

    I had some concerns about using it but it seems to be fine

  59. luca

    I used it for a simple command based bot and it worked just fine

  60. villain

    good to know

  61. villain

    my project is likely gonna be far bigger than that, and it is not a bot, so I don't know how well xmpp.rs will do for my use case

  62. luca

    If you want more appropriate advice or feedback maybe ask in xmpp:chat@xmpp.rs?join ?

  63. luca

    Or are you looking for other libraries and maybe in other languages

  64. luca

    (Or just what other projects in XMPP use)

  65. dwd

    villain, Are you using LLMs for coding? If so, XMPP's specs are good enough that expanding any existing library is very easy.

  66. luca

    (Also here's my little bot for what is worth https://git.lucamatei.com/factorio-restart.git/ )

  67. villain

    yeah, I will be using LLMs here

  68. villain

    > Or are you looking for other libraries and maybe in other languages I am exploring the options, and I have mostly decided on Rust for the project

  69. luca

    In that case I don't think xmpp.rs is for you. At least not for contributing under their guidelines https://gitlab.com/xmpp-rs/xmpp-rs/-/raw/main/CONTRIBUTING.md

  70. villain

    I would be consuming the library rather than developing it, but yeah, it would be a problem if I wanted to get fixes into the library

  71. singpolyma

    Can always fork

  72. villain

    I was planning to do that with one of the libraries if xmpp.rs doesn't work out for me

  73. villain

    there are definitely plenty of options to choose from