> The protocol document (section 4.3.2) doth say: > If the pending message store shows that a Request.Data message > with the current UniqeID has already been seen at this node > (indicating a loop in the message's journey), the node must > compose a RequestFailed message in reply inheriting the UniqeID, > HopsToLive, and Depth of the present request. > > Request.java says something similar. > > Aside from the spelling errors, that the RequestFailed should inherit > the HopsToLive makes no sense to me. RequestFailed is a *reply* to the > DataRequest, and should probably get its HopsToLive from the Depth of > the DataRequest; alternatively, since RequestFailed is not technically > "forwarded," it should have a HopsToLive of 1.
Thanks for pointing out the spelling error--I haven't been back to that part of the spec lately. That's another reason we renamed that message to "Request.Continue", to make it clear that it's not really a reply at all: it's not a "sorry, not here", it's an "oops, turn right and keep going". When node A sends a Request.Data to B, it wants to see a Reply.Data from B some time later. If it gets Request.Continue instead, it just continues the search it's already doing by sending a new Request.Data to node C instead, getting the HTL from the Request.Continue. This _could_ be done by setting HTL to 1 on the latter message, and having node A look up the original HTL of the first Request.Data it sent, but either way works. The Request.Continue itself is never "forwarded", so its own HTL is really never needed. -- Lee Daniel Crocker <lee at piclab.com> <http://www.piclab.com/lee/> "All inventions or works of authorship original to me, herein and past, are placed irrevocably in the public domain, and may be used or modified for any purpose, without permission, attribution, or notification."--LDC _______________________________________________ Freenet-dev mailing list Freenet-dev at lists.sourceforge.net http://lists.sourceforge.net/mailman/listinfo/freenet-dev
