Re: [core-dev] Hello, thanks, and Limwire.exe
Sam Berlin <[email protected]> Tue, 28 Dec 2004 16:10:53 -0500
| Newsgroups | gmane.network.gnutella.limewire.core.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Elias, Wow, that's a lot of work! Other than late-night perusals through the code (reliving the days of implementing some things), I've never really stopped to think about all that's been accomplished. Over 20 years of work -- wow! Sounds like the problems you're having with magnets recognizing correctly is a perfect place to dive into the code, if you're willing and want to help locate the source of the problem. All the problems you mentioned are within the Java code itself. LimeWire.exe really is just a stub launcher -- it will handle registering itself as the 'magnet protocol handler' if it sees it isn't registered, but that's about it. The checksums are done within the gui module, in com/limegroup/gnutella/gui/Main.sanityCheck. They exist solely to prevent errors from happening later on that are impossible to debug. (For instance, if even a single character is off in one of the jars, it can create bugs that will pop up in the strangest of places.) Believe it or not, corruption during download or installation isn't that rare. You can disable the checksum-checking by locating the 'hashes' file in the LimeWire directory and commenting out the checksums (they're just MD5 hashes) for each jar. I believe the hashes file does have to exist (even though it can be blank). As for magnets going astray... this is handled in a few places. The main entry point is in the gui package, in com/limegroup/gnutella/gui/Initializer. There's a section in there that has "START magnet check" before it, and calls 'ExternalControl' methods. ExternalControl (in the core module, in com/limegroup/gnutella/browser/ExternalControl) basically opens a port and checks to see if another LimeWire is listening on that port. If it finds a LimeWire listening, it sends the magnet command to that port and exits. If it doesn't, it queues the request locally. Thanks, Sam On Dec 28, 2004, at 1:53 PM, Elias Kouslais wrote: > Hi Sam, it's good to meet you. I'm looking forward to being involved, > and as you mention the source code is very well documented. As for > calculating person-years, it sounds like at least 16 years of work so > far (4 full time there over 4 years). Add in the [difficult to > measure] contributions from the open source community over that time, > and I wouldn't be surprised if that added at least 1 person year on > average each year to yield somewhere in the neighborhood of 20 > person-years (5 people x 4 years). To help put this in perspective, it > means that a single person with the right skills would take about two > decades to achieve what your team and the community have done in about > 4. Another way to look at it: if Limewire were created by a single > Computer Science college graduate who started the project upon > graduation at, say, 22 years old, would be middle-aged and with > teenagers driving around by now :) > > > Thanks for the advice on how to get magnet links to work. I belive > I've been doing that, and it works a lot of the time but once in a > while the non-CVS version is launched even though my CVS version is > running when the magnet is clicked. This has happened off and on over > the past several weeks that I've been getting up to speed, and it's > the same with at least one other person I work with. We both installed > the full version of Limewire, and ran that before installing the CVS > version. That configured our systems to handle magnet links, and then > we simply use run.bat to run our CVS versions before clicking on > magnets (this way the CVS version is running when the magnet is > clicked). Most of the time this works just fine, but about one in five > times (give or take) the original version of Limewire is actually > executed to handle the link: we then have both versions running (CVS > and the original). We often have to quit all apps and restart the > computer to reset things, but since it happens often we end up doing > that several times during the course of development. > > I have tried to overcome this by actually using Limewire.exe with my > own CVS compiled code, but it seems that Limewire.exe actually uses > checksums to ensure that it only launches the version of Limewire that > it ships with (I can't swap out the JARS and files that came with it > to use my own). I also tried to configure the Windows registry key to > use the run.bat, but that didn't work at all (well, it was worth a > shot!). > > Is there any chance that you could provide us with a compiled version > of Limewire.exe that doesn't use checksums so that we can use it with > our own compiled code? > > Best to you and the team, > Eli > Walla! Mail - get your free 1G mail today > _______________________________________________ > 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