- if [ -x /usr/libexec/discoveryd -a -x /usr/sbin/discoveryutil ]; then
- ${PRIV} pgrep -q -x discoveryd
- if [ $? -eq 0 ]; then
- P_ARG=""
- case "`${PRIV} discoveryutil help 2>&1`" in
- Warning:* )
- P_ARG="--priv"
- ;;
- esac
- #
- # upgrade logging (if needed)
- #
- CLASS_o=`${PRIV} discoveryutil ${P_ARG} logclass`
- CLASS_n=`${PRIV} discoveryutil ${P_ARG} logclass Cache`
-
- LEVEL_o=`${PRIV} discoveryutil ${P_ARG} loglevel | awk '{ print $5 }'`
- if [ ${LEVEL_o} -le 1 ]; then
- LEVEL_n=`${PRIV} discoveryutil ${P_ARG} loglevel Intermediate | awk '{ print $5 }'`
- else
- LEVEL_n=${LEVEL_o}
- fi
-
- cp /dev/null discoveryd-info
- for c in \
- clientlisteners \
- configinterfaces \
- configresolvers \
- dnsproxystate \
- mdnsbrowses \
- mdnscachecontents \
- mdnscachestats \
- mdnslisteners \
- mdnsregistrations \
- nattraversals \
- udnscachecontents \
- udnscachestats \
- udnsresolvers \
- udnsunanswered \
-
- do
- echo "#" >> discoveryd-info
- echo "# discoveryutil ${c}" >> discoveryd-info
- echo "#" >> discoveryd-info
- ${PRIV} discoveryutil ${P_ARG} --timeout ${c} >> discoveryd-info
- done
-
- if [ "$CLASS_o" != "$CLASS_n" ]; then
- #
- # restore log settings
- #
- ${PRIV} discoveryutil ${P_ARG} lognoclass Cache >/dev/null
- fi
-
- if [ "$LEVEL_o" != "$LEVEL_n" ]; then
- ${PRIV} discoveryutil ${P_ARG} loglevel ${LEVEL_o} >/dev/null
- fi
-
- ${PRIV} cat /var/run/com.apple.discoveryd-trace.sb > com.apple.discoveryd-trace.sb 2>/dev/null
- fi
- fi