summaryrefslogtreecommitdiffstats
path: root/main/unbound/update-unbound-root-hints
diff options
context:
space:
mode:
Diffstat (limited to 'main/unbound/update-unbound-root-hints')
-rw-r--r--main/unbound/update-unbound-root-hints30
1 files changed, 30 insertions, 0 deletions
diff --git a/main/unbound/update-unbound-root-hints b/main/unbound/update-unbound-root-hints
new file mode 100644
index 000000000..ee127ded3
--- /dev/null
+++ b/main/unbound/update-unbound-root-hints
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+check_format() {
+ # check that we have some ipv4 addresses and some '.' hints
+ egrep -q '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]' "$1" \
+ && egrep -q '^\.[[:space:]]+' "$1"
+}
+
+ftphosts="FTP.INTERNIC.NET RS.INTERNIC.NET"
+roothints=domain/named.cache
+unbound_dir=/etc/unbound
+outfile=$unbound_dir/root.hints
+
+if [ "$1" = "--verify" ]; then
+ if check_format $outfile; then
+ echo "$outfile: ok"
+ exit 0
+ else
+ echo "$outfile: failed"
+ exit 1
+ fi
+fi
+
+for host in $ftphosts; do
+ url=ftp://$host/$roothints
+ if wget -q -O ${outfile}.new $url && check_format ${outfile}.new; then
+ mv ${outfile}.new $outfile && exit 0
+ fi
+done
+exit 1