The 'ALT' GGEP Extension ======================== Name: ALT Where: Query Hit (per File Entry) Status: Experimental Date: Mon Jul 14 20:05:36 MEST 2003 Format: Array of COBS-Encoding: Maybe Deflate: Maybe Revision: $Id: ALT 3631 2003-07-18 14:04:36Z rmanfredi $ [Those specs written by Raphael Manfredi after a proposal from BearShare] The "ALT" extension is used to carry alternate locations on a file entry basis. It is used only for servers that can understand "/uri-res/N2R?" requests, and for files that have a known hash, so that the servent may construct the URLs manually. The hash is given in the query hit, either as a HUGE urn: or via a GGEP "H" extension. The issuer of the entry in the "ALT" extension MUST ensure that the server will understand the request for the hash given: if a SHA1 hash is given, then the server must understand "/uri-res/N2R?urn:sha1:" requests. When a bitprint hash is given, the downloader may specify a SHA1 URN in the request, since a bitprint contains the SHA1. In case multiple hashes were handed out for the file entry, the SHA1 hash is preferred, then the bitprint. If neither is handed out, then the recipient can try the N2R resolver with the supplied URN, as given in the query hit. The payload is an array of 6-byte entries. The first 4 bytes encode the IP of the server (in big-endian, as usual), and the remaining 2 bytes encode the port (in little-endian). There is no size indication for the array. The length of the payload must be a multiple of 6 bytes (after COBS decoding, or course).