From 53a18387b4d378fec3996d940b0084ad85dca688 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= Date: Sat, 19 Apr 2025 16:40:59 +0000 Subject: initial commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: AsbjΓΈrn Sloth TΓΈnnesen --- gen_canned.sh | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100755 gen_canned.sh (limited to 'gen_canned.sh') diff --git a/gen_canned.sh b/gen_canned.sh new file mode 100755 index 0000000..2d30518 --- /dev/null +++ b/gen_canned.sh @@ -0,0 +1,122 @@ +#!/bin/sh + +# testzone +DOMAIN=ede.dn5.dk. +SERIAL=2025041804 + +gen_ede_zone(){ + local seq="$1" + local tmpl="templates/$2" + local zonefmt="$3" + local zoneparam="$4" + local ede_code="$5" + local extra_text="$6" + local zone="$(printf "$zonefmt" "$zoneparam")" + local out="canned/${seq}_${zone}toml" + cat "$tmpl" | + sed -e "s/{qname}/$zone/g" | + sed -e "s/{ede_code}/$ede_code/g" | + sed -e "s/{ede_extra}/$extra_text/g" \ + > "$out" +} + +gen_ede_zones(){ + local offset="$1" + local tmpl="$2" + local zonefmt="$3" + + gen_ede(){ + local ede_code="$1" + local long_name="$2" + local extra_text="$3" + + gen_ede_zone "$(( offset + ede_code ))" \ + "$tmpl" "$zonefmt" "$ede_code" \ + "$ede_code" "$extra_text" + gen_ede_zone "$(( offset + 500 + ede_code ))" \ + "$tmpl" "$zonefmt" "$long_name" \ + "$ede_code" "$extra_text" + } + + gen_ede 0 other-error 'Other Error aka. user error' + gen_ede 1 unsupp-dnskey-algo 'Try a simpler algorithm' + gen_ede 2 unsupp-ds-digest-type 'Try using another one' + gen_ede 3 stale 'Zombie reply 🧟' + gen_ede 4 forged 'Cloned reply' + gen_ede 5 dnssec-indeterminate 'maybe secure' + gen_ede 6 dnssec-bogus 'probably not secure' + gen_ede 7 sig-expired 'signature expired πŸ₯€' + gen_ede 8 sig-in-future \ + '1st rule of time machines: Sharing is caring' + gen_ede 9 dnskey-missing 'DNSKEY missing' + gen_ede 10 rrsig-missing 'RRSIG missing' + gen_ede 11 no-zone-key-bit 'Where did the zone key bit go?' + gen_ede 12 nsec-missing 'No NSEC?' + gen_ede 13 cached-error 'AFAIR 🀞' + gen_ede 14 not-ready 'πŸ’€' + gen_ede 15 blocked '🚧 Blocked 🚧' + gen_ede 16 censored 'β›” Censored β›”' + gen_ede 17 filtered 'β˜‚ Filtered β˜‚' + gen_ede 18 prohibited \ + '🚫 You have requested a prohibited domain! 🚫' + gen_ede 19 stale-nxdomain 'AFAIR 🀞' + gen_ede 20 not-auth 'Not authoritative for this domain' + gen_ede 21 not-supp 'Unsupported βœ‹' + gen_ede 22 auth-ns-out-for-lunch 'TODO βœ‹' + gen_ede 23 network-error 'πŸ”₯πŸ”₯πŸ”₯' + gen_ede 24 invalid-data 'Invalid data' + gen_ede 25 sig-reversed-time \ + 'Please reverse the flow of time before use.' + gen_ede 26 too-early "Let's do a 🀝 first" + gen_ede 27 unsupp-nsec3-iter 'Try using another iterator' + gen_ede 28 bad-proxy-policy \ + "πŸ›‘ This service hasn't been vetted! πŸ›‘" + gen_ede 29 synthesized 'This query is a part of the conspiracy' + gen_ede 30 invalid-query-type "You can't query this kind of RRs" +} + +copy_can(){ + local file="$1" + cp "static/$file" "canned/$file" +} + +find_all_zones(){ + grep -h '^QName' canned/*.toml | cut -d'"' -f2 | sort | uniq +} + +gen_nodata(){ + local all_zones="$(find_all_zones)" + local i=9000 + for zone in $all_zones; do + cat templates/nodata.toml | + sed -e "s/{qname}/$zone/g" \ + > canned/${i}_nodata.toml + i=$((i + 1)) + done +} + +canned_replace(){ + local needle="$1" + local replacement="$2" + + grep -l -R -F "$needle" canned/ | + xargs -r -- sed -i -e "s/$needle/$replacement/g" +} + +generate_files(){ + rm -rf canned/ + mkdir canned/ + cp static/* canned/ + gen_ede_zones 1000 ede-nx.toml "%s.nx.$DOMAIN" + gen_ede_zones 2000 ede-cname.toml "%s.cname.$DOMAIN" + gen_ede_zones 3000 ede-addr-a.toml "%s.addr.$DOMAIN" + gen_ede_zones 4000 ede-addr-aaaa.toml "%s.addr.$DOMAIN" + gen_nodata + canned_replace '{serial}' "$SERIAL" +} + +main(){ + generate_files +} + +main "$@" -- cgit v1.2.1