Acontece que o iTunes envia um pedido GET incomum, em vez do padrão 'GET / path / to / whatever', o iTunes (ao navegar via DAAP) envia 'GET daap: //ip.address/path/to/whatever' . O que é bom disso.
Isso pode parecer uma pergunta para o stackoverflow, mas tenha paciência comigo:
Eu criei (a maioria) um servidor DAAP em Ruby, modelei sua saída no servidor mt-daapd e, consequentemente, meus dados de teste são tais que meu servidor retorna exatamente * o que o servidor mt-daapd faz em a mesma situação.
(* A única diferença é que o meu servidor adiciona o cabeçalho HTTP 'Connection: close', que eu não posso, por toda a vida, descobrir como parar - que é uma pergunta para o stackoverflow )
Eu posso entrar em mais detalhes, se necessário, mas meu problema é que enquanto o Songbird localiza, anexa e lê meu servidor DAAP perfeitamente, o iTunes se recusa a fazer qualquer outra coisa além da primeira requisição '/ server-info' (ver seção '1 "Informações do servidor" da especificação não oficial . Devo acrescentar que o compartilhamento mt-daapd funciona perfeitamente, mesmo quando meu servidor daap é rejeitado!
Obviamente, isso pode ser que o iTunes não goste do fato de eu estar enviando o cabeçalho 'Connection: close', mas alguém sabe algo mais sobre o modo como o iTunes 9.0.X espera que seu DAAP seja servido? Ou em qualquer lugar que eu possa descobrir - a menos que descasque camadas do código do mt-daapd?
muito obrigado!