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%*.}"
|
||||
ForwardZones="$2"
|
||||
ReverseZoneFile="$3"
|
||||
TempDir="/tmp/""$ReverseZone"
|
||||
TTL="${4%% *}"
|
||||
ReReExMi="${4#* }"
|
||||
View="$5"
|
||||
TempFile="/tmp/""$ReverseZone"
|
||||
|
||||
GetIPEntries() {
|
||||
if [ -z "$RZoneIsIPv6" ]; then
|
||||
|
@ -41,8 +41,6 @@ else
|
|||
TraceErrAndExit "$ReverseDomain"" is no valid reverse domain"
|
||||
fi
|
||||
|
||||
mkdir -p "$TempDir"
|
||||
|
||||
for ForwardZone in $ForwardZones; do
|
||||
ZoneFile="${ForwardZone#*/}"
|
||||
Serial="$(GetZoneFileSerial "$ZoneFile")"
|
||||
|
@ -60,19 +58,19 @@ if [ $((NewReverseSerial)) -gt $((OldSerial)) ]; then
|
|||
Static="${Static#*/}"
|
||||
[ -f "$Static" ] && echo "$(cat "$Static")"
|
||||
echo
|
||||
} > "$TempDir/$ReverseZone"
|
||||
} > "$TempFile"
|
||||
|
||||
for ForwardZone in $ForwardZones; do
|
||||
ZoneName="${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')"
|
||||
for NSSubnets in $ZoneRevNSSubnets; do
|
||||
Subnets="$(echo "${NSSubnets#*@}" | sed -e 's/@/ /g')"
|
||||
for Subnet in $Subnets; do
|
||||
for ReverseNS in $(GetReverseDomains "$Subnet"); do
|
||||
if [ -n "$ReverseNS" ] && [ -z "${ReverseNS##*$ReverseDomain}" ]; then
|
||||
echo "$ReverseNS $TTL IN NS ${NSSubnets%%@*}" >> "$TempDir/$ReverseZone"
|
||||
echo "$ReverseNS $TTL IN NS ${NSSubnets%%@*}" >> "$TempFile"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
@ -85,13 +83,12 @@ if [ $((NewReverseSerial)) -gt $((OldSerial)) ]; then
|
|||
IP="$(ReverseEntry "$IP")"
|
||||
if [ -z "${IP##*$ReverseDomain}" ]; then
|
||||
Host="$(ExpandHostname "${IPEntry%%/*}" "$ZoneName"".")"
|
||||
echo "$IP $TTL IN PTR $Host" >> "$TempDir/$ReverseZone"
|
||||
echo "$IP $TTL IN PTR $Host" >> "$TempFile"
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
named-checkzone -o "$ReverseZoneFile" "$ReverseDomain" "$TempDir/$ReverseZone" >/dev/null
|
||||
named-checkzone -o "$ReverseZoneFile" "$ReverseDomain" "$TempFile" >/dev/null
|
||||
ReloadZone "$ReverseDomain" "$View"
|
||||
fi
|
||||
|
||||
rm -r "$TempDir"
|
||||
rm -r "$TempFile"
|
||||
fi
|
Loading…
Reference in New Issue