Hang on jabber-connect in emacs

I use jabber.el to connect to my work chat server from within emacs. This was working until recently, but now when I run jabber-connect it hangs after prompting for my JID. Emacs locks up until I cancel it with C-g, at which point I see:

Buffer " *-jabber-process-*" has a running process; kill it? (y or n)

...in the minibuffer, and I have to answer y to get out.

In the *Messages* buffer, I can see these other messages:

Opening TLS connection to `lxchat'...
Opening TLS connection with `gnutls-cli --insecure -p 5223 lxchat'...failed
Opening TLS connection with `gnutls-cli --insecure -p 5223 lxchat --protocols ssl3'...failed
Opening TLS connection with `openssl s_client -connect lxchat:5223 -no_ssl2 -ign_eof'...

If I try running the openssl_client command from the command line, it seems to connect successfully. Although I guess that just shows it can establish the SSL connection?

~> openssl s_client -connect lxchat:5223 -no_ssl2 -ign_eof
CONNECTED(00000003)
^C

What else can I do to work out what the problem is?


I avoid making Emacs deal with the network directly. Though things have improved significantly, single-threaded Emacs will hang at inconvenient moments. When you have elisp implementations of things like jabber, it helps to keep a single Emacs config across platforms, but if you do not have this need, it is easier and often less long-term hassle to use platform-specific tools. For instance, I use msmtp to send email and a combination of bitlbee and ERC to connect to various IM networks.