On Thu, Mar 19, 2009 at 11:29 PM, Justin Karneges <[email protected]> wrote: > On Thursday 19 March 2009 15:21:12 Fabio Forno wrote: >> I see one issue for perfect stream reliability: stanza suplication. An >> example: >> >> [C]<message/> >> [C]<r u="1"/> >> >> [S]<a h="1/> >> >> [C]<message/> >> [C]<r u="2"/> >> >> ---- server sends back <a h="2"/> but the connection dies --- >> >> ---- client resumes the stream and the last ack is 1 --- > > Nope: server indicates last sequence number handled in the <resume> exchange. > The client then sees the last ack is 2, and doesn't resend the message.
Yep, missed it in the example, but there more cases. Just suppose <r/ u="2"> is lost before arriving to the server and the previous message not. The message is processed, and now the server can't send back the u=2 ack since it never received the </r>. Since the stanza and the <r/> are two atomically separated things such problem will persist. Not a big deal for chats, but more relevant if this is the last step of an ad hoc command. bye -- Fabio Forno, Ph.D. Bluendo srl http://www.bluendo.com jabber id: [email protected]
