Pidgin loses connection after update to 8.8.8

All around Zimbra Chat, give us your feedback, questions and ideas
diginetde
Posts: 16
Joined: Sat Sep 13, 2014 1:52 am

Re: Pidgin loses connection after update to 8.8.8

Post by diginetde »

Hi,
did someone find a solution? We still have this issue.
Regards
BurntTech
Posts: 11
Joined: Wed Apr 15, 2015 2:40 pm

Re: Pidgin loses connection after update to 8.8.8

Post by BurntTech »

We are still using swift and prefer not be using it. Does anyone have contacts for zimbra team to notice this? It obvious it was working and then changes in 8.8.8 broke this.
Qnupugasod
Posts: 1
Joined: Wed Nov 21, 2018 6:41 am

Re: Pidgin loses connection after update to 8.8.8

Post by Qnupugasod »

We are experiencing the same issue
funonabun
Posts: 1
Joined: Tue May 21, 2019 6:45 pm

Re: Pidgin loses connection after update to 8.8.8

Post by funonabun »

I installed Gajim because it had configurable pings and timeouts and even experimenting with insane values, it still occurs. It has to be an issue with Zimbra and not XMPP protocols. Does anyone know of a viable solution, because while you can still utilize the chat for outgoing, if it is currently disconnected no one will receive it. I could always enable the queuing feature in Pidgin, but that's flaky and I shouldn't have to. This needs fixed ASAP.
BurntTech
Posts: 11
Joined: Wed Apr 15, 2015 2:40 pm

Re: Pidgin loses connection after update to 8.8.8

Post by BurntTech »

This is over a year later and still an issue. I find this disappointing since I can only assume is this an issue with OSE and not the network edition otherwise a lot more users would be affected. It appears "Zimbra Chat" OSE and "Zimbra Connect/Talk" are separate which does seem a bit concerning to have similar modules among the confusion.

Anyone on OSE have this working XMPP clients?
Anyone on Network Edition have issues with XMPP clients?

FYI: the view count on this thread is close to 25,000 views :cry:
maillo
Posts: 4
Joined: Mon Mar 20, 2017 7:41 am

Re: Pidgin loses connection after update to 8.8.8

Post by maillo »

8.8.15 - problem is still there. I'm using mozilla thuderbird as a XMPP client and it's repedately disconnects clients.
zmcontrol
Posts: 25
Joined: Fri Jul 24, 2020 12:43 am

Re: Pidgin loses connection after update to 8.8.8

Post by zmcontrol »

Hello,

I managed to create a workaround for this issue.
Turns out that the built-in xmpp server doesn't handle XEP-0199: XMPP Ping specification correctly.

The XMPP ping protocol is extremely simple:

The pinging entity (in our case the pidgin client) sends an IQ-get containing a <ping/> element qualified by the 'urn:xmpp:ping' namespace.
The pinged entity (in our case the zimbra-chat server) returns either an IQ-result (if it supports the namespace) or an IQ-error (if it does not).

Unfortunately the built-in zimbra-chat server never sends a response to the xmpp ping.

The way pidgin works is it sends a ping every 60 seconds as long as there's a response.
If there isn't a response after 120 seconds, the client will disconnect.

For example pidgin sends the ping:
<iq type='get' id='id1'><ping xmlns='urn:xmpp:ping'/></iq>
..but nothing back

Fortunately pidgin doesn't care what the response is as long as it receives one!

The zimbra-chat server does handle XEP-0030: Service Discovery specification correctly.
It appears that it doesn't support discovery items, but it correctly sends a 'feature-not-implemented' error.

For example pidgin sends the discovery items query:
<iq type='get' id='id1' to='example.com'><query xmlns='http://jabber.org/protocol/disco#items'/></iq>
the server correctly responds with a feature-not-implemented error:
<iq xmlns="jabber:client" type="error" id="id1" from="example.com" to="test@example.com"><feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></iq>

I edited the source for pidgin 2.14.1 so it sends the discovery items query instead of the ping.
The server responds back so pidgin is happy and doesn't disconnect.

This only works with pidgin 2.14.1 for windows, which is the latest stable version at this time.
After installing pidgin 2.14.1, replace the libjabber.dll file found in the install directory with the one attached to this post.
The default install directory is C:\Program Files (x86)\Pidgin

For more info regarding XEP-0199: XMPP Ping specification:
https://xmpp.org/extensions/xep-0199.html

For more info regarding XEP-0030: Service Discovery specification:
https://xmpp.org/extensions/xep-0030.html

Here are the changes if anyone wants to build it for another platform.
Just two files need to be patched.
./libpurple/protocols/jabber/namespaces.h
./libpurple/protocols/jabber/ping.c

Here are the patches.

--- namespaces.h 2020-06-09 19:41:32.000000000 -0700
+++ namespaces_fix.h 2020-07-23 18:31:54.705983270 -0700
@@ -75,7 +75,7 @@
#define NS_STREAM_MANAGEMENT "urn:xmpp:sm:3"

/* XEP-0199 Ping */
-#define NS_PING "urn:xmpp:ping"
+#define NS_PING "http://jabber.org/protocol/disco#items"

/* XEP-0202 Entity Time */
#define NS_ENTITY_TIME "urn:xmpp:time"


--- ping.c 2020-06-09 19:41:32.000000000 -0700
+++ ping_fix.c 2020-07-23 18:32:34.338011851 -0700
@@ -73,7 +73,7 @@
xmlnode *ping;

iq = jabber_iq_new(js, JABBER_IQ_GET);
- ping = xmlnode_new_child(iq->node, "ping");
+ ping = xmlnode_new_child(iq->node, "query");
xmlnode_set_namespace(ping, NS_PING);

jabber_iq_set_callback(iq, jabber_keepalive_pong_cb, NULL);
@@ -89,7 +89,7 @@
if (jid)
xmlnode_set_attrib(iq->node, "to", jid);

- ping = xmlnode_new_child(iq->node, "ping");
+ ping = xmlnode_new_child(iq->node, "query");
xmlnode_set_namespace(ping, NS_PING);

jabber_iq_set_callback(iq, jabber_ping_result_cb, NULL);
Attachments
libjabber.dll.zip
(160.79 KiB) Downloaded 533 times
nxmndr
Posts: 1
Joined: Wed Oct 14, 2020 9:08 am

Re: Pidgin loses connection after update to 8.8.8

Post by nxmndr »

Well thanks for identifying the problem. Wouldn't it be possible to publish a patch for ZimbraChat instead (and fixing the issue for all clients in the same move) ?

I'm really new to Zimbra and have no idea.

Thanks
Post Reply