I'm currently home growing a client in Java and have somehow managed to connect,
authenticate using DIGEST-MD5.  In reading RFC's 3921 and 3920 the XMPP Core
draft I have ( page 36 ) says "Client must send a new stream header to
the server,
to which the server must respond with.. a list of available stream
features..." and so on..

It is at this point my client sends:

<stream:stream to='localhost' xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>

To which the server responds with:

<?xml version='1.0'?><stream:stream
xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client'
from='localhost' version='1.0'
id='8rtzkzdf7wt99kz94okrr5fwpdwny8v60o5lni0v'>
<stream:features xmlns:stream='http://etherx.jabber.org/streams'><bind
xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><session
xmlns='urn:ietf:params:xml:ns:xmpp-session'/></stream:features>

While the jabberd debug output shows:

C2S : sx (io.c:191) decoded read data (114 bytes): <stream:stream
to='localhost' xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams' version='1.0'>
C2S : sx (server.c:118) stream request: to localhost from (null) version 1.0
C2S : sx (server.c:133) 10 state change from 0 to 1
C2S : sx (server.c:149) stream id is hv3y4duh5gfn8vv5lns2tj0vnumo0m6ih9gmnb3s
C2S : sx (server.c:179) prepared stream response: <?xml
version='1.0'?><stream:stream
xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client'
from='localhost' version='1.0'
id='hv3y4duh5gfn8vv5lns2tj0vnumo0m6ih9gmnb3s'>
C2S : sx (io.c:207) tag 10 event 1 data 0x0
C2S : Fri Nov 12 03:17:19 2004 c2s.c:38 want write
C2S : Fri Nov 12 03:17:19 2004 c2s.c:398 write action on fd 10
C2S : sx (io.c:279) 10 ready for writing
C2S : sx (io.c:237) encoding 183 bytes for writing: <?xml
version='1.0'?><stream:stream
xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client'
from='localhost' version='1.0'
id='hv3y4duh5gfn8vv5lns2tj0vnumo0m6ih9gmnb3s'>
C2S : sx (chain.c:79) calling io write chain
C2S : sx (ssl.c:220) in _sx_ssl_wio
C2S : sx (ssl.c:224) queueing buffer for write
C2S : sx (ssl.c:240) preparing queued buffer for write
C2S : sx (ssl.c:302) prepared 204 ssl bytes for write
C2S : sx (io.c:298) handing app 204 bytes to write
C2S : sx (io.c:299) tag 10 event 3 data 0x818f6a0
C2S : Fri Nov 12 03:17:19 2004 c2s.c:104 writing to 10
C2S : Fri Nov 12 03:17:19 2004 c2s.c:108 204 bytes written
C2S : sx (server.c:29) stream established
C2S : sx (sx.c:134) authenticating stream (method=SASL/DIGEST-MD5;
[EMAIL PROTECTED])
C2S : sx (sx.c:139) 10 state change from 1 to 4
C2S : sx (sx.c:140) tag 10 event 5 data 0x0
C2S : sx (server.c:45) building features nad
C2S : sx (sasl.c:77) already auth'd, not offering sasl mechanisms
C2S : Fri Nov 12 03:17:19 2004 bind.c:40 offering resource bind and session
C2S : sx (io.c:332) tag 10 event 0 data 0x0
C2S : Fri Nov 12 03:17:19 2004 c2s.c:33 want read
C2S : Fri Nov 12 03:17:19 2004 c2s.c:398 write action on fd 10
C2S : sx (io.c:279) 10 ready for writing
C2S : sx (io.c:237) encoding 185 bytes for writing: <stream:features
xmlns:stream='http://etherx.jabber.org/streams'><bind
xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><session
xmlns='urn:ietf:params:xml:ns:xmpp-session'/></stream:features>

Continued from the 3920 RFC "..Upon being so informed that resource binding is
required, the client MUST bind a resource to the stream by sending to the server
an IQ stanza of the type "set".."

So, my client sends:

<iq to='localhost' type='set' id='sess_1'><session
xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>

Which shows up in jabberd's debug output:

C2S : sx (ssl.c:326) loading 122 bytes into ssl read buffer
C2S : sx (io.c:191) decoded read data (101 bytes): <iq to='localhost'
type='set' id='sess_1'><session
xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>
C2S : sx (io.c:67) completed nad: <iq xmlns='jabber:client'
id='sess_1' type='set' to='localhost'><session
xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>
C2S : sx (chain.c:119) calling nad read chain
C2S : sx (io.c:110) tag 10 event 6 data 0x8170578
C2S : Fri Nov 12 04:33:52 2004 c2s.c:283 unrecognised pre-session packet, bye
C2S : sx (error.c:79) prepared error: <stream:error
xmlns:stream='http://etherx.jabber.org/streams'><not-authorized
xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error>

And I'm subsequently booted by </stream:stream>

I've investigated c2s.c a bit, but I'm finding the C a little cryptic
and I'm a bit puzzled
as to why this either doesn't work as advertised - or I'm doing
something stupid..
any advice?

Scott
_______________________________________________
jdev mailing list
[EMAIL PROTECTED]
http://mail.jabber.org/mailman/listinfo/jdev

Reply via email to