kindall wrote:I half expect that Apple is planning to fix the bug in the next iTunes update and that's why Roku can't commit to a specific timeframe.
The iTunes DAAP protocol changes that have caused issues with any 3rd party software trying to _access_ an iTunes 7.0 host are not a bug. It was quite clearly a conscious decision by Apple to change the client validation system.
To understand this, you will probably want to read along, while looking at the traffic that flows between two legitimate iTunes hosts when connecting to share. An example of this can be found
here. DAAP is loosely based of HTTP, so should be pretty easy to understand.
Whenever a DAAP client (such as Roku) attempts to connect to an iTunes server, to see and browse the list of music, it is required to send a 'Client-DAAP-Validation' header after a certain point. Now this might look like gibberish to most eyes, but it a combination of hashes. Importantly, it is based on some variable properties of each request, ie you can't just keep squirting back the same hash for every request. If you do not have the correct hash, you will receive a '403 Forbidden' and no further information will be sent to you from the iTunes you are trying to connect to.
PREVIOUSLY:
The method used to calculate the hash for version up to 6.0.5 has been well documented for some time, see
libOpenDAAP.
This worked well, and hasn't changed for quite some time. Every third party client which connects to an iTunes =< 6.0.5 has used this same method of calculating the MD5 hash.
iTUNES 7.0:
The release of iTunes 7.0 saw a change in the required 'Client-DAAP-Validation'. To connect to an iTunes 7.0 server, you need to be able to generate a new valid 'Client-DAAP-Validation' hash.
Thus, old versions of iTunes 6, Roku, Banshee, OurTunes ... any 3rd party DAAP client is currently unable to connect to iTunes 7.0
Interestingly, Apple did include the ability to generate OLD hashes in iTunes 7.0. Thus it could be argued this was a forced update intention, as more and more people migrate to iTunes 7.0, the less people you can play music from if you remain on 6.0, although others can still play yours.
There is current work into reversing the new 'Client-DAAP-Validation' hash, and progress has been made already. For instance, it now appears to be a combination of a static string, a MD5 hash, followed by another static string, followed by a different MD5 hash and a SHA-1 hash.
For further details of these hash methods, see:
MD5
SHA-1
The likely reason Roku cannot provide a definate timeframe is that 1) Apple is not willing to provide the details of 'Client-DAAP-Validation' to even licensees, and 2) there is no way of knowing how long it might take to work out the method used by iTunes 7.0 to generate this new hash.