Files
packages/net/bind/files/named.init
David Härdeman c3a4dc458e bind: don't break IPv6 support
What started in #20183 as a attempt to clean up noise in the logfiles,
turned out to be causing denial-of-service for dual-stack and especially
IPv6-only environments.

Breaking core network functionality cannot possibly be less important
than cosmetic issues, and those affected by log spam can avoid it via
other means (e.g. "query-source-v6 none;" in named.conf).

There's no reliable heuristic for determining whether there's IPv6
connectivity at the time bind is started which will catch any and all
corner cases, as discussed in #26327.

So, remove this logic for now. If a suitable heuristic can be devised,
it can always be added in a subsequent patch, but I have my doubts.

(Also, quote one variable to make shellcheck happy)

Closes: #26327
Closes: #20468

Signed-off-by: David Härdeman <david@hardeman.nu>
2025-09-19 08:35:38 -07:00

52 lines
1.1 KiB
Bash

#!/bin/sh /etc/rc.common
# Copyright (C) 2014 Noah Meyerhans <frodo@morgul.net>
# Licensed under the terms of the GNU General Public License version 2
# or (at your discretion) any later later version
# shellcheck disable=SC2034
USE_PROCD=1
START=22
config_dir=/etc/bind
run_dir=/var/run/named
log_dir=/var/log/named
cache_dir=/var/cache/bind
zone_dir=$config_dir/zones
lib_dir=/var/lib/bind
config_file=$config_dir/named.conf
reload_service() {
rndc -q reload
}
start_service() {
user_exists bind 57 || user_add bind 57
group_exists bind 57 || group_add bind 57
for dir in $run_dir $log_dir $cache_dir $zone_dir; do
if [ ! -e "$dir" ]; then
mkdir -p "$dir"
fi
chown bind:bind "$dir"
chmod 0775 "$dir"
done
if [ ! -e $lib_dir ]; then
mkdir -p "$(dirname $lib_dir)"
ln -sf $zone_dir $lib_dir
fi
if [ ! -s /etc/bind/rndc.key ] && [ ! -s /etc/bind/rndc.conf ]; then
rndc-confgen -a
chown bind:bind /etc/bind/rndc.key
chmod 0640 /etc/bind/rndc.key
fi
procd_open_instance
procd_set_param command /usr/sbin/named -u bind -f -c $config_file
procd_set_param file $config_file $config_dir/db.*
procd_set_param respawn
procd_close_instance
}