In my quest to find a working DAAP implementation, I decided to give the Java version of iLeech a try. I knew that it wouldn't work out of the box, but I figured that Java's networking classes may be more useful/robust than Perl's.
To actually build iLeech, I decided to give Eclipse a try (iLeech uses an extensive package hierarchy that I didn't feel like setting up by hand). It's pretty nice, at least on XP, I've yet to try the OS X build.
Once I got iLeech to build, I first tweaked a couple of things (default to "localhost" for host field, hook up the return key to the connect button, make the "Exit" menu item work) to familiarize myself with both the IDE and the code. Then I tried to enable HTTP 1.1 connection reuse, since that's what seems to prevent current DAAP implementations from connecting to iTunes 4.1. There's supposedly a Java environment variable,
http.keepalive, which if set to true will take care of things, but it doesn't seem to work. The current plan is to use the Jakarta Commons HttpClient (part of the Apache project), which seems to be more robust.
Oh, and for the longest time I couldn't connect at all with iLeech to
beria, but once I did a traceroute I realized I was past the TTL of 2 limit that iTunes imposes.