RE: [core-dev] Re: Requery during downloading disabled?
"Greg Bildson" <[email protected]> Mon, 22 Nov 2004 11:20:05 -0500
| Newsgroups | gmane.network.gnutella.limewire.core.devel |
|---|---|
| Message-ID | <[email protected]> |
Brian, For multiple sources, you can only use "xs", "as" and "xt". With xt already used, you can specify 2 other exact sources. Thanks -greg > -----Original Message----- > From: [email protected] > [mailto:[email protected]]On Behalf Of Brian Fall > Sent: Friday, November 19, 2004 6:12 PM > To: [email protected] > Subject: [core-dev] Re: Requery during downloading disabled? > > > Thanks, Sam. I will then pursue the "alternate locations" and the > "download mesh" approach as you suggest to avoid network > congestion. I do, however, have a question about where to begin > adding my own alternate locations to the mesh. I know the exact > IP addresses of the sources that I want to add (they are running > Limewire), and would ideally want to just specify this inside the > magnet link instead of modify the code, but I've so far been > unable to figure out if that's possible. Here, for example, is > just one variation I've tried (I added line breaks in this email > to make it easier to read, but didn't actually have the breaks in > the link itself): > > magnet:?xt=urn:<SHA1>&dn=SomeMusicFile& > xs=http://a.b.c.d:port/uri-res/N2R?urn:sha1:<SHA1>& > http://e.f.g.h:port/uri-res/N2R?urn:sha1:<SHA1>& > http://i.j.k.l:port/uri-res/N2R?urn:sha1:<SHA1>& > http://m.n.o.p:port/uri-res/N2R?urn:sha1:<SHA1>& > > The idea is to load up the magnet with the sources I am certain > will host the file, while allowing Limewire to also search for > sources while these xs sources start the download. Is that > possible? I've tried a lot of variations on the above theme, > attempting to put multiple sources into the magnet, but no luck > -- documentation I came across in the Limewire code indicate that > this is possible, but is it? > > If the above isn't possible, I can always modify the source code > so that my sources are hard-coded (for now; early testing!) as > alternate locations. I see that the MagnetDownloader constructor > takes an array of URLs named defaultURLs; should I add them in > the constructor (just add my sources to the defaultURLs), or is > there a better place in the Limewire core code to add my own > alternate sources to ensure that downloading starts from them > initially while the rest of the network is being searched? > > With thanks again for your advice, > Brian > > > Message: 2 > > Date: Fri, 19 Nov 2004 01:57:54 -0500 > > From: "Sam Berlin" <[email protected]> > > Subject: RE: [core-dev] Requery during downloading disabled? > > To: <[email protected]> > > Message-ID: <[email protected]> > > Content-Type: text/plain; charset="us-ascii" > > > > Hi Brian, > > > > What you're noticing is LimeWire's refusal to do automated > requerying. If a > > download is active, then there is no need to burden the network with a > > search for additional sources. Network resources are the most precious > > commodity LimeWire has. If queries were injected into the network for > > existing downloads (or even automatically for failed downloads) > then each > > node would be forced to flow control its traffic, dropping user-driven > > searches & results. > > > > The network-conscious way to have LimeWire attempt additional > sources after > > a download begins is by using "alternate locations" and the > "download mesh". > > The download mesh is a collection of alternate locations that > are hosting > > the given file. HTTP responses can contain a header: "X-Alt: > a.b.c.d:port, > > a.b.c.d:port, etc.." that tell LimeWire to try these sources. > LimeWire (and > > other Gnutella clients) keep track of which hosts have successfully or > > unsuccessfully downloaded and internally keep a list of > alternate locations > > for each file. Locations are removed from servers via reading > the 'X-NAlt' > > header, which is a list supplied by the downloader (in one of it's HTTP > > request headers) of locations that are no longer valid. > > > > The only drawback with alternate locations is that they're currently > > designed to only work with uri-res requests. That is, the alternate > > locations must be hosting the file at > > http://a.b.c.d:port/uri-res/N2R?urn:sha1:<SHA1> . All Gnutella clients > > support this, but a mod would have to be written for HTTP > servers such as > > Apache. > > > > Thanks, > > Sam > > > > > -----Original Message----- > > > From: [email protected] [mailto:core-dev- > > > [email protected]] On Behalf Of Brian Fall > > > Sent: Friday, November 19, 2004 1:39 AM > > > To: [email protected] > > > Subject: [core-dev] Requery during downloading disabled? > > > > > > Hello everyone, I've been working with are recent Limewire > CVS snapshot > > > and noticed that when a search and attempt to download > finally enters the > > > tryAllDownloads3() method of the ManagedDownloader class that > it actually > > > stops the ability to re-query (perform any more searches for > that piece of > > > content). Specifically, it appears that when the > > > > > > while (true) { ... } > > > > > > portion of tryAllDownloads3() is entered the ability to continue > > > searching comes to a halt. I am attempting to optimize, if > possible, the > > > search process so that a requery can be issued even while the > download is > > > in progress. To do this, I tried to re-query from within the while > > > (true) loop of the tryAllDownloads3() method, but that caused an > > > exception and stopped it entirely. > > > > > > Is it possible, given the way Limewire is currently coded, to requery > > > while a download is in progress? > > > > > > On a similar note (possibly related), I noticed that when I > use a magnet > > > link that has as its "xs" source a standard Web link (not a Limewire > > > client, but instead a web link) Limewire will only download > from that web > > > site and won't bother to query the network. I wonder if this > is related to > > > the fact that Limewire can start the download from the web site > > > immediately, and in doing so it enters tryAllDownloads3() before it > > > actually has a chance to query the Gnutella network? Following, for > > > example, is the type of magnet link that I try (not a real > one) but for > > > which only one source is allowed (that source being the http:// web site; > > nothing from the Gnutella network is available): > > > > > > magnet:?xt=urn:sha1:EI66YQYRH47K73NNFPSQDUV&dn=SomeMusicFile&xs=http://som > > where.com/path/thefile.mp3 > > > > Magnet's such as the above only download from the web site specified by > > xs, but don't use the Gnutella network -- is that related to the issue of > > re-query being disabled during downloads or do you think these are two > > separate issues? > > > > Ideally I'd like to specify a number of sources for xs (so that the > > download can start from multiple web sites), which Limewire will use to > > start the download while it queries the larger Gnutell network. Is this > > possible given the way Limewire is designed today? > > > > With thanks for any advice you might have on these two issues, > > > > Brian > > -- > > ___________________________________________________________ > > Sign-up for Ads Free at Mail.com > > http://promo.mail.com/adsfreejump.htm > > > > > > _______________________________________________ > > core-dev mailing list > > [email protected] > > http://www.limewire.org/mailman/listinfo/core-dev > > > > ------------------------------ > > _______________________________________________ > core-dev mailing list > [email protected] > http://www.limewire.org/mailman/listinfo/core-dev > > > End of core-dev Digest, Vol 6, Issue 6 > ************************************** > -- ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm _______________________________________________ core-dev mailing list [email protected] http://www.limewire.org/mailman/listinfo/core-dev _______________________________________________ core-dev mailing list [email protected] http://www.limewire.org/mailman/listinfo/core-dev