Echoing scaramanga's sentiments...
I think it is pretty sad that D-Link is using an extremely old zeroconf solution knowing full well (a) it is unsupported by the author, (b) there is an open source solution that is awesome (i.e., avahi) and kept up to date, and (c) Apple's own implementation of bonjour has seen many updates since 2005, which is the last time Porchdog made any real updates to their howl implementation.
In any event, when you start avahi via ffp using a shell script in the start directory, you will need to do something like the following (look for the kill statement inside the start function):
#!/ffp/bin/sh
# PROVIDE:
# REQUIRE:
# BEFORE:
. /ffp/etc/ffp.subr
name="avahi-daemon"
start_cmd="avahid_start"
stop_cmd="avahid_stop"
status_cmd="avahid_status"
avahid_check_user_group()
{
export GROUP_CHK=`cat /etc/group | grep avahi`
if [ "${GROUP_CHK}" = "" ]; then
groupadd avahi -g 1000
export GROUP_ADD="true"
else
export GROUP_ADD="false"
fi
export USER_CHK=`cat /etc/passwd | grep avahi`
if [ "${USER_CHK}" = "" ]; then
adduser -S -G avahi -D -H avahi
export USER_ADD="true"
else
export USER_ADD="false"
fi
if [ "${GROUP_ADD}" = "true" -o "${USER_ADD}" = "true" ]; then
/ffp/sbin/store-passwd.sh
fi
}
avahid_start()
{
avahid_check_user_group
kill -9 `pidof mDNSResponder`
export AVAHID_CHK=`ps -ef | grep avahi | grep -v grep | grep -v start`
if [ "${AVAHID_CHK}" = "" ]; then
if [ -f /ffp/var/run/avahi-daemon/pid ]; then
rm -f /ffp/var/run/avahi-daemon/pid
fi
fi
if [ -e /ffp/sbin/avahi-daemon ]; then
/ffp/sbin/avahi-daemon -V
/ffp/sbin/avahi-daemon -c
if [ "$?" -ne "0" ]; then
if [ -f /ffp/var/run/avahi-daemon/pid ]; then
rm -f /ffp/var/run/avahi-daemon/pid
fi
echo "Starting..."
/ffp/sbin/avahi-daemon -f /ffp/etc/avahi/avahi-daemon.conf -D
else
echo "Already Running"
fi
else
echo "No Binary"
fi
}
avahid_stop()
{
export AVAHID_CHK=`ps -ef | grep avahi | grep -v grep | grep -v stop`
if [ "${AVAHID_CHK}" = "" ]; then
if [ -f /ffp/var/run/avahi-daemon/pid ]; then
rm -f /ffp/var/run/avahi-daemon/pid
fi
fi
if [ -e /ffp/sbin/avahi-daemon ]; then
/ffp/sbin/avahi-daemon -V
/ffp/sbin/avahi-daemon -c
if [ "$?" -ne "0" ]; then
echo "Not Running"
else
echo "Stopping..."
/ffp/sbin/avahi-daemon -k
fi
else
echo "No Binary"
fi
if [ -f /ffp/var/run/avahi-daemon/pid ]; then
rm -f /ffp/var/run/avahi-daemon/pid
fi
}
avahid_status()
{
export AVAHID_CHK=`ps -ef | grep avahi | grep -v grep | grep -v status`
if [ "${AVAHID_CHK}" = "" ]; then
if [ -f /ffp/var/run/avahi-daemon/pid ]; then
rm -f /ffp/var/run/avahi-daemon/pid
fi
fi
if [ -e /ffp/sbin/avahi-daemon ]; then
/ffp/sbin/avahi-daemon -V
/ffp/sbin/avahi-daemon -c
if [ "$?" -ne "0" ]; then
echo "Not Running"
if [ -f /ffp/var/run/avahi-daemon/pid ]; then
rm -f /ffp/var/run/avahi-daemon/pid
fi
else
echo "Running"
fi
else
echo "No Binary"
fi
}
run_rc_command "$1"
Note: I suppose I could use the pidof technique in other places in the shell script (instead of the multiple grep statements), but you get the idea.