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() {
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
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() {
gateway="$IP"
fi
- gen_dhcp_subnet "$cfg" >> $config_file
+ gen_dhcp_subnet "$cfg"
}
general_config() {
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)
ttl $TTL
EOF
+ fi
+
+ rfc1918_nets=
+
+ config_foreach dhcpd_add dhcp 1 >> $config_file
- static_cnames >> $dyn_file
+ static_hosts >> $config_file
- static_domains >> $dyn_file
+ static_cnames >> $config_file
- static_mxhosts >> $dyn_file
+ static_domains >> $config_file
- static_srvhosts >> $dyn_file
+ static_mxhosts >> $config_file
+ static_srvhosts >> $config_file
+
+ if [ $dynamicdns -eq 1 ]; then
nsupdate -l -v $dyn_file
rm -f $dyn_file