<td width='10%' class='boldbase'>$Lang::tr{'dhcp dns key name'}:</td>
<td width='20%'><input type='text' name='DNS_UPDATE_KEY_NAME_${itf}' value='$dhcpsettings{"DNS_UPDATE_KEY_NAME_${itf}"}'></td>
<td width='10%' class='boldbase' align='right'>$Lang::tr{'dhcp dns update secret'}: </td>
- <td width='20%'><input type='password' name='DNS_UPDATE_SECRET_${itf}' value='$dhcpsettings{"DNS_UPDATE_SECRET_${itf}"}'></td>
+ <td width='20%'><input type='password' name='DNS_UPDATE_KEY_SECRET_${itf}' value='$dhcpsettings{"DNS_UPDATE_KEY_SECRET_${itf}"}'></td>
<td width='10%' class='boldbase' align='right'>$Lang::tr{'dhcp dns update algo'}: </td>
<td width='20%'>
- <select name='DNS_UPDATE_ALGO_${itf}'>
- <option value='hmac-sha1' $selected{'DNS_UPDATE_ALGO_${itf}'}{'hmac-sha1'}>HMAC-SHA1</option>
- <option value='hmac-md5' $selected{'DNS_UPDATE_ALGO_${itf}'}{'hmac-md5'}>HMAC-MD5</option>
+ <select name='DNS_UPDATE_KEY_ALGO_${itf}'>
+ <option value='hmac-sha1' $selected{'DNS_UPDATE_KEY_ALGO_${itf}'}{'hmac-sha1'}>HMAC-SHA1</option>
+ <option value='hmac-md5' $selected{'DNS_UPDATE_KEY_ALGO_${itf}'}{'hmac-md5'}>HMAC-MD5</option>
</select>
</td>
</tr>
}
}# on
}# foreach line
+ print FILE "\n";
#Subnet range definition
foreach my $itf (@ITFs) {
my $lc_itf=lc($itf);
if ($dhcpsettings{"ENABLE_${itf}"} eq 'on' ){
- print FILE "\nsubnet " . $netsettings{"${itf}_NETADDRESS"} . " netmask ". $netsettings{"${itf}_NETMASK"} . " #$itf\n";
+ print FILE "subnet " . $netsettings{"${itf}_NETADDRESS"} . " netmask ". $netsettings{"${itf}_NETMASK"} . " #$itf\n";
print FILE "{\n";
print FILE "\trange " . $dhcpsettings{"START_ADDR_${itf}"} . ' ' . $dhcpsettings{"END_ADDR_${itf}"}.";\n" if ($dhcpsettings{"START_ADDR_${itf}"});
print FILE "\toption subnet-mask " . $netsettings{"${itf}_NETMASK"} . ";\n";
}
}# on
}# foreach line
- print FILE "} #$itf\n";
+ print FILE "} #$itf\n\n";
if (($dhcpsettings{"DNS_UPDATE_ENABLED"} eq "on") && ($dhcpsettings{"DNS_UPDATE_KEY_NAME_${itf}"} ne "")) {
- print FILE "key " . $dhcpsettings{"DNS_UPDATE_KEY_NAME_${itf}"} . "{\n";
+ print FILE "key " . $dhcpsettings{"DNS_UPDATE_KEY_NAME_${itf}"} . " {\n";
print FILE "\talgorithm " . $dhcpsettings{"DNS_UPDATE_KEY_ALGO_${itf}"} . ";\n";
print FILE "\tsecret \"" . $dhcpsettings{"DNS_UPDATE_KEY_SECRET_${itf}"} . "\";\n";
print FILE "};\n\n";
echo "${cmdline}"
}
+function dns_leases_args() {
+ eval $(/usr/local/bin/readhash /var/ipfire/dhcp/settings)
+
+ # If the DHCP server is enabled and DNS Update (RFC2136) is
+ # enabled, too, we won't overlay the internal domain with
+ # the dynamic/static leases.
+
+ if ([ "${ENABLE_GREEN}" = "on" ] || [ "${ENABLE_BLUE}" = "on" ]) \
+ && [ "${DNS_UPDATE_ENABLED}" = "on" ]; then
+ return
+ fi
+
+ echo "-l /var/state/dhcp/dhcpd.leases"
+}
+
case "${1}" in
start)
# kill already running copy of dnsmasq...
eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
ARGS="$CUSTOM_ARGS"
[ "$DOMAIN_NAME_GREEN" != "" ] && ARGS="$ARGS -s $DOMAIN_NAME_GREEN"
-
+
+ # DHCP configuration
+ ARGS="${ARGS} $(dns_leases_args)"
+
echo > /var/ipfire/red/resolv.conf # Clear it
if [ -e "/var/ipfire/red/dns1" ]; then
DNS1=$(cat /var/ipfire/red/dns1 2>/dev/null)
ARGS="${ARGS} --cache-size=${CACHE_SIZE}"
fi
- loadproc /usr/sbin/dnsmasq -l /var/state/dhcp/dhcpd.leases $ARGS
+ loadproc /usr/sbin/dnsmasq ${ARGS}
if [ "${SHOW_SRV}" -eq 1 ] && [ "${DNS1}" != "" -o "${DNS2}" != "" ]; then
boot_mesg "Using DNS server(s): ${DNS1} ${DNS2}"