Been running various tests all day. Seems like the following setup makes Time Machine work 'most' of the time now (ping via the host name still does not work, but I am getting the feeling that is okay from the Time Machine perspective -- Time Machine seems to fail every time the laptop comes out of sleep, with details that point to the host not found, which could be an issue with the mDNSReponder not correctly replying to multi-cast DNS queries from the Mac or a problem with the Mac not sending the right multi-cast DNS query).
start.sh#!/bin/sh
#re-write config file
bonjournamescript
echo mDNSResponder startup: `date` >> /mnt/HD_a2/Nas_Prog/Bonjour/mDNSResponder.log
mDNSResponder -d 1>>/mnt/HD_a2/Nas_Prog/Bonjour/mDNSResponder.log 2>&1 &
stop.sh#!/bin/sh
kill -9 `pidof mDNSResponder`
echo mDNSResponder Shutdown: `date` >> /mnt/HD_a2/Nas_Prog/Bonjour/mDNSResponder.log
echo >> /mnt/HD_a2/Nas_Prog/Bonjour/mDNSResponder.log
bonjournamescript#!/bin/sh
kill -9 `pidof mDNSResponder`
#re-write config file
host=$(hostname)
echo -e "$host"\\t_http._tcp\\tlocal.\\t80 > /etc/howl/mDNSResponder.conf
echo -e "$host"\\t_smb._tcp\\tlocal.\\t445 >> /etc/howl/mDNSResponder.conf
# start.sh will be responsible for starting the multi-cast DNS responder
# mDNSResponder &
You will notice that I am running the mDNSResponder in debug mode and piping its output to a log file to see if it starts up okay. I think there is a problem trying to double start the mDNSResponder (in start.sh and bonjournamescript), so I commented it out of bonjournamescript. The log file looks like the following:
mDNSResponder startup: Sun Jul 19 07:48:25 DST 2009
[assert] error: 95 (Operation not supported)
[assert] where: "Posix/posix_interface.c", "sw_network_interface_link_status", line: 296
[howl] registered interface 192.168.150.201 (6772)
[howl] registered homeNAS1(6768)
[howl] registered homeNAS1(6768)
[howl] starting up... (6772)
The 6772 and 6768 match the pid's that show up via top. There is a 3rd mDNSResponder process for which the pid is not reported in the log file. Of important note, though, is it is observed that the mDNSResponder logs some sort of assertion error. Is this a problem? Is this error affecting the zeroconfig nature of bonjour? Is this why only two of the three pids are reported in the log file, which means the 3rd process is stuck?
Side note... If you run
mDNSResponder -v, you get the following output:
posix_main begin
mDNSResponder release 1.0.0 Copyright(c) Porchdog Software 2003-2005.
Is it realistic to believe that Porchdog has not released any updates since their 2005 1.0.0 release? Apple's last mDNSResponder update came in Sept, 2006 (
http://developer.apple.com/opensource/internet/bonjour.html), which leads me to believe Porchdog's open source version has some updates post 1.0.0 out there (or at least has some defects?). Is this possible to confirm? It's a bit suspect to see a pure 1.0.0 release with no patch numbers, but I could be wrong.
In any event, would it be possible to add my shell script updates to the final 1.08 firmware for the Bonjour add-on? And if there is a newer version of the mDNSResponder, would it also be okay adding it to the 1.08 firmware?