use Tempfile instead of folder; fix Reverse NS
Signed-off-by: Blackyfff <blackyfff@noreply.git.freifunk-franken.de>
This commit is contained in:
parent
22d2eb0cda
commit
232ca12b48
|
@ -10,10 +10,10 @@ ReverseDomain="$1"
|
||||||
ReverseZone="${ReverseDomain%*.}"
|
ReverseZone="${ReverseDomain%*.}"
|
||||||
ForwardZones="$2"
|
ForwardZones="$2"
|
||||||
ReverseZoneFile="$3"
|
ReverseZoneFile="$3"
|
||||||
TempDir="/tmp/""$ReverseZone"
|
|
||||||
TTL="${4%% *}"
|
TTL="${4%% *}"
|
||||||
ReReExMi="${4#* }"
|
ReReExMi="${4#* }"
|
||||||
View="$5"
|
View="$5"
|
||||||
|
TempFile="/tmp/""$ReverseZone"
|
||||||
|
|
||||||
GetIPEntries() {
|
GetIPEntries() {
|
||||||
if [ -z "$RZoneIsIPv6" ]; then
|
if [ -z "$RZoneIsIPv6" ]; then
|
||||||
|
@ -41,8 +41,6 @@ else
|
||||||
TraceErrAndExit "$ReverseDomain"" is no valid reverse domain"
|
TraceErrAndExit "$ReverseDomain"" is no valid reverse domain"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "$TempDir"
|
|
||||||
|
|
||||||
for ForwardZone in $ForwardZones; do
|
for ForwardZone in $ForwardZones; do
|
||||||
ZoneFile="${ForwardZone#*/}"
|
ZoneFile="${ForwardZone#*/}"
|
||||||
Serial="$(GetZoneFileSerial "$ZoneFile")"
|
Serial="$(GetZoneFileSerial "$ZoneFile")"
|
||||||
|
@ -60,19 +58,19 @@ if [ $((NewReverseSerial)) -gt $((OldSerial)) ]; then
|
||||||
Static="${Static#*/}"
|
Static="${Static#*/}"
|
||||||
[ -f "$Static" ] && echo "$(cat "$Static")"
|
[ -f "$Static" ] && echo "$(cat "$Static")"
|
||||||
echo
|
echo
|
||||||
} > "$TempDir/$ReverseZone"
|
} > "$TempFile"
|
||||||
|
|
||||||
for ForwardZone in $ForwardZones; do
|
for ForwardZone in $ForwardZones; do
|
||||||
ZoneName="${ForwardZone%%/*}"
|
ZoneName="${ForwardZone%%/*}"
|
||||||
ZoneFile="${ForwardZone#*/}"
|
ZoneFile="${ForwardZone#*/}"
|
||||||
ZoneRevNSSubnets="$(sed -ne 's/^\s*\S\+\s\+\([0-9]*\s\)\?\s*[Ii][Nn]\s\+[Nn][Ss]\s\+\(\S\+\).*;\s*Subnets:\s*\([^;]*\)\s*\(;[^;]*\s*\)$/\2@\3/p' "$ZoneFile" |
|
ZoneRevNSSubnets="$(sed -ne 's/^\s*\S\+\s\+\([0-9]*\s\)\?\s*[Ii][Nn]\s\+[Nn][Ss]\s\+\(\S\+\).*;\s*Subnets:\s*\([^;]\+\)\s*\(;.*\)\?$/\2@\3/p' "$ZoneFile" | \
|
||||||
sed -e 's/\(.*[^\.]\)@/\1\.'"$ZoneName"'\.@/;s/@/ /;s/\s\+/@/g')"
|
sed -e 's/\(.*[^\.]\)@/\1\.'"$ZoneName"'\.@/;s/@/ /;s/\s\+/@/g')"
|
||||||
for NSSubnets in $ZoneRevNSSubnets; do
|
for NSSubnets in $ZoneRevNSSubnets; do
|
||||||
Subnets="$(echo "${NSSubnets#*@}" | sed -e 's/@/ /g')"
|
Subnets="$(echo "${NSSubnets#*@}" | sed -e 's/@/ /g')"
|
||||||
for Subnet in $Subnets; do
|
for Subnet in $Subnets; do
|
||||||
for ReverseNS in $(GetReverseDomains "$Subnet"); do
|
for ReverseNS in $(GetReverseDomains "$Subnet"); do
|
||||||
if [ -n "$ReverseNS" ] && [ -z "${ReverseNS##*$ReverseDomain}" ]; then
|
if [ -n "$ReverseNS" ] && [ -z "${ReverseNS##*$ReverseDomain}" ]; then
|
||||||
echo "$ReverseNS $TTL IN NS ${NSSubnets%%@*}" >> "$TempDir/$ReverseZone"
|
echo "$ReverseNS $TTL IN NS ${NSSubnets%%@*}" >> "$TempFile"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
@ -85,13 +83,12 @@ if [ $((NewReverseSerial)) -gt $((OldSerial)) ]; then
|
||||||
IP="$(ReverseEntry "$IP")"
|
IP="$(ReverseEntry "$IP")"
|
||||||
if [ -z "${IP##*$ReverseDomain}" ]; then
|
if [ -z "${IP##*$ReverseDomain}" ]; then
|
||||||
Host="$(ExpandHostname "${IPEntry%%/*}" "$ZoneName"".")"
|
Host="$(ExpandHostname "${IPEntry%%/*}" "$ZoneName"".")"
|
||||||
echo "$IP $TTL IN PTR $Host" >> "$TempDir/$ReverseZone"
|
echo "$IP $TTL IN PTR $Host" >> "$TempFile"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
named-checkzone -o "$ReverseZoneFile" "$ReverseDomain" "$TempDir/$ReverseZone" >/dev/null
|
named-checkzone -o "$ReverseZoneFile" "$ReverseDomain" "$TempFile" >/dev/null
|
||||||
ReloadZone "$ReverseDomain" "$View"
|
ReloadZone "$ReverseDomain" "$View"
|
||||||
fi
|
rm -r "$TempFile"
|
||||||
|
fi
|
||||||
rm -r "$TempDir"
|
|
Loading…
Reference in New Issue