[Dnsmasq-discuss] What's this error in syslog mean?

Chris Green cl at isbd.net
Mon Sep 6 11:51:07 UTC 2021


On Mon, Sep 06, 2021 at 01:17:52PM +0200, Matus UHLAR - fantomas via Dnsmasq-discuss wrote:
> On 05.09.21 22:45, Chris Green wrote:
> > I did say what versions I was running.  The version which causes the
> > problem is 2.80, the version that fixes it is 2.84.
> 
> I don't think dnsmasq comes with init script for RPI.
> And I'm not sure anyone with RPI is reading this list (did someone reply so
> far?)
> 
It's part of the dnsmasq distribution on both Pi and Ubuntu and I
should think just about everywhere else:-

chris at dns$ dpkg -L dnsmasq
/.
/etc
/etc/default
/etc/default/dnsmasq
/etc/dnsmasq.conf
/etc/dnsmasq.d
/etc/dnsmasq.d/README
/etc/init.d
/etc/init.d/dnsmasq
/etc/insserv.conf.d
/etc/insserv.conf.d/dnsmasq
/etc/resolvconf
/etc/resolvconf/update.d
/etc/resolvconf/update.d/dnsmasq
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/dnsmasq.service
/usr
/usr/lib
/usr/lib/resolvconf
/usr/lib/resolvconf/dpkg-event.d
/usr/lib/resolvconf/dpkg-event.d/dnsmasq
/usr/lib/tmpfiles.d
/usr/lib/tmpfiles.d/dnsmasq.conf
/usr/share
/usr/share/dnsmasq
/usr/share/dnsmasq/installed-marker
/usr/share/doc
/usr/share/doc/dnsmasq

I've posted the diff as an attachment, I don't really think it's very
edifying! :-)

-- 
Chris Green
-------------- next part --------------
17a18
> INSTANCE="${2}"
22,23c23,24
< if [ -r /etc/default/$NAME ]; then
< 	. /etc/default/$NAME
---
> if [ -r /etc/default/${NAME}${INSTANCE:+.${INSTANCE}} ]; then
>     . /etc/default/${NAME}${INSTANCE:+.${INSTANCE}}
26c27
< # Get the system locale, so that messages are in the correct language, and the 
---
> # Get the system locale, so that messages are in the correct language, and the
29,30c30,31
<         . /etc/default/locale
<         export LANG
---
>     . /etc/default/locale
>     export LANG
34c35
< # package 'dnsmasq' is removed but not purged, even if the dnsmasq-base 
---
> # package 'dnsmasq' is removed but not purged, even if the dnsmasq-base
37,38c38,39
<  
< test -x $DAEMON || exit 0
---
> 
> test -x ${DAEMON} || exit 0
42c43
<          . /lib/lsb/init-functions
---
>     . /lib/lsb/init-functions
44,64c45,65
<          log_warning_msg () {
<             echo "${@}."
<          }
< 
<          log_success_msg () {
<             echo "${@}."
<          }
< 
<          log_daemon_msg () {
<             echo -n "${1}: $2"
<          }
< 
< 	 log_end_msg () {
<             if [ $1 -eq 0 ]; then
<               echo "."
<             elif [ $1 -eq 255 ]; then
<               /bin/echo -e " (warning)."
<             else
<               /bin/echo -e " failed!"
<             fi
<          }
---
>     log_warning_msg () {
>         echo "${@}."
>     }
> 
>     log_success_msg () {
>         echo "${@}."
>     }
> 
>     log_daemon_msg () {
>         echo -n "${1}: ${2}"
>     }
> 
>     log_end_msg () {
>         if [ "${1}" -eq 0 ]; then
>             echo "."
>         elif [ "${1}" -eq 255 ]; then
>             /bin/echo -e " (warning)."
>         else
>             /bin/echo -e " failed!"
>         fi
>     }
76c77
< # Note that if the resolvconf package is installed it is not possible to 
---
> # Note that if the resolvconf package is installed it is not possible to
80,81c81,82
< if [ ! "$RESOLV_CONF" ] &&
<    [ "$IGNORE_RESOLVCONF" != "yes" ] &&
---
> if [ ! "${RESOLV_CONF}" ] &&
>    [ "${IGNORE_RESOLVCONF}" != "yes" ] &&
84c85
< 	RESOLV_CONF=/run/dnsmasq/resolv.conf
---
>     RESOLV_CONF=/run/dnsmasq/resolv.conf
87,88c88,89
< for INTERFACE in $DNSMASQ_INTERFACE; do
< 	DNSMASQ_INTERFACES="$DNSMASQ_INTERFACES -i $INTERFACE"
---
> for INTERFACE in ${DNSMASQ_INTERFACE}; do
>     DNSMASQ_INTERFACES="${DNSMASQ_INTERFACES} -i ${INTERFACE}"
91,92c92,93
< for INTERFACE in $DNSMASQ_EXCEPT; do
< 	DNSMASQ_INTERFACES="$DNSMASQ_INTERFACES -I $INTERFACE"
---
> for INTERFACE in ${DNSMASQ_EXCEPT}; do
>     DNSMASQ_INTERFACES="${DNSMASQ_INTERFACES} -I ${INTERFACE}"
95c96
< if [ ! "$DNSMASQ_USER" ]; then
---
> if [ ! "${DNSMASQ_USER}" ]; then
100c101
< # It's automatically ignored if  --interface --except-interface, --listen-address 
---
> # It's automatically ignored if --interface --except-interface, --listen-address
105c106
< DNSMASQ_OPTS="$DNSMASQ_OPTS --local-service"
---
> DNSMASQ_OPTS="${DNSMASQ_OPTS} --local-service"
107,108c108,109
< # If the dns-root-data package is installed, then the trust anchors will be 
< # available in $ROOT_DS, in BIND zone-file format. Reformat as dnsmasq
---
> # If the dns-root-data package is installed, then the trust anchors will be
> # available in ROOT_DS, in BIND zone-file format. Reformat as dnsmasq
113c114
< if [ -f $ROOT_DS ]; then
---
> if [ -f ${ROOT_DS} ]; then
119,145c120,146
<         # Return
< 	#   0 if daemon has been started
< 	#   1 if daemon was already running
< 	#   2 if daemon could not be started
< 
<         # /run may be volatile, so we need to ensure that
<         # /run/dnsmasq exists here as well as in postinst
<         if [ ! -d /run/dnsmasq ]; then
<            mkdir /run/dnsmasq || return 2
<            chown dnsmasq:nogroup /run/dnsmasq || return 2
<         fi
< 	[ -x /sbin/restorecon ] && /sbin/restorecon /run/dnsmasq
< 	
< 	start-stop-daemon --start --quiet --pidfile /run/dnsmasq/$NAME.pid --exec $DAEMON --test > /dev/null || return 1
< 	start-stop-daemon --start --quiet --pidfile /run/dnsmasq/$NAME.pid --exec $DAEMON -- \
< 		-x /run/dnsmasq/$NAME.pid \
< 	        ${MAILHOSTNAME:+ -m $MAILHOSTNAME} \
< 		${MAILTARGET:+ -t $MAILTARGET} \
< 		${DNSMASQ_USER:+ -u $DNSMASQ_USER} \
< 		${DNSMASQ_INTERFACES:+ $DNSMASQ_INTERFACES} \
< 		${DHCP_LEASE:+ -l $DHCP_LEASE} \
< 		${DOMAIN_SUFFIX:+ -s $DOMAIN_SUFFIX} \
< 		${RESOLV_CONF:+ -r $RESOLV_CONF} \
< 		${CACHESIZE:+ -c $CACHESIZE} \
< 	        ${CONFIG_DIR:+ -7 $CONFIG_DIR} \
< 		${DNSMASQ_OPTS:+ $DNSMASQ_OPTS} \
< 		|| return 2
---
>     # Return
>     #   0 if daemon has been started
>     #   1 if daemon was already running
>     #   2 if daemon could not be started
> 
>     # /run may be volatile, so we need to ensure that
>     # /run/dnsmasq exists here as well as in postinst
>     if [ ! -d /run/dnsmasq ]; then
>         mkdir /run/dnsmasq || { [ -d /run/dnsmasq ] || return 2 ; }
>         chown dnsmasq:nogroup /run/dnsmasq || return 2
>     fi
>     [ -x /sbin/restorecon ] && /sbin/restorecon /run/dnsmasq
> 
>     start-stop-daemon --start --quiet --pidfile /run/dnsmasq/${NAME}${INSTANCE:+.${INSTANCE}}.pid --exec ${DAEMON} --test > /dev/null || return 1
>     start-stop-daemon --start --quiet --pidfile /run/dnsmasq/${NAME}${INSTANCE:+.${INSTANCE}}.pid --exec ${DAEMON} -- \
>         -x /run/dnsmasq/${NAME}${INSTANCE:+.${INSTANCE}}.pid \
>         ${MAILHOSTNAME:+ -m ${MAILHOSTNAME}} \
>         ${MAILTARGET:+ -t ${MAILTARGET}} \
>         ${DNSMASQ_USER:+ -u ${DNSMASQ_USER}} \
>         ${DNSMASQ_INTERFACES:+ ${DNSMASQ_INTERFACES}} \
>         ${DHCP_LEASE:+ -l ${DHCP_LEASE}} \
>         ${DOMAIN_SUFFIX:+ -s ${DOMAIN_SUFFIX}} \
>         ${RESOLV_CONF:+ -r ${RESOLV_CONF}} \
>         ${CACHESIZE:+ -c ${CACHESIZE}} \
>         ${CONFIG_DIR:+ -7 ${CONFIG_DIR}} \
>         ${DNSMASQ_OPTS:+ ${DNSMASQ_OPTS}} \
>         || return 2
153,166c154,166
< 	for interface in $DNSMASQ_EXCEPT
< 	do
< 		[ $interface = lo ] && return
< 	done
< 
< # Also skip this if DNS functionality is disabled in /etc/dnsmasq.conf
< 	if grep -qs '^port=0' /etc/dnsmasq.conf; then
< 		return
< 	fi
< 
<         if [ -x /sbin/resolvconf ] ; then
< 		echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo.$NAME
< 	fi
< 	return 0
---
>     for interface in ${DNSMASQ_EXCEPT}; do
>         [ ${interface} = lo ] && return
>     done
> 
>     # Also skip this if DNS functionality is disabled in /etc/dnsmasq.conf
>     if grep -qs '^port=0' /etc/dnsmasq.conf; then
>         return
>     fi
> 
>     if [ -x /sbin/resolvconf ] ; then
>         echo "nameserver 127.0.0.1" | /sbin/resolvconf -a lo.${NAME}${INSTANCE:+.${INSTANCE}}
>     fi
>     return 0
171,176c171,176
< 	# Return
< 	#   0 if daemon has been stopped
< 	#   1 if daemon was already stopped
< 	#   2 if daemon could not be stopped
< 	#   other if a failure occurred
< 	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile /run/dnsmasq/$NAME.pid --name $NAME
---
>     # Return
>     #   0 if daemon has been stopped
>     #   1 if daemon was already stopped
>     #   2 if daemon could not be stopped
>     #   other if a failure occurred
>     start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile /run/dnsmasq/${NAME}${INSTANCE:+.${INSTANCE}}.pid --name ${NAME}
181,184c181,184
< 	if [ -x /sbin/resolvconf ] ; then
< 		/sbin/resolvconf -d lo.$NAME
< 	fi
< 	return 0
---
>     if [ -x /sbin/resolvconf ] ; then
>         /sbin/resolvconf -d lo.${NAME}${INSTANCE:+.${INSTANCE}}
>     fi
>     return 0
189,199c189,199
< 	# Return
< 	#   0 if daemon is running
< 	#   1 if daemon is dead and pid file exists
< 	#   3 if daemon is not running
< 	#   4 if daemon status is unknown
< 	start-stop-daemon --start --quiet --pidfile /run/dnsmasq/$NAME.pid --exec $DAEMON --test > /dev/null
< 	case "$?" in
< 		0) [ -e "/run/dnsmasq/$NAME.pid" ] && return 1 ; return 3 ;;
< 		1) return 0 ;;
< 		*) return 4 ;;
< 	esac
---
>     # Return
>     #   0 if daemon is running
>     #   1 if daemon is dead and pid file exists
>     #   3 if daemon is not running
>     #   4 if daemon status is unknown
>     start-stop-daemon --start --quiet --pidfile /run/dnsmasq/${NAME}${INSTANCE:+.${INSTANCE}}.pid --exec ${DAEMON} --test > /dev/null
>     case "${?}" in
>       0) [ -e "/run/dnsmasq/${NAME}${INSTANCE:+.${INSTANCE}}.pid" ] && return 1 ; return 3 ;;
>       1) return 0 ;;
>       *) return 4 ;;
>     esac
202c202
< case "$1" in
---
> case "${1}" in
204,222c204,222
< 	test "$ENABLED" != "0" || exit 0
< 	log_daemon_msg "Starting $DESC" "$NAME"
< 	start
< 	case "$?" in
< 		0)
< 			log_end_msg 0
< 			start_resolvconf
< 			exit 0
< 			;;
< 		1)
< 			log_success_msg "(already running)"
< 			exit 0
< 			;;
< 		*)
< 			log_end_msg 1
< 			exit 1
< 			;;
< 	esac
< 	;;
---
>     test "${ENABLED}" != "0" || exit 0
>     log_daemon_msg "Starting ${DESC}" "${NAME}${INSTANCE:+.${INSTANCE}}"
>     start
>     case "${?}" in
>       0)
>         log_end_msg 0
>         start_resolvconf
>         exit 0
>         ;;
>       1)
>         log_success_msg "(already running)"
>         exit 0
>         ;;
>       *)
>         log_end_msg 1
>         exit 1
>         ;;
>     esac
>     ;;
224,241c224,246
< 	stop_resolvconf
< 	if [ "$ENABLED" != "0" ]; then
<              log_daemon_msg "Stopping $DESC" "$NAME"
< 	fi
< 	stop
<         RETVAL="$?"
< 	if [ "$ENABLED" = "0" ]; then
< 	    case "$RETVAL" in
< 	       0) log_daemon_msg "Stopping $DESC" "$NAME"; log_end_msg 0 ;;
<             esac 
< 	    exit 0
< 	fi
< 	case "$RETVAL" in
< 		0) log_end_msg 0 ; exit 0 ;;
< 		1) log_warning_msg "(not running)" ; exit 0 ;;
< 		*) log_end_msg 1; exit 1 ;;
< 	esac
< 	;;
---
>     stop_resolvconf
>     if [ "${ENABLED}" != "0" ]; then
>         log_daemon_msg "Stopping ${DESC}" "${NAME}${INSTANCE:+.${INSTANCE}}"
>     fi
>     stop
>     RETVAL="${?}"
>     if [ "${ENABLED}" = "0" ]; then
>         case "${RETVAL}" in
>           0) log_daemon_msg "Stopping ${DESC}" "${NAME}${INSTANCE:+.${INSTANCE}}"; log_end_msg 0 ;;
>         esac
>         exit 0
>     fi
>     case "${RETVAL}" in
>       0) log_end_msg 0 ; exit 0 ;;
>       1) log_warning_msg "(not running)" ; exit 0 ;;
>       *) log_end_msg 1; exit 1 ;;
>     esac
>     ;;
>   checkconfig)
>     ${DAEMON} --test ${CONFIG_DIR:+ -7 ${CONFIG_DIR}} ${DNSMASQ_OPTS:+ ${DNSMASQ_OPTS}} >/dev/null 2>&1
>     RETVAL="${?}"
>     exit ${RETVAL}
>     ;;
243,275c248,280
< 	test "$ENABLED" != "0" || exit 1
< 	$DAEMON --test ${CONFIG_DIR:+ -7 $CONFIG_DIR} ${DNSMASQ_OPTS:+ $DNSMASQ_OPTS} >/dev/null 2>&1
< 	if [ $? -ne 0 ]; then
< 	    NAME="configuration syntax check"
< 	    RETVAL="2"
< 	else   
< 	    stop_resolvconf
< 	    stop
< 	    RETVAL="$?"
<         fi
< 	log_daemon_msg "Restarting $DESC" "$NAME"
< 	case "$RETVAL" in
< 		0|1)
< 		        sleep 2
< 			start
< 			case "$?" in
< 				0)
< 					log_end_msg 0
< 					start_resolvconf
< 					exit 0
< 					;;
< 			        *)
< 					log_end_msg 1
< 					exit 1
< 					;;
< 			esac
< 			;;
< 		*)
< 			log_end_msg 1
< 			exit 1
< 			;;
< 	esac
< 	;;
---
>     test "${ENABLED}" != "0" || exit 1
>     ${DAEMON} --test ${CONFIG_DIR:+ -7 ${CONFIG_DIR}} ${DNSMASQ_OPTS:+ ${DNSMASQ_OPTS}} >/dev/null 2>&1
>     if [ ${?} -ne 0 ]; then
>         NAME="configuration syntax check"
>         RETVAL="2"
>     else
>         stop_resolvconf
>         stop
>         RETVAL="${?}"
>     fi
>     log_daemon_msg "Restarting ${DESC}" "${NAME}${INSTANCE:+.${INSTANCE}}"
>     case "${RETVAL}" in
>       0|1)
>         sleep 2
>         start
>         case "${?}" in
>           0)
>             log_end_msg 0
>             start_resolvconf
>             exit 0
>             ;;
>           *)
>             log_end_msg 1
>             exit 1
>             ;;
>         esac
>         ;;
>       *)
>         log_end_msg 1
>         exit 1
>         ;;
>     esac
>     ;;
277,285c282,290
< 	log_daemon_msg "Checking $DESC" "$NAME"
< 	status
< 	case "$?" in
< 		0) log_success_msg "(running)" ; exit 0 ;;
< 		1) log_success_msg "(dead, pid file exists)" ; exit 1 ;;
< 		3) log_success_msg "(not running)" ; exit 3 ;;
< 		*) log_success_msg "(unknown)" ; exit 4 ;;
< 	esac
< 	;;
---
>     log_daemon_msg "Checking ${DESC}" "${NAME}${INSTANCE:+.${INSTANCE}}"
>     status
>     case "${?}" in
>       0) log_success_msg "(running)" ; exit 0 ;;
>       1) log_success_msg "(dead, pid file exists)" ; exit 1 ;;
>       3) log_success_msg "(not running)" ; exit 3 ;;
>       *) log_success_msg "(unknown)" ; exit 4 ;;
>     esac
>     ;;
287,288c292,293
<         kill -s USR1 `cat /run/dnsmasq/$NAME.pid`
< 	;;
---
>     kill -s USR1 `cat /run/dnsmasq/${NAME}${INSTANCE:+.${INSTANCE}}.pid`
>     ;;
290,291c295,296
< 	start_resolvconf
< 	;;
---
>     start_resolvconf
>     ;;
293,294c298,299
< 	stop_resolvconf
< 	;;
---
>     stop_resolvconf
>     ;;
296,313c301,318
< # /run may be volatile, so we need to ensure that
<         # /run/dnsmasq exists here as well as in postinst
<         if [ ! -d /run/dnsmasq ]; then
<            mkdir /run/dnsmasq || return 2
<            chown dnsmasq:nogroup /run/dnsmasq || return 2
<         fi
< 	exec $DAEMON -x /run/dnsmasq/$NAME.pid \
< 	    ${MAILHOSTNAME:+ -m $MAILHOSTNAME} \
< 	    ${MAILTARGET:+ -t $MAILTARGET} \
< 	    ${DNSMASQ_USER:+ -u $DNSMASQ_USER} \
< 	    ${DNSMASQ_INTERFACES:+ $DNSMASQ_INTERFACES} \
< 	    ${DHCP_LEASE:+ -l $DHCP_LEASE} \
< 	    ${DOMAIN_SUFFIX:+ -s $DOMAIN_SUFFIX} \
< 	    ${RESOLV_CONF:+ -r $RESOLV_CONF} \
< 	    ${CACHESIZE:+ -c $CACHESIZE} \
< 	    ${CONFIG_DIR:+ -7 $CONFIG_DIR} \
< 	    ${DNSMASQ_OPTS:+ $DNSMASQ_OPTS} 
< 	;;
---
>     # /run may be volatile, so we need to ensure that
>     # /run/dnsmasq exists here as well as in postinst
>     if [ ! -d /run/dnsmasq ]; then
>         mkdir /run/dnsmasq || { [ -d /run/dnsmasq ] || return 2 ; }
>         chown dnsmasq:nogroup /run/dnsmasq || return 2
>     fi
>     exec ${DAEMON} -x /run/dnsmasq/${NAME}${INSTANCE:+.${INSTANCE}}.pid \
>         ${MAILHOSTNAME:+ -m ${MAILHOSTNAME}} \
>         ${MAILTARGET:+ -t ${MAILTARGET}} \
>         ${DNSMASQ_USER:+ -u ${DNSMASQ_USER}} \
>         ${DNSMASQ_INTERFACES:+ ${DNSMASQ_INTERFACES}} \
>         ${DHCP_LEASE:+ -l ${DHCP_LEASE}} \
>         ${DOMAIN_SUFFIX:+ -s ${DOMAIN_SUFFIX}} \
>         ${RESOLV_CONF:+ -r ${RESOLV_CONF}} \
>         ${CACHESIZE:+ -c ${CACHESIZE}} \
>         ${CONFIG_DIR:+ -7 ${CONFIG_DIR}} \
>         ${DNSMASQ_OPTS:+ ${DNSMASQ_OPTS}}
>     ;;
315,317c320,322
< 	echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|dump-stats|status}" >&2
< 	exit 3
< 	;;
---
>     echo "Usage: /etc/init.d/${NAME} {start|stop|restart|force-reload|dump-stats|status}" >&2
>     exit 3
>     ;;
321d325
< 


More information about the Dnsmasq-discuss mailing list