1
0
mirror of https://git.openwrt.org/feed/packages.git synced 2024-06-17 21:03:56 +02:00

Merge pull request #14657 from pprindeville/isc-dhcp-gen-A-RRs

isc-dhcp: treat 'config host' like superset of 'config domain'
This commit is contained in:
Philip Prindeville 2021-02-05 14:19:13 -07:00 committed by GitHub
commit 6daaac6e30
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 14 deletions

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=isc-dhcp
UPSTREAM_NAME:=dhcp
PKG_VERSION:=4.4.1
PKG_RELEASE:=14
PKG_RELEASE:=15
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE

View File

@ -82,7 +82,8 @@ update() {
local lhs="$1" family="$2" type="$3"
shift 3
echo -e "$PREFIX" "$lhs $family $type $@\nsend"
[ $dynamicdns -eq 1 ] && \
echo -e "$PREFIX" "$lhs $family $type $@\nsend" >> $dyn_file
}
explode() {
@ -245,7 +246,7 @@ static_srvhosts() {
static_host_add() {
local cfg="$1"
local broadcast hostid macn macs mac name ip leasetime
local broadcast hostid macn macs mac name ip ips revip leasetime
config_get macs "$cfg" "mac"
[ -n "$macs" ] || return 0
@ -302,6 +303,14 @@ static_host_add() {
config_list_foreach "$cfg" "dhcp_option" append_dhcp_options
echo "}"
done
ips="$ip"
for ip in $ips; do
revip="$(rev_str "$ip" ".")"
update "$name.$domain." IN A "$ip"
update "$revip.in-addr.arpa." IN PTR "$name.$domain."
done
}
static_hosts() {
@ -396,7 +405,7 @@ dhcpd_add() {
gateway="$IP"
fi
gen_dhcp_subnet "$cfg" >> $config_file
gen_dhcp_subnet "$cfg"
}
general_config() {
@ -540,12 +549,6 @@ start_service() {
general_config > $config_file
rfc1918_nets=
config_foreach dhcpd_add dhcp 1
static_hosts >> $config_file
if [ $dynamicdns -eq 1 ]; then
cat <<EOF > $dyn_file
; Generated by /etc/init.d/dhcpd at $(date)
@ -553,15 +556,23 @@ start_service() {
ttl $TTL
EOF
fi
static_cnames >> $dyn_file
rfc1918_nets=
static_domains >> $dyn_file
config_foreach dhcpd_add dhcp 1 >> $config_file
static_mxhosts >> $dyn_file
static_hosts >> $config_file
static_srvhosts >> $dyn_file
static_cnames >> $config_file
static_domains >> $config_file
static_mxhosts >> $config_file
static_srvhosts >> $config_file
if [ $dynamicdns -eq 1 ]; then
nsupdate -l -v $dyn_file
rm -f $dyn_file