Quoting Jeroen Asselman <[EMAIL PROTECTED]> from ml.softs.gtk-gnutella.devel: :GTK-Gnutella _does_ send a 404, (at least it should do so unless there :is a bug), but the PARQ ID remains valid.
Which is OK. :It isn't the HTTP error code that causes the 'trouble' it is the PARQ :ID which remains valid which is causing the problem. A QUEUE is sent to :the requesting client if it didnt' request 'in time'. The requesting :client acknowledge this and retries to do its request. :The specs state that if a client is not intrested anymore it should :ignore the QUEUE command, this is where the problem is. Due to this :PARQ does not know if the client just doesn't respond because it has a :bug, crashes shutdown or is not intrested anymore and retries later. Right, this is a big overseeing on my part and I need to write PARQ 1.1, with more examples and scenarios of what can happen and how to handle it. Error processing must be clearly specified as well. If the QUEUE is sent but not replied to twice, then the slot should be immediately freed (this is PARQ/1.0). But a PARQ/1.1-compliant servent will probably politely decline the QUEUE by issuing a special HTTP request back. Also, we should probably handle 404 in a keep-alive fashion: PARQ replies 404 (or 410 if it used to have the file, but we need to remember that then) and keeps the connection open. The client can the choose NOW an alternate file to request in place of the one which was not found. Up to, say 50 attempts of "request - 404 - request - 404" in a row. Once that connection is closed and no successful request was made, the slot is freed up. This is the area of PARQ that needs revisiting. Also perhaps PARQ should be re-implemented from scratch now that we have some experience with it. Like they say, "throw One away". Raphael ------------------------------------------------------- This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 Project Admins to receive an Apple iPod Mini FREE for your judgement on who ports your project to Linux PPC the best. Sponsored by IBM. Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php _______________________________________________ Gtk-gnutella-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel
