Re: Porting the latest gossip to FreeBSD

Martyn Russell <[email protected]> Mon, 04 Aug 2008 00:25:19 +0100
Newsgroups gmane.comp.gnome.gossip.devel
Message-ID <[email protected]>
Joe Marcus Clarke wrote:
> On Sun, 2008-08-03 at 21:45 +0100, Martyn Russell wrote:
> 
> Thanks for your reply.

:)

>>> The NetworkManager error doesn't appear to be fatal, and I get
>>> this with 0.28 as well.
>> The network manager issue there shouldn't be a problem. But I
>> wonder if it is part of the problem?
> 
> I saw it in the working 0.28.  FreeBSD doesn't have an NM port yet.

OK.

>>> Nothing else is different settings-wise between 0.28 and 0.31.
>>> I'm using the resource Home, and I am using encryption.  I've 
>>> tried both ports 5222 and 5223.  The server is jabber.org.
>> Gossip should switch between ports for you. But for old SSL 
>> authentication, you want to use port 5223. Otherwise port 5222
>> should work.
> 
> It does.  0.26, 0.27, and 0.28 want to use 5223, but 0.29 and 0.31
> want to use 5222.  Neither port authenticates successfully in 0.29
> and 0.31.

I know that in the past jabber.org hasn't worked for me using the
STARTTLS method on port 5222 (the new secure method of authenticating).

There are two set ups which should work:

Option #1:
- Port 5223
- Enable "Force older secure connection method".
- Enable "Ignore certificate warnings".
- Enable "Use Encryption".

Option #2:
- Port 5222
- Disable "Force older secure connection method".
- Enable "Ignore certificate warnings".
- Enable "Use Encryption".

>>> Both gossip 0.28 and pidgin can connect with this account and
>>> password. Creating a new account in gossip 0.31 also does not
>>> work.  Any clue as to what the problem may be?  Is there any
>>> additional troubleshooting I can do?  A sniffer isn't helpful as
>>> this is all encrypted.
>> Hmm, interesting. I can connect to my jabber.org account fine here.
>>  If you run Gossip with LM_DEBUG=all, does it give you any more
>> information?
> 
> Well, it's all hashed, so it doesn't really tell me what it's really 
> sending:
> 
> *** Socket library initialising... *** Connecting to: jabber.org:5223
>  *** SRV lookup disabled for jabber.org Going to connect to
> jabber.org:5223 Trying 208.68.163.220 port 5223... Connection success
> (2). *** Setting up SSL... *** GNUTLS negotiated compression: DEFLATE

So it looks like you are using the older secure connection method (i.e.
option #1 from above.

> RECV [77]: ----------------------------------- 
> '<failure xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><not-authorized/></failure>'
>  ----------------------------------- 
> *** Read: 77 chars LM-PARSER:
> ATTRIBUTE: xmlns = urn:ietf:params:xml:ns:xmpp-sasl 
> LM-PARSER: Trying to close node: not-authorized 
> LM-PARSER: Trying to close node: failure 
> LM-PARSER: Have a new message 
> *** New message with type="failure" from: unknown 
> LM-SASL: sasl_failure_cb: 
> SASL authentication failed: unknown reason
> *** SASL authentication failed,
> closing connection 
> *** Disconnecting from: jabber.org:5223

This looks like the password is wrong. The connection is made
successfully, the authentication stage just seems to fail.

Does authentication work if you don't use encryption?

> How can I see what username and password is actually being sent?

If you use:

  export GOSSIP_DEBUG=Jabber

You should be able to see this sort of debug when you try to connect:

With option #1:

Jabber: Refreshing connection details
Jabber: Setting connection details for account:'Testing2'
Jabber: - ID:'[email protected]'
Jabber: - Server:'jabber.org'
Jabber: - Port:5223
Jabber: - Using OLD SSL method for connection
Jabber: Connecting...
Jabber: Untrusted certificate
Jabber: Connection open!
Jabber: Attempting to use JabberID:'[email protected]'
Jabber: Connection logged in!

With option #2:

Jabber: Refreshing connection details
Jabber: Setting connection details for account:'Testing2'
Jabber: - ID:'[email protected]'
Jabber: - Server:'jabber.org'
Jabber: - Port:5222
Jabber: - Using STARTTLS method for connection
Jabber: Connecting...
Jabber: Connection open!
Jabber: Attempting to use JabberID:'[email protected]'
Jabber: Untrusted certificate
Jabber: Connection logged in!


> Where could I add some debug code to print that?

You can also use:

  export GOSSIP_DEBUG=all

But there is a lot of debugging there to drown in :)

If you want to print the password, try adding a debug line in this file:

http://svn.gnome.org/viewvc/gossip/trunk/libgossip/gossip-jabber.c?view=markup

In the function _gossip_jabber_set_connection(). Something like:

  gossip_debug (DEBUG_DOMAIN,
                "- Password:'%s'",
                gossip_account_get_password (account));

We don't normally put the password in the log for security reasons.
Hope this helps.

-- 
Regards,
Martyn