Gajim - 2015-04-04


  1. luis Greetings! How can I (which fonts, etc) see all emoticons that Conversations (Android XMPP client) sends? It seems I'm missing the correct font. I'm using KDE/Archlinux. Any hints of packages or downloads?
  2. luis I've found some "emoji" packages for pidgin and I've also installed all emoticons from the plugins.
  3. Link Mauve I published a Twemoji emoticons set in gajim-plugins, for that exact issue.
  4. Link Mauve Alternatively, you could install a font like Symbola which has many of those astral plane emoticons.
  5. bot RSS: Feeds for Gajim • Ticket #8010 (Gajim sends CSN when it must not) created Bug description Gajim is sending CSNs to a full JID that it's not allowed to send them to, and is then getting into an infinite loop. Thank you to Kev and Link Mauve from chat room jabber@conference.jabber.org. Steps to reproduce Enter to a channel when non-members are not allowed to send PMs. Attempt to send a PM. Error 403: Forbidden Close tab. Tab reopene[…] https://trac.gajim.org/ticket/8010
  6. Darlan Do not send chat state upon receiving 403 code.
  7. bot RSS: Feeds for Gajim • Ticket #8010 (Gajim sends CSN when it must not) updated Description changed https://trac.gajim.org/ticket/8010#comment:1
  8. Darlan Emoticons should be available in the same method Plugins are, instead of combining emoticons as a plugin or as plugins.
  9. Darlan Do not send chat state upon receiving code 403 or forbidden.
  10. canvon Hi. Has anyone had a look at #8007? It should be pretty easy to fix.
  11. canvon It seems there is already code for this in src/common/socks5.py (lines 1413 - 1420) that could be reused
  12. canvon All that would be needed is the setsockopt() call that disables IPV6_V6ONLY. This flag exists on Linux as well, and is disabled there by default. But explicitly disabling it would be needed not only on Windows, but on some BSDs, too.
  13. Asterix canvon: could you test if I build a package for you?
  14. canvon The setsockopt(IPPROTO_IPV6, IPV6_V6ONLY, 0) call should probably be inserted in common/zeroconf/client_zeroconf.py, class ZeroconfListener, def bind, after line 73 (where already setsockopt()s are set). But I can't do the change myself as I don't have a development environment on the Windows machine.
  15. canvon Asterix: Yes, that would be nice.
  16. Asterix building ...
  17. Asterix uploading ...
  18. canvon Thanks. :) Will this be just the .exe or .pyd to replace, or a full installer?
  19. Asterix full installer
  20. canvon Any problems with installing from installer again when already installed?
  21. Asterix no, it will just ask you to unsinstall before re-installing.
  22. canvon OIC
  23. Asterix https://gajim.org/downloads/snap/win/gajim-0.16.1-zeroconfv6.exe
  24. canvon installing...
  25. canvon https://paste.gajim.org/view/adec1d15 - NameError: global name 'os' is not defined
  26. canvon "import os" missing?
  27. canvon And I'm not sure how correct the code from socks5.py is; it explicitly checks for ver[3] ver[0] to be 2 6. But it better should also be run on a later version
  28. canvon Away for 1-2 hours. Thanks so far!
  29. Asterix building a new one
  30. mase [ERROR: This message is encrypted, and you are unable to decrypt it.]
  31. mase hi! how does the new xep-0313 feature look like? does it only fill the history which i can browse, or does it fill up the current conversation with the missed messages? the second one would be my prefered behaviour.
  32. canvon Asterix: _v2 is working! \o/ This would close #8007. Thank you!
  33. canvon *_2
  34. canvon ... Now the Windows machine can be contacted, and it can answer back. This is all running over IPv4, mind you, as the Windows machine only registers for IPv4 with Bonjour.
  35. canvon But I'm having problems with link-local from one gajim-on-linux to another, both registered with avahi for IPv4 and IPv6.
  36. canvon Is link-local XMPP with IPv6 supposed to work, yet?
  37. Link Mauve Asterix, btw, there was someone else who had an issue with Avahi too: https://conference.gajim.org:5281/muc_log/gajim/2015-03-27/#11:40:43
  38. canvon Oh, the Linux machines are still using gajim 0.15.1 (Debian stable), and 0.16.1 has in the changelog: "Fix sending Zeroconf messages"
  39. canvon So I should better test with a current version, first.
  40. canvon ... The Windows machine with fixed Gajim can't answer back to GNOME3 Empathy 3.4.2.3-2+deb7u1 with telepathy-gabble 0.16.7-0+deb7u1 (which tries to provide link-local XMPP, too), FWIW.
  41. canvon (Oh, no. The link-local part is supposed to come from telepathy-salut, 0.8.1-1)
  42. canvon The Empathy machine is keeping a connection to the Windows machine open indefinitely. The Windows machine is opening up a new connection for answering, on which both sides exchange XML. Then the Empathy machine is sending "<stream:features/></stream:stream>\n" in a TCP ACK + Push + FIN packet, and both sides close the connection again.
  43. canvon Gajim is not putting the sent message into the scrollback buffer, and not giving out some error/warning either. Neither a timeout after some time.
  44. canvon Perhaps Empathy/telepathy-salut doesn't like a second connection being opened for the same link-local contact? But Gajim does not seem to handle the immediately closed connection well.
  45. canvon Perhaps I should file another ticket ...
  46. canvon https://trac.gajim.org/ticket/8011#ticket
  47. bot RSS: Feeds for Gajim • Ticket #8011 (Gajim can't answer link-local XMPP to GNOME3 Empathy/telepathy-salut) created We start with sending a message from an Empathy/telepathy-salut Machine (Debian 7) to a Windows machine (Gajim 0.16.1-zeroconfv6_2 on Windows 7). The Empathy machine is keeping a connection to the Windows machine open indefinitely. When the user tries to send an answer message, the Windows machine is opening up a new connection, on which both sides exch[…] https://trac.gajim.org/ticket/8[…]
  48. canvon I'm trying to run hg gajim on Debian 7, now.
  49. canvon With python3 I get invalid syntax for the closing ' in: windowsify(u'certs')
  50. louiz’ You don’t have the latest python3
  51. canvon With python 2.7.3 I get invalid syntax for the = in print(_([...] file=sys.stderr)
  52. canvon Well, I only got Debian stable python3 :(
  53. louiz’ :(
  54. canvon Well, that should fix itself when Debian 8 is released 2015-04-25 (if they make it)
  55. Link Mauve canvon, `hg up gajim_0.16` to get the latest version supporting python2.
  56. canvon Link Mauve: Thanks, it works!
  57. canvon But does it include the zeroconf fixes from 0.16.1? (I'm new to hg, I'm not even able to get the list of existing branches or such...)
  58. Link Mauve Yeah, it should.
  59. Link Mauve `hg heads` will give you that, but apparently 0.16.1 never got tagged…
  60. canvon (thanks)
  61. canvon Well...
  62. canvon I'm having unnecessary(?) problems with hg gajim to Debian stable gajim
  63. canvon It tries IPv6 only, while stable gajim is registered IPv4 only
  64. canvon (And listening on IPv4 only)
  65. canvon Why does hg gajim try IPv6 at all, and why IPv6 only?
  66. canvon (link-local XMPP)
  67. Link Mauve At all, because IPv6 is good and you should use it; only, is probably a bug you could report.
  68. canvon I run a native IPv6 network with Unique Local addresses; yeah, it's good! ;)
  69. canvon But the other side is listening on IPv4 only, and reporting IPv4 only via avahi
  70. Link Mauve On many systems dual-stack is enabled, meaning any IPv6 socket will automatically be bound to IPv4 as well by the kernel, and receive incoming connections as ::ffff:some.ip.v.4
  71. Link Mauve My guess is that this change got tested on such a system, and thus broke on your system without dual-stack enabled.
  72. canvon both systems are dual-stack enabled; only the other side, gajim 0.15.1, seems to be IPv4 only.
  73. canvon I mean, the system is dual-stack, but the gajim is IPv4 only
  74. Link Mauve Why would it be an issue to bind IPv6 only then?
  75. canvon The other side is a different system from #8007 before. It was a Windows machine whose problem is now fixed; it now is a Debian 7 machine which has a new(, even third,) problem
  76. canvon The difference is that the Windows machine reports itself as IPv4 only, while the Debian machine reports itself IPv4-and-IPv6, but reports the "presence" service type for IPv4 only (as it listens IPv4 only)
  77. canvon (and so a link-local XMPP client should contact it IPv4 only)
  78. Link Mauve This codepath doesn’t seem tested a lot, thanks for doing that. :)
  79. canvon (or, at least, IPv4 at all)
  80. canvon Mh. ;)
  81. canvon Where should I start searching the code? I need the location where the destination address is chosen
  82. canvon I guess this would be in src/common/zeroconf/
  83. Link Mauve Yeah, probably.
  84. canvon Could I enable some python tracing or anything?
  85. Link Mauve I don’t know much about that, sorry.
  86. Link Mauve If you want to stop the execution at some point, add “import pdb; pdb.set_trace()” in the code.
  87. canvon How can I continue the execution?
  88. Link Mauve c
  89. canvon thanks
  90. canvon In roster_zeroconf.py, line 63 (in def setItem), it already sets: host, address, port = ... with address IPv6-only. So it keeps only one address around, it seems.
  91. canvon In zeroconf_avahi.py, class Zeroconf, def service_resolved_callback, it has log.debug('Host %s (%s), port %i [...]' % (host, address, port, [...])) which gives IPv4 address only, in debug output. Something in between must try to be "clever" and re-resolve the host name to an address, and keep just one of the results
  92. Link Mauve :/
  93. canvon Oh, sorry. The data stays the same between both code locations. It just gets multiple "resolved" callbacks from avahi
  94. canvon It probably just keeps the last one, and uses that. With luck, it's the right one
  95. canvon But this is not so bad a behaviour, as it "updates" to latest known version, this way
  96. canvon Not sure how this should be handeled properly...
  97. Link Mauve Maybe keep them all, even if they are potentially invalid?
  98. Link Mauve It’s way more common to have multiple interfaces than to move between places a lot, isn’t it?
  99. canvon Sounds right. Perhaps a timestamp could be kept, and the old one expired sometime. But.
  100. canvon It seems as if avahi is feeding wrong information...
  101. Link Mauve Ow.
  102. canvon I use "avahi-discover" to see what "presence" services are registered. And that only shows one for IPv4, for that host.
  103. canvon But avahi as used in gajim seems to tell something else
  104. canvon No, it's there in avahi-discover now, too. It seems my environment is changing as I inspect it ;)
  105. canvon So the old gajim might be feeding its local avahi bad data?
  106. canvon I better should be running current gajim there, too
  107. canvon ... After further contemplation, the hg gajim should better keep both IP addresses and try them, all the same.
  108. canvon (It would be nice if it could (optionally) display the recorded IP addresses on mouseover in the roster, or something. Should I file a ticket for this? Mh.)
  109. Link Mauve Hehe. ^^
  110. canvon client_zeroconf.py, class P2PConnection, def __init__, has already support for multiple addresses returned from getaddrinfo(). But (I think) it is called with an IP address (not a host name), so returns only a single address. Does this help? Mh...
  111. canvon Would thinks break if roster[to]['address'] would contain an array instead of a ... string? Or is this internal to class ClientZeroconf, and could be fixed all there...
  112. canvon (It should be something that contains a time stamp too, so that old entries could be expired. Or can the avahi remove callback be relied upon to alway happen when things change...)
  113. canvon Problem 2 of 3, "cannot answer to Empathy", I can't reproduce on Linux. It seems it uses the existing P2P connection there instead of trying to open a new one. Perhaps on Windows it can't match the IP addresses or something...
  114. canvon Problem 3 of 3 can only be reproduced sporadically. It seems to stick with the last discovered IP address, and if this really is the address the other side is listening on, all seems just fine. (50:50 chance of breakage?)
  115. canvon (The -d debug output is very helpful, btw)
  116. canvon *The -v debug output
  117. canvon ... There is interface and protocol coming from Avahi, which would be needed to be recorded to support IPv6 link-local addresses anyhow (?; or is the network interface already returned as part of the "address" field?) ... and "aprotocol", in the sequence: host, aprotocol, address, port...
  118. canvon It seems the first one, protocol, should be used to index/match entries, but the second one, "aprotocol", should be used for connecting...
  119. canvon On the other hand, this are numbers 0 and 1, not the values of AF_INET or AF_INET6, I think
  120. canvon (AF_INET6 would be 10, on my host, it seems)
  121. canvon So how to use the "aprotocol" return field from Avahi?
  122. canvon Mh.
  123. canvon "Or, more technically speaking: protocol specifies if the mDNS queries should be sent as UDP/IPv4 resp. UDP/IPv6 packets. aprotocol specifies whether the query is for a A resp. AAAA resource record." - http://avahi.sourcearchive.com/documentation/0.6.25/avahi-client_2lookup_8h_904611a4134ceb5919f6bb637df84124.html
  124. Link Mauve Asterix, you should fix the bot. :/
  125. canvon Sorry. :(
  126. Link Mauve canvon, no, it does that everytime someone posts a sha1 hash.
  127. canvon OIC
  128. canvon I was about pasting some result I got via Google. The "protocol" field is for the mDNS packets, the "aprotocol" field is for the service's address
  129. Link Mauve canvon, btw, starting with 0.16, you can correct your last message, using Ctrl-Up.
  130. Link Mauve We got the message, it’s just the stupid bot kicking people who send such hashes.
  131. canvon Oh, ok