aboutsummaryrefslogtreecommitdiffstats
path: root/main/augeas/0001-Dns_Zone-new-lens-to-parse-DNS-zone-files.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/augeas/0001-Dns_Zone-new-lens-to-parse-DNS-zone-files.patch')
-rw-r--r--main/augeas/0001-Dns_Zone-new-lens-to-parse-DNS-zone-files.patch495
1 files changed, 0 insertions, 495 deletions
diff --git a/main/augeas/0001-Dns_Zone-new-lens-to-parse-DNS-zone-files.patch b/main/augeas/0001-Dns_Zone-new-lens-to-parse-DNS-zone-files.patch
deleted file mode 100644
index dcccbb939e..0000000000
--- a/main/augeas/0001-Dns_Zone-new-lens-to-parse-DNS-zone-files.patch
+++ /dev/null
@@ -1,495 +0,0 @@
-From 4f64912f569a537470c22ac8eefc0a00a6dc623b Mon Sep 17 00:00:00 2001
-From: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
-Date: Fri, 27 Feb 2015 14:48:11 +0200
-Subject: [PATCH] Dns_Zone: new lens to parse DNS zone files
-
----
- lenses/dns_zone.aug | 113 +++++++++++++
- lenses/tests/test_dns_zone.aug | 355 +++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 468 insertions(+)
- create mode 100644 lenses/dns_zone.aug
- create mode 100644 lenses/tests/test_dns_zone.aug
-
-diff --git a/lenses/dns_zone.aug b/lenses/dns_zone.aug
-new file mode 100644
-index 0000000..77c3485
---- /dev/null
-+++ b/lenses/dns_zone.aug
-@@ -0,0 +1,113 @@
-+(*
-+Module: Dns_Zone
-+ Lens for parsing DNS zone files
-+
-+Authors:
-+ Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
-+
-+About: Reference
-+ RFC 1035, RFC 2782, RFC 3403
-+
-+About: License
-+ This file is licensed under the LGPL v2+
-+*)
-+
-+module Dns_Zone =
-+
-+autoload xfm
-+
-+let eol = del /(([ \t\n]*;[^\n]*)?\n)+/ "\n"
-+let opt_eol = del /(([ \t\n]*;[^\n]*)?\n)*/ ""
-+
-+let ws = del /[ \t]+|(([ \t\n]*;[^\n]*)?\n)+[ \t]*/ " "
-+let opt_ws = del /(([ \t\n]*;[^\n]*)?\n)*[ \t]*/ ""
-+
-+let token = /([^ \t\n";()\\]|\\\\.)+|"([^"\\]|\\\\.)*"/
-+
-+
-+let control = [ key /\$[^ \t\n\/]+/
-+ . Util.del_ws_tab
-+ . store token
-+ . eol ]
-+
-+
-+let labeled_token (lbl:string) (re:regexp) (sep:lens) =
-+ [ label lbl . store re . sep ]
-+
-+let regexp_token (lbl:string) (re:regexp) =
-+ labeled_token lbl re Util.del_ws_tab
-+
-+let type_token (re:regexp) = regexp_token "type" re
-+
-+let simple_token (lbl:string) = regexp_token lbl token
-+
-+let enclosed_token (lbl:string) = labeled_token lbl token ws
-+
-+let last_token (lbl:string) = labeled_token lbl token eol
-+
-+
-+let class_re = /IN/
-+
-+let ttl = regexp_token "ttl" /[0-9]+[DHMWdhmw]?/
-+let class = regexp_token "class" class_re
-+
-+let rr =
-+ let simple_type = /[A-Z]+/ - class_re - /MX|NAPTR|SOA|SRV/
-+ in type_token simple_type . last_token "rdata"
-+
-+
-+let mx = type_token "MX"
-+ . simple_token "priority"
-+ . last_token "exchange"
-+
-+let naptr = type_token "NAPTR"
-+ . simple_token "order"
-+ . simple_token "preference"
-+ . simple_token "flags"
-+ . simple_token "service"
-+ . simple_token "regexp"
-+ . last_token "replacement"
-+
-+let soa = type_token "SOA"
-+ . simple_token "mname"
-+ . simple_token "rname"
-+ . Util.del_str "("
-+ . opt_ws
-+ . enclosed_token "serial"
-+ . enclosed_token "refresh"
-+ . enclosed_token "retry"
-+ . enclosed_token "expiry"
-+ . labeled_token "minimum" token opt_ws
-+ . Util.del_str ")"
-+ . eol
-+
-+let srv = type_token "SRV"
-+ . simple_token "priority"
-+ . simple_token "weight"
-+ . simple_token "port"
-+ . last_token "target"
-+
-+
-+let record = seq "owner"
-+ . ((ttl? . class?) | (class . ttl))
-+ . (rr|mx|naptr|soa|srv)
-+let ws_record = [ Util.del_ws_tab . record ]
-+let records (k:regexp) = [ key k . counter "owner" . ws_record+ ]
-+
-+let any_record_block = records /[^ \t\n;\/$][^ \t\n;\/]*/
-+let non_root_records = records /@[^ \t\n;\/]+|[^ \t\n;\/$@][^ \t\n;\/]*/
-+
-+let root_records = [ del /@?/ "@"
-+ . Util.del_ws_tab
-+ . label "@"
-+ . counter "owner"
-+ . [ record ]
-+ . ws_record* ]
-+
-+let lns = opt_eol
-+ . control*
-+ . ( (root_records|non_root_records)
-+ . (control|any_record_block)* )?
-+
-+let filter = incl "/var/bind/pri/*.zone"
-+let xfm = transform Dns_Zone.lns filter
-diff --git a/lenses/tests/test_dns_zone.aug b/lenses/tests/test_dns_zone.aug
-new file mode 100644
-index 0000000..07ff583
---- /dev/null
-+++ b/lenses/tests/test_dns_zone.aug
-@@ -0,0 +1,355 @@
-+module Test_Dns_Zone =
-+
-+let lns = Dns_Zone.lns
-+
-+(* RFC 1034 §6 *)
-+test lns get "
-+EDU. IN SOA SRI-NIC.ARPA. HOSTMASTER.SRI-NIC.ARPA. (
-+ 870729 ;serial
-+ 1800 ;refresh every 30 minutes
-+ 300 ;retry every 5 minutes
-+ 604800 ;expire after a week
-+ 86400 ;minimum of a day
-+ )
-+ NS SRI-NIC.ARPA.
-+ NS C.ISI.EDU.
-+
-+UCI 172800 NS ICS.UCI
-+ 172800 NS ROME.UCI
-+ICS.UCI 172800 A 192.5.19.1
-+ROME.UCI 172800 A 192.5.19.31
-+
-+ISI 172800 NS VAXA.ISI
-+ 172800 NS A.ISI
-+ 172800 NS VENERA.ISI.EDU.
-+VAXA.ISI 172800 A 10.2.0.27
-+ 172800 A 128.9.0.33
-+VENERA.ISI.EDU. 172800 A 10.1.0.52
-+ 172800 A 128.9.0.32
-+A.ISI 172800 A 26.3.0.103
-+
-+UDEL.EDU. 172800 NS LOUIE.UDEL.EDU.
-+ 172800 NS UMN-REI-UC.ARPA.
-+LOUIE.UDEL.EDU. 172800 A 10.0.0.96
-+ 172800 A 192.5.39.3
-+
-+YALE.EDU. 172800 NS YALE.ARPA.
-+YALE.EDU. 172800 NS YALE-BULLDOG.ARPA.
-+
-+MIT.EDU. 43200 NS XX.LCS.MIT.EDU.
-+ 43200 NS ACHILLES.MIT.EDU.
-+XX.LCS.MIT.EDU. 43200 A 10.0.0.44
-+ACHILLES.MIT.EDU. 43200 A 18.72.0.8
-+" =
-+ { "EDU."
-+ { "1"
-+ { "class" = "IN" }
-+ { "type" = "SOA" }
-+ { "mname" = "SRI-NIC.ARPA." }
-+ { "rname" = "HOSTMASTER.SRI-NIC.ARPA." }
-+ { "serial" = "870729" }
-+ { "refresh" = "1800" }
-+ { "retry" = "300" }
-+ { "expiry" = "604800" }
-+ { "minimum" = "86400" }
-+ }
-+ { "2" { "type" = "NS" } { "rdata" = "SRI-NIC.ARPA." } }
-+ { "3" { "type" = "NS" } { "rdata" = "C.ISI.EDU." } }
-+ }
-+ { "UCI"
-+ { "1" { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "ICS.UCI" } }
-+ { "2" { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "ROME.UCI" } }
-+ }
-+ { "ICS.UCI"
-+ { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "192.5.19.1" } }
-+ }
-+ { "ROME.UCI"
-+ { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "192.5.19.31" } }
-+ }
-+ { "ISI"
-+ { "1" { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "VAXA.ISI" } }
-+ { "2" { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "A.ISI" } }
-+ { "3"
-+ { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "VENERA.ISI.EDU." }
-+ }
-+ }
-+ { "VAXA.ISI"
-+ { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "10.2.0.27" } }
-+ { "2" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "128.9.0.33" } }
-+ }
-+ { "VENERA.ISI.EDU."
-+ { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "10.1.0.52" } }
-+ { "2" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "128.9.0.32" } }
-+ }
-+ { "A.ISI"
-+ { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "26.3.0.103" } }
-+ }
-+ { "UDEL.EDU."
-+ { "1"
-+ { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "LOUIE.UDEL.EDU." }
-+ }
-+ { "2"
-+ { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "UMN-REI-UC.ARPA." }
-+ }
-+ }
-+ { "LOUIE.UDEL.EDU."
-+ { "1" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "10.0.0.96" } }
-+ { "2" { "ttl" = "172800" } { "type" = "A" } { "rdata" = "192.5.39.3" } }
-+ }
-+ { "YALE.EDU."
-+ { "1" { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "YALE.ARPA." } }
-+ }
-+ { "YALE.EDU."
-+ { "1"
-+ { "ttl" = "172800" } { "type" = "NS" } { "rdata" = "YALE-BULLDOG.ARPA." }
-+ }
-+ }
-+ { "MIT.EDU."
-+ { "1"
-+ { "ttl" = "43200" } { "type" = "NS" } { "rdata" = "XX.LCS.MIT.EDU." }
-+ }
-+ { "2"
-+ { "ttl" = "43200" } { "type" = "NS" } { "rdata" = "ACHILLES.MIT.EDU." }
-+ }
-+ }
-+ { "XX.LCS.MIT.EDU."
-+ { "1" { "ttl" = "43200" } { "type" = "A" } { "rdata" = "10.0.0.44" } }
-+ }
-+ { "ACHILLES.MIT.EDU."
-+ { "1" { "ttl" = "43200" } { "type" = "A" } { "rdata" = "18.72.0.8" } }
-+ }
-+
-+
-+(* RFC 1035 §5.3 *)
-+test lns get "
-+@ IN SOA VENERA Action\.domains (
-+ 20 ; SERIAL
-+ 7200 ; REFRESH
-+ 600 ; RETRY
-+ 3600000; EXPIRE
-+ 60) ; MINIMUM
-+
-+ NS A.ISI.EDU.
-+ NS VENERA
-+ NS VAXA
-+ MX 10 VENERA
-+ MX 20 VAXA
-+
-+A A 26.3.0.103
-+
-+VENERA A 10.1.0.52
-+ A 128.9.0.32
-+
-+VAXA A 10.2.0.27
-+ A 128.9.0.33
-+" =
-+ { "@"
-+ { "1"
-+ { "class" = "IN" }
-+ { "type" = "SOA" }
-+ { "mname" = "VENERA" }
-+ { "rname" = "Action\\.domains" }
-+ { "serial" = "20" }
-+ { "refresh" = "7200" }
-+ { "retry" = "600" }
-+ { "expiry" = "3600000" }
-+ { "minimum" = "60" }
-+ }
-+ { "2" { "type" = "NS" } { "rdata" = "A.ISI.EDU." } }
-+ { "3" { "type" = "NS" } { "rdata" = "VENERA" } }
-+ { "4" { "type" = "NS" } { "rdata" = "VAXA" } }
-+ { "5" { "type" = "MX" } { "priority" = "10" } { "exchange" = "VENERA" } }
-+ { "6" { "type" = "MX" } { "priority" = "20" } { "exchange" = "VAXA" } }
-+ }
-+ { "A" { "1" { "type" = "A" } { "rdata" = "26.3.0.103" } } }
-+ { "VENERA"
-+ { "1" { "type" = "A" } { "rdata" = "10.1.0.52" } }
-+ { "2" { "type" = "A" } { "rdata" = "128.9.0.32" } }
-+ }
-+ { "VAXA"
-+ { "1" { "type" = "A" } { "rdata" = "10.2.0.27" } }
-+ { "2" { "type" = "A" } { "rdata" = "128.9.0.33" } }
-+ }
-+
-+
-+(* RFC 2782 *)
-+test lns get "
-+$ORIGIN example.com.
-+@ SOA server.example.com. root.example.com. (
-+ 1995032001 3600 3600 604800 86400 )
-+ NS server.example.com.
-+ NS ns1.ip-provider.net.
-+ NS ns2.ip-provider.net.
-+; foobar - use old-slow-box or new-fast-box if either is
-+; available, make three quarters of the logins go to
-+; new-fast-box.
-+_foobar._tcp SRV 0 1 9 old-slow-box.example.com.
-+ SRV 0 3 9 new-fast-box.example.com.
-+; if neither old-slow-box or new-fast-box is up, switch to
-+; using the sysdmin's box and the server
-+ SRV 1 0 9 sysadmins-box.example.com.
-+ SRV 1 0 9 server.example.com.
-+server A 172.30.79.10
-+old-slow-box A 172.30.79.11
-+sysadmins-box A 172.30.79.12
-+new-fast-box A 172.30.79.13
-+; NO other services are supported
-+*._tcp SRV 0 0 0 .
-+*._udp SRV 0 0 0 .
-+" =
-+ { "$ORIGIN" = "example.com." }
-+ { "@"
-+ { "1"
-+ { "type" = "SOA" }
-+ { "mname" = "server.example.com." }
-+ { "rname" = "root.example.com." }
-+ { "serial" = "1995032001" }
-+ { "refresh" = "3600" }
-+ { "retry" = "3600" }
-+ { "expiry" = "604800" }
-+ { "minimum" = "86400" }
-+ }
-+ { "2" { "type" = "NS" } { "rdata" = "server.example.com." } }
-+ { "3" { "type" = "NS" } { "rdata" = "ns1.ip-provider.net." } }
-+ { "4" { "type" = "NS" } { "rdata" = "ns2.ip-provider.net." } }
-+ }
-+ { "_foobar._tcp"
-+ { "1"
-+ { "type" = "SRV" }
-+ { "priority" = "0" }
-+ { "weight" = "1" }
-+ { "port" = "9" }
-+ { "target" = "old-slow-box.example.com." }
-+ }
-+ { "2"
-+ { "type" = "SRV" }
-+ { "priority" = "0" }
-+ { "weight" = "3" }
-+ { "port" = "9" }
-+ { "target" = "new-fast-box.example.com." }
-+ }
-+ { "3"
-+ { "type" = "SRV" }
-+ { "priority" = "1" }
-+ { "weight" = "0" }
-+ { "port" = "9" }
-+ { "target" = "sysadmins-box.example.com." }
-+ }
-+ { "4"
-+ { "type" = "SRV" }
-+ { "priority" = "1" }
-+ { "weight" = "0" }
-+ { "port" = "9" }
-+ { "target" = "server.example.com." }
-+ }
-+ }
-+ { "server" { "1" { "type" = "A" } { "rdata" = "172.30.79.10" } } }
-+ { "old-slow-box" { "1" { "type" = "A" } { "rdata" = "172.30.79.11" } } }
-+ { "sysadmins-box" { "1" { "type" = "A" } { "rdata" = "172.30.79.12" } } }
-+ { "new-fast-box" { "1" { "type" = "A" } { "rdata" = "172.30.79.13" } } }
-+ { "*._tcp"
-+ { "1"
-+ { "type" = "SRV" }
-+ { "priority" = "0" }
-+ { "weight" = "0" }
-+ { "port" = "0" }
-+ { "target" = "." }
-+ }
-+ }
-+ { "*._udp"
-+ { "1"
-+ { "type" = "SRV" }
-+ { "priority" = "0" }
-+ { "weight" = "0" }
-+ { "port" = "0" }
-+ { "target" = "." }
-+ }
-+ }
-+
-+
-+(* RFC 3403 §6.2 *)
-+test lns get "
-+$ORIGIN 2.1.2.1.5.5.5.0.7.7.1.e164.arpa.
-+ IN NAPTR 100 10 \"u\" \"sip+E2U\" \"!^.*$!sip:information@foo.se!i\" .
-+ IN NAPTR 102 10 \"u\" \"smtp+E2U\" \"!^.*$!mailto:information@foo.se!i\" .
-+" =
-+ { "$ORIGIN" = "2.1.2.1.5.5.5.0.7.7.1.e164.arpa." }
-+ { "@"
-+ { "1"
-+ { "class" = "IN" }
-+ { "type" = "NAPTR" }
-+ { "order" = "100" }
-+ { "preference" = "10" }
-+ { "flags" = "\"u\"" }
-+ { "service" = "\"sip+E2U\"" }
-+ { "regexp" = "\"!^.*$!sip:information@foo.se!i\"" }
-+ { "replacement" = "." }
-+ }
-+ { "2"
-+ { "class" = "IN" }
-+ { "type" = "NAPTR" }
-+ { "order" = "102" }
-+ { "preference" = "10" }
-+ { "flags" = "\"u\"" }
-+ { "service" = "\"smtp+E2U\"" }
-+ { "regexp" = "\"!^.*$!mailto:information@foo.se!i\"" }
-+ { "replacement" = "." }
-+ }
-+ }
-+
-+
-+(* SOA record on a single line *)
-+test lns get "
-+$ORIGIN example.com.
-+@ IN SOA ns root.example.com. (1 2 3 4 5)
-+" =
-+ { "$ORIGIN" = "example.com." }
-+ { "@"
-+ { "1"
-+ { "class" = "IN" }
-+ { "type" = "SOA" }
-+ { "mname" = "ns" }
-+ { "rname" = "root.example.com." }
-+ { "serial" = "1" }
-+ { "refresh" = "2" }
-+ { "retry" = "3" }
-+ { "expiry" = "4" }
-+ { "minimum" = "5" }
-+ }
-+ }
-+
-+
-+(* Different ordering of TTL and class *)
-+test lns get "
-+$ORIGIN example.com.
-+foo 1D IN A 10.1.2.3
-+bar IN 2W A 10.4.5.6
-+" =
-+ { "$ORIGIN" = "example.com." }
-+ { "foo"
-+ { "1"
-+ { "ttl" = "1D" }
-+ { "class" = "IN" }
-+ { "type" = "A" }
-+ { "rdata" = "10.1.2.3" }
-+ }
-+ }
-+ { "bar"
-+ { "1"
-+ { "class" = "IN" }
-+ { "ttl" = "2W" }
-+ { "type" = "A" }
-+ { "rdata" = "10.4.5.6" }
-+ }
-+ }
-+
-+
-+(* Escaping *)
-+test lns get "
-+$ORIGIN example.com.
-+foo TXT abc\\\\def\\\"ghi
-+bar TXT \"ab cd\\\\ef\\\"gh\"
-+" =
-+ { "$ORIGIN" = "example.com." }
-+ { "foo" { "1" { "type" = "TXT" } { "rdata" = "abc\\\\def\\\"ghi" } } }
-+ { "bar" { "1" { "type" = "TXT" } { "rdata" = "\"ab cd\\\\ef\\\"gh\"" } } }
---
-1.9.3
-