ports/101335: mcabber fails to connect

Andrew Thompson thompsa at FreeBSD.org
Thu Aug 3 21:30:19 UTC 2006


>Number:         101335
>Category:       ports
>Synopsis:       mcabber fails to connect
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Aug 03 21:30:15 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Andrew Thompson
>Release:        FreeBSD 6.1-STABLE i386
>Organization:
>Environment:
System: FreeBSD heff.fud.org.nz 6.1-STABLE FreeBSD 6.1-STABLE #0: Fri May 19 17:00:14 NZST 2006 thompsa at heff.fud.org.nz:/usr/obj/usr/src/sys/GENERIC i386


>Description:
On two seperate machines running 6.1-STABLE the mcabber client stops after "Communication with the server established" and then times out. 

I have a workaround patch below that lets me connect, im am unsure if its a problem with the mcabber client or a race condition in the FreeBSD sockets code.

Here is an ascii packet dump for the unpatched binary, as you can see its missing the xml stream header.
---8<---8<---
  .  
  .  
<iq type='set' id='auth_2'><query xmlns='jabber:iq:auth'><username>xxx</username><resource>mcabber</resource><password>xxx</password></query></iq>
<?xml version='1.0'?><stream:stream xmlns:stream='http://etherx.jabber.org/streams' id='44D26555' xmlns='jabber:client'>
<stream:error>Invalid Namespace</stream:error></stream:stream>
---8<---8<---

And the ascii packet dump after the sleep was put in after the mcabber socket connect.
---8<---8<---
<?xml version='1.0'?>
<stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='jabber.tbd.co.nz'><iq type='get' id='auth_1'><query xmlns='jabber:iq:auth'><username>xxx</username></query></iq>
<?xml version='1.0'?><stream:stream xmlns:stream='http://etherx.jabber.org/streams' id='44D2648D' xmlns='jabber:client' from='jabber.tbd.co.nz'>
<iq type='result' id='auth_1'><query xmlns='jabber:iq:auth'><username>xxx</username><digest/><password/><resource/></query></iq>
<iq type='set' id='auth_2'><query xmlns='jabber:iq:auth'><username>xxx</username><resource>mcabber</resource><digest>xxx</digest></query></iq>
<iq type='result' id='auth_2'/>
---8<---8<---

>How-To-Repeat:
	
>Fix:

This workaround gets it going for me

--- libjabber/jconn.c.orig	Wed Jun 28 06:58:18 2006
+++ libjabber/jconn.c	Fri Aug  4 08:36:00 2006
@@ -162,6 +162,9 @@
     }
     change_socket_to_blocking(j->fd);
 
+    /* XXX why do we need this?? */
+    sleep (1);
+
     j->state = JCONN_STATE_CONNECTED;
     STATE_EVT(JCONN_STATE_CONNECTED)
 

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list