Net-XMPP - no response after tls handshake

Posted on Mon Jul 17 12:06:53 2006 by piotr
no response after tls handshake
hello, i am having a problem on perl v. 5.8.8 and Net::XMPP 1.0 :
i try to connect to a xmpp server via net::xmpp and a starttls handshake, however, after establishing a tls session and sending the initial "<stream:stream ..." tag the server won't respond. strangely, when i connect to that server via gaim or some other instant chat client, everything works fine.
anybody any ideas? (see also debug output)

regards,
peter
-------- debug output from Net::XMPP : ----
(...)
XML::Stream: TLSClientProceed: Convert normal socket to SSL
XML::Stream: TLSClientProceed: sock(IO::Socket::INET=GLOB(0x8b496c0))
XML::Stream: LoadSSL: Load the IO::Socket::SSL module
XML::Stream: LoadSSL: Success
XML::Stream: TLSClientProceed: ssl_sock(IO::Socket::SSL=GLOB(0x8b496c0))
XML::Stream: TLSClientProceed: SSL: We are secure
XML::Stream: Process: timeout(1)
XML::Stream: Process: check for keepalives
XML::Stream: Process: check for timeouts
XML::Stream: Process: sid(4230f337) time( 1153124711 ) timeout(undef)
XML::Stream: Process: block(0)
XML::Stream: MarkActivity: sid(4230f337)
XML::Stream: Send: (<?xml version='1.0'?><stream:stream version='1.0' xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' to='dia.esk.fhg.de' from='LeBox' xml:lang='en' >)
XML::Stream: Send: sid(4230f337)
XML::Stream: Send: status(0)
XML::Stream: Send: socket(IO::Socket::SSL=GLOB(0x8b496c0))
XML::Stream: Send: can_write
XML::Stream: Send: SENDWRITTEN(168)
XML::Stream: Send: no exceptions
XML::Stream: MarkActivity: sid(4230f337)
XML::Stream: Connect: can_read( )
XML::Stream: Read: sid(4230f337)
XML::Stream: Read: connectionType(tcpip)
XML::Stream: Read: socket(IO::Socket::SSL=GLOB(0x8b496c0))
(nothing happens)
--- end debug output from Net ::XMPP ---




------- debug output from gaim : ---
(...)
jabber: Sending: <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
jabber: Recv (50): <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/>
gnutls: Handshaking
gnutls: Handshake complete
jabber: Sending (ssl): <stream:stream to='dia.esk.fhg.de' xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>
jabber: Recv (ssl)(520): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="dia.esk.fhg.de" id="8896533b" xml:lang="en" version="1.0"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>CRAM-MD5</mechanism><mechanism>DIGEST-MD5</mechanism><mechanism>PLAIN</mechanism><mechanism>ANONYMOUS</mechanism></mechanisms><auth xmlns="http://jabber.org/features/iq-auth"/><register xmlns="http://jabber.org/features/iq-register"/></stream:features>
jabber: Sending (ssl): <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='DIGEST-MD5'/>
jabber: Recv (ssl)(224): <challenge
xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cmVhbG09ImRpYS5lc2suZmhnLmRlIixub25jZT0iaHNJbncyMzIwNVA1ZzZJaWZqWU5HYzR6eGxRczlVQWlKUTVMQnV3NiIscW9wPSJhdXRoIixjaGFyc2V0PSJ1dGYtOCIsYWxnb3JpdGhtPSJtZDUtc2VzcyI=</challenge>
jabber: decoded challenge (119):
realm="dia.esk.fhg.de",nonce="hsInw23205P5g6IifjYNGc4zxlQs9UAiJQ5LBuw6",qop="auth",charset="utf-8",algorithm="md5-sess" jabber: decoded response (234):
username="peter",realm="dia.esk.fhg.de",nonce="hsInw23205P5g6IifjYNGc4zxlQs9UAiJQ5LBuw6",cnonce="69aaa86e1153123317db9d9f21",nc=00000001,qop=auth,digest-uri="xmpp/dia.esk.fhg.de",response=b1c2832592a25146c0aa04b8fb99a7e3,charset=utf-8 jabber: Sending (ssl): <response
xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>dXNlcm5hbWU9InBldGVyIixyZWFsbT0iZGlhLmVzay5maGcuZGUiLG5vbmNlPSJoc0ludzIzMjA1UDVnNklpZmpZTkdjNHp4bFFzOVVBaUpRNUxCdXc2Iixjbm9uY2U9IjY5YWFhODZlMTE1MzEyMzMxN2RiOWQ5ZjIxIixuYz0wMDAwMDAwMSxxb3A9YXV0aCxkaWdlc3QtdXJpPSJ4bXBwL2RpYS5lc2suZmhnLmRlIixyZXNwb25zZT1iMWMyODMyNTkyYTI1MTQ2YzBhYTA0YjhmYjk5YTdlMyxjaGFyc2V0PXV0Zi04</response> jabber: Recv (ssl)(120): <challenge
xmlns="urn:ietf:params:xml:ns:xmpp-sasl">cnNwYXV0aD1lYmI1NGMzMjcyYWJhMDk1Y2YwYTQwZTU3YTUxYzE3Zg==</challenge>
jabber: decoded challenge (40): rspauth=ebb54c3272aba095cf0a40e57a51c17f
jabber: Sending (ssl): <response xmlns='urn:ietf:params:xml:ns:xmpp-sasl' />
jabber: Recv (ssl)(51): <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
jabber: Sending (ssl): <stream:stream to='dia.esk.fhg.de' xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams' version='1.0'> jabber: Recv (ssl)(324): <?xml version='1.0' encoding='UTF-8'?><stream:stream
xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="dia.esk.fhg.de" id="8896533b" xml:lang="en" version="1.0"><stream:features><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features> jabber: Sending (ssl): <iq type='set' id='gaima17b7212'><bind
xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>Gaim</resource></bind></iq> jabber: Recv (ssl)(160): <iq type="result" id="gaima17b7212"
to="dia.esk.fhg.de/8896533b"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>peter@dia.esk.fhg.de/Gaim</jid></bind></iq>
jabber: Sending (ssl): <iq type='set' id='gaima17b7213'><session
xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq> jabber: Recv (ssl)(126): <iq type="result" id="gaima17b7213"
to="peter@dia.esk.fhg.de/Gaim"><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></iq>
jabber: Sending (ssl): <iq type='get' id='gaima17b7214'><query
xmlns='jabber:iq:roster'/></iq> jabber: Sending (ssl): <presence/>
jabber: Sending (ssl): <iq type='get' id='gaima17b7215' to='dia.esk.fhg.de'><query
xmlns='http://jabber.org/protocol/disco#items'/></iq> server: allowing NOP
jabber: Recv (ssl)(392): <iq type="result" id="gaima17b7214"
to="peter@dia.esk.fhg.de/Gaim"><query (...)
--- end debug output from gaim ---
Write a response