Hi,

In a link-local conversation with XEP-0174, a client A sends the
ending stanza to the other end's client B: "</stream:stream>"

http://www.xmpp.org/extensions/xep-0174.html#end

After that, B continues to send message stanzas to A but never sends
the ending stanza. The ending stanza from A is ignored by B. The
XEP-0174 seems to say B has to close the stream but there is no "MUST"
or "SHOULD".

When the user of A wants to send a message, A can't send it using the
current connection because the ending stanza has already been sent on
this connection and sending stanzas after the ending stanza is
obviously not correct. The client A cannot closes the TCP connection
while it did not receive the ending stanza from B because it may miss a
message.

The XEP does not say whether A should open a second stream or should
wait the first stream to be closed by the remote end. The second option
seems better to me, but in this case B MUST closes the stream at some
point when A sends the ending stanza (otherwise, A's messages will
never be sent).

It seems that iChat behaves like the client B in my scenario, i.e. it
does not close the stream when it receives the ending stanza. This
causes problems when the client A waits the connection to be closed in
order to open a new one.

-- 
Alban

Reply via email to