TROUBLESHOOTING

Q: Compiling daapd with howl support fails. It works without howl.

A: The howl API regrettably has changed in howl 0.9.6. Use daapd 0.2.3c or later with howl 0.9.6 and earlier versions with howl 0.9.5 or earlier. 


Q: Does daapd work with iTunes 4.6 or 4.7?

A: It does. Make sure you have at least daapd 0.2.2a. Also make sure that daapd is linked against a recent version of libhttpd-persistent (at least version g). The following output is an indication that daapd uses an earlier version of libhttpd:

192.168.53.69 - - [10/May/2004:12:46:11 CEST] GET "daap:/192.168.53.68:3689/server-info" HTTP/1.1 400 0

You should get an output like that instead:

10.0.0.100 - - [12/Jun/2004:12:17:06 CEST] GET "/server-info" HTTP/1.1 200 132


Q: My server does not appear in iTunes.

A: For servers to appear in iTunes, they have to make themselves known by broadcasting mDNS Packets (this is part of Rendezvous/Zeroconf). Daapd only advertises itself when it is compiled with the howl library. If you have disabled howl in the makefile (HOWL_ENABLE = 0), you have to use an external mDNS Responder, for example Apple's mDNSProxyResponderPosix. If you have compiled daapd with howl and your server still does not appear in iTunes, see the next two questions.


Q: My server does not appear in iTunes. daapd outputs "sw_discovery_init() failed".

A: Daapd uses the howl library for advertising its existence. Howl includes a program called mDNSResponder that has to launched before daapd.


Q: My server still doesn not appear in iTunes. howl is installed and started correctly.

A: Rendezvous only works for servers in the same IP subnet. If there are any routers between the server and the iTunes client, the service discovery does not work (mDNS packets have a TTL of 1, so they are discarded at routers). This is a limitation of Rendezvous. A workaround is to start an mDNS Proxy in the subnet where the iTunes client lives.


Q: But server and iTunes are on the same subnet!

A: Ok, now you've probably found a bug. Please contact me when this happens.


Q: make aborts with the following error:

db.cc: In member function `int Database::getId3Comment(id3_tag*, 
   std::string&)':
db.cc:75: `id3_frame_field' undeclared (first use this function)

A: Your version of libid3tag is too old. You need at least version 0.15.1b. You can get it from http://www.underbit.com/products/mad/
