diff --git a/_examples/ns/Makefile b/_examples/ns/Makefile deleted file mode 100644 index 676dbf01..00000000 --- a/_examples/ns/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 2009 The Go Authors. All rights reserved. -# Use of this source code is governed by a BSD-style -# license that can be found in the LICENSE file. -include $(GOROOT)/src/Make.inc -TARG=ns -GOFILES=ns.go -DEPS=../../ -include $(GOROOT)/src/Make.cmd diff --git a/_examples/ns/miek.nl.signed b/_examples/ns/miek.nl.signed deleted file mode 100644 index 3d262c57..00000000 --- a/_examples/ns/miek.nl.signed +++ /dev/null @@ -1,63 +0,0 @@ -miek.nl. 345600 IN SOA elektron.atoom.net. miekg.atoom.net. 1311646381 14400 3600 604800 86400 -miek.nl. 345600 IN RRSIG SOA 8 2 345600 20110825011301 20110726011301 12051 miek.nl. YyzEuovl3L+VA9/EB5sXCzbagxwDHJqa9drXG8Uts12Fj8f2dOrjhS57 6ZY+qbq/jS4eETB5bs3MgAAOUXhVL5Qto+XuQb9Ni+qmWKYzmUPoXwi6 F2eb7mCVnDMh+HnGmlM8ybB9BrAVHoj8h2sEJyMvY3f6KGK97uCBxLr3 dbQ= -miek.nl. 345600 IN NS ext.ns.whyscream.net. -miek.nl. 345600 IN NS open.nlnetlabs.nl. -miek.nl. 345600 IN NS omval.tednet.nl. -miek.nl. 345600 IN NS elektron.atoom.net. -miek.nl. 345600 IN RRSIG NS 8 2 345600 20110825011301 20110726011301 12051 miek.nl. MqpVvBNf61HWPVcZBlSk9lRkucR8mqgT9b/26dJ2Qx45Tp4JWpexQwXG +rbWzwtNbIYDKuwh8rVqKzn1z2BDqnkmsyx0cktbJo8Ci/qtWSRCg2JV tcyEa1yM74Ziay4Ur0wr74gWYmoSqjnga7erl6XjzjBTmjfgqLqYs/T3 +HI= -miek.nl. 345600 IN A 85.223.71.124 -miek.nl. 345600 IN RRSIG A 8 2 345600 20110825011301 20110726011301 12051 miek.nl. VDsBsEdQhsDay04akDBw5gKVnOtkOsnsjih2/I6/+8/eCBWOYfoGYR3e ANfRxCjI6ALMtBETQkd0XwUp7MaEe/7tIX7ENWXTI0bVfhuqXoH2+yIG RCxC06XdSWPQmrnISGQYGbFsXdzaJRAE911ipcS2Yh5tfwDJTDny4rYV 6FI= -miek.nl. 345600 IN MX 20 mail.atoom.net. -miek.nl. 345600 IN MX 40 mx-ext.tjeb.nl. -miek.nl. 345600 IN RRSIG MX 8 2 345600 20110825011301 20110726011301 12051 miek.nl. Jion3ZQv1BUdoiwmGdBcACvxJrkBdlE1Cw8TUFkjDpiSwT1PduxUD9Yl ZaSwSiUULDa69/SLfGyobqRnIqGysl1vRtCHG2d8/rsML/hVfPCoWgzI iv80StVQO1ZUHRrFyr0Nt0t4h195jiVHWgrBbm2r18SAz4Wo7+iYpCpJ lVo= -miek.nl. 345600 IN TXT "$pup: e66a339 2011-02-24 12:50:03 +0100 Miek Gieben$" -miek.nl. 345600 IN RRSIG TXT 8 2 345600 20110825011301 20110726011301 12051 miek.nl. kym+5x9xn5+9BBfFiQkcpIz1eZ/D4F5jBjtRZ+Ts3t3W8xMSG+WbK1Zh WopqjSP1jtQFlAGjkY5pTvO9kbBt8dY3yHO8hy1qgI5i3XZwm2UsNFsH yz2jJMQM74rRGXio0bUkh0H0PvBcZ2wK6Jn61hXLWC3Kmg0NHuIyWwwr tsA= -miek.nl. 345600 IN AAAA 2001:7b8:32a::2 -miek.nl. 345600 IN RRSIG AAAA 8 2 345600 20110825011301 20110726011301 12051 miek.nl. NHmqysscmxCP6eFhvmStfut1sHybTd7O2JlkQeCVzFbWv1Th3R7G/o2L zPE7qb7CNzeK4CYmkQZuWaQVmqOpbocuTI2TE95obMrqZ0VzTZ/Ps8LW 6RdgniJjWcOhl4P2w6Yo7WY3gvD9RjPdIJ5PJE1xf5KvrENx/UbAbdR8 JT4= -miek.nl. 86400 IN NSEC a.miek.nl. A NS SOA MX TXT AAAA RRSIG NSEC DNSKEY -miek.nl. 86400 IN RRSIG NSEC 8 2 86400 20110825011301 20110726011301 12051 miek.nl. YuiCAVIg0/fuXO78YgsQMhBIcdlJsp0Pi32a9Y47gWe62/o9AV/RMuoK OdKDBiTrcGUoGYiIKXASSqquHbLBH4duE32lFqimrdpE8dq0H2m51xOS g9Eo3UbFdQ8zGQGWRzSYw1lep47zaSSWqW2qmyF59l1jLW3SYRmMKSRk z9A= -miek.nl. 345600 IN DNSKEY 256 3 8 AwEAAcNEU67LJI5GEgF9QLNqLO1SMq1EdoQ6E9f85ha0k0ewQGCblyW2 836GiVsm6k8Kr5ECIoMJ6fZWf3CQSQ9ycWfTyOHfmI3eQ/1Covhb2y4b AmL/07PhrL7ozWBW3wBfM335Ft9xjtXHPy7ztCbV9qZ4TVDTW/Iyg0Pi wgoXVesz -miek.nl. 345600 IN DNSKEY 257 3 8 AwEAAcWdjBl4W4wh/hPxMDcBytmNCvEngIgB9Ut3C2+QI0oVz78/WK9K PoQF7B74JQ/mjO4fvIncBmPp6mFNxs9/WQX0IXf7oKviEVOXLjctR4D1 KQLX0wprvtUIsQFIGdXaO6suTT5eDbSd6tTwu5xIkGkDmQhhH8OQydoE uCwV245ZwF/8AIsqBYDNQtQ6zhd6jDC+uZJXg/9LuPOxFHbiMTjp6j3C CW0kHbfM/YHZErWWtjPj3U3Z7knQSIm5PO5FRKBEYDdr5UxWJ/1/20Sr zI3iztvPwHDsA2rdHm/4YRzq7CvG4N0t9ac/T0a0Sxba/BUX2UVPWaIV BdTRBtgHi0s= -miek.nl. 345600 IN RRSIG DNSKEY 8 2 345600 20110825011301 20110726011301 12051 miek.nl. pKMbYhGJP0AA2UEyxchOLQsTlfA89dzzhe1/bl9R1wjt572Gyl2YtujY 4FTRbFO92bnmfqRgHav7nnN+ToSXkspwEIsi4LIs27ngXC8shmzQPQec Pj5vO5XJqxROLbFhwCaHBEJbh0YlgMHhbk+QcKbH2gGP+sGLumM7KnwK 7lI= -miek.nl. 345600 IN RRSIG DNSKEY 8 2 345600 20110825011301 20110726011301 33694 miek.nl. oaZZSwUz1UhXFnJL8qfiPBneZKs/BGbQZWbA9U95eJgoT3p19DAgfqA0 t+iTt9SzrB3Mew211Ik77AZsF13TpryTr/qhe/kAK9dFryHV0JpZlZtS BNGVKIRRWwr3wxpD/9Z8A60MUVUaZTXUdaxWPNu1gNZPgJk1wIywLBEA D/icsNvhfVU47/CGzI4aFUeUIwJENxn0UZUVjZKQOSo58JyBkkvjQLfD ZVvRCZh/7Vdh8cBuNzDCifz2s5qrng+Xlaaly6vw1j1L8L2j74sGMEVE tH8lAyORNZRBswYux5WwXjLjsg3T8t9dAG3qY7ftngHxWB4HUZwLih5a Xj50Eg== -a.miek.nl. 345600 IN A 85.223.71.124 -a.miek.nl. 345600 IN RRSIG A 8 3 345600 20110825011301 20110726011301 12051 miek.nl. ueA2qBk2tahn4j4f2cvBQgahBstApb4ROKgzybIO8oShUTRseQWcg4vH RymI9AD5d/LbHIKmkfNkphm4O9Fburz83pTTA8cf6LvUBCGVLk1BYQYv f/gi8xHX7jkj6DaZ3dwfNq0agDE5fN1prfcksFLtPy081SU0BFYDr8lY VuU= -a.miek.nl. 345600 IN AAAA 2001:7b8:32a::2 -a.miek.nl. 345600 IN RRSIG AAAA 8 3 345600 20110825011301 20110726011301 12051 miek.nl. CT59F9JXQUNzIRCFlIDX8OTiDrw6JqG7WsdWA6dRsYuMZ5yd+TE1HkV+ rQjuBjOfh4pS0nset3G3l3wreXpDlXtBcvL/DrTzMciYdJoqJQjpGpJP BRGn/JpBHbG0kkJhNoxz1uLuWXKTx3jz8osx6yIyBysVLNEZn+59wxJg Gn4= -a.miek.nl. 86400 IN NSEC c.miek.nl. A AAAA RRSIG NSEC -a.miek.nl. 86400 IN RRSIG NSEC 8 3 86400 20110825011301 20110726011301 12051 miek.nl. cG0cLpsqC0DUmWB6o8Cs3xCohWJFuBo3VGqBkleN0mrU2cX/pMfqDA7J QDDTkCrJB1nPKxMqbVT5z2gWPr6rU5oq1tdk60Go58cheSmxMuSyNOSE jNk4x5LHPn4ghl7wL6V+XzAkfTm5ySNAzSZ3FVJCkc1l+BeHtraEoW/F LAU= -c.miek.nl. 345600 IN A 85.223.71.124 -c.miek.nl. 345600 IN RRSIG A 8 3 345600 20110825011301 20110726011301 12051 miek.nl. iiwAIygH5NmbqrpSCouwLIc3z5Bwk/mDR5ZeT6qYSMhuXECP59cVeimG ENWV5UsUVy4ZxAdahLRRJJEt1NaKoBZa6Q8lDSPSE2BVPKYYDfM1B4Vb Tpl2l1G+osJxmPXkZYUtQA04g0R9PJ5+4NuPrdtYTofi7/A9V91NWwZA jfY= -c.miek.nl. 345600 IN AAAA 2001:7b8:32a::2 -c.miek.nl. 345600 IN RRSIG AAAA 8 3 345600 20110825011301 20110726011301 12051 miek.nl. wc2yOWeTInPWyO/fEFF+bR45JuoE0irDuT1SZsMPcxsQ/3vpCxYheWVK BDXnaT/w+2yPEyYKm3VVyr45fVT9v+AmoxyLpgJiXQG1SZTj2sX+3Xjg JeSisCMsa7dw3hnOacLjKlxg+4KX6kzf7HQ5H5bINlpII18jYLUFCHKd jWY= -c.miek.nl. 86400 IN NSEC elektron.miek.nl. A AAAA RRSIG NSEC -c.miek.nl. 86400 IN RRSIG NSEC 8 3 86400 20110825011301 20110726011301 12051 miek.nl. fXkzo7csTtNqsPqpJEP3E1Vo+LcWdEqxsab9u2yDRP5FZgSDZSnzBd7l mi/yxYjogmrR44z7WaYN7Ow01M3cI0IuXdNQLVlsatlU/NYYKYcYUQ/Y BEJY7Ry+CvsTu4NpvrhN1zueX3DhcmWc8hgEQkJddBL4Vt5JmJu9tPgx 6RY= -elektron.miek.nl. 345600 IN A 85.223.71.124 -elektron.miek.nl. 345600 IN RRSIG A 8 3 345600 20110825011301 20110726011301 12051 miek.nl. aiNoDRGxcY/xfEBEYoIjEQQ3/sqj600WzSq6WFCUMMMqfhT4e8/em1Yn rkIqc4OucLJRsNJb1kfUOOiDa0c1pDt+xP0sw3+8kjBl+IwE4PZy88Uy 1iG3cNNwEuwdc/UdxjmI2/0S9HIOYj896GOGihJLVHgCsVpH7Ssp2r6J cfA= -elektron.miek.nl. 345600 IN AAAA 2001:7b8:32a::2 -elektron.miek.nl. 345600 IN RRSIG AAAA 8 3 345600 20110825011301 20110726011301 12051 miek.nl. wqvZD1mMa3z+DYt39AC0huj2nJc0w7DtmzryzePpwpqPD9TWHhROoflE 7gziHSUz+77V0NAIgqPmJ8Sh+g9B/Ey+blUj8YEYddkXIXoE/4KtWylq ybrqH2FjW9YTBd/GkoY7hjZT4/ep01AYynErzwtZLacfQv4O7YOtw2jR M1w= -elektron.miek.nl. 345600 IN SSHFP 1 1 EFEA55929C653057D981BC0F1D2C9E11C60953C7 -elektron.miek.nl. 345600 IN SSHFP 2 1 1A117C327825918B23422021EB5618FADD8150EE -elektron.miek.nl. 345600 IN RRSIG SSHFP 8 3 345600 20110825011301 20110726011301 12051 miek.nl. UrkW7ksY9sciRBzNreUcbCcMYVYAmjNeglMUlpV9ujR1vI1F0n2lbBi7 iE9G706jjR2VNKuo3sjjCcjaAqnET6FzxpCNRyuEPk97XQPvlGO6d8YN Keei18aE0/LaZPrWrq5Yafy9Ss3yjibGAoNnhyFHegbz80zmjzquNy/b ZpI= -elektron.miek.nl. 86400 IN NSEC localhost.miek.nl. A AAAA SSHFP RRSIG NSEC -elektron.miek.nl. 86400 IN RRSIG NSEC 8 3 86400 20110825011301 20110726011301 12051 miek.nl. luhY8LlPYnyVpka3585I9Lh+KOrmZUJtuJBqAHfDuqTRcEEP/ep7lhSQ bl45U/XOm3ITxp/bcTjMwILdBNfRmo/sit9Dt/xxypoE30MuCf3ILmS1 c9hTZIFN/lbf7fqHDjltpkTrI3BDVDNC4ngPAvq/Z5OzCatH7tUemY8v s7c= -localhost.miek.nl. 345600 IN A 127.0.0.1 -localhost.miek.nl. 345600 IN RRSIG A 8 3 345600 20110825011301 20110726011301 12051 miek.nl. wPAvNy2IpYn125Zzdn5GrlWfeL/Y6HL0oPZx+4HjW5MEHL/yXYzkolpB WGEGN8LO73x2i+8Vb/KF/tpMlHvCT7+adkJAYinbAZp9OFFvUZIKx1IP NHfRZYphnWAbRmfsyF653QfsBwsb4GJNhxy8E/AiLxNXlT0VToajvlOk jb4= -localhost.miek.nl. 86400 IN NSEC *.w1.miek.nl. A RRSIG NSEC -localhost.miek.nl. 86400 IN RRSIG NSEC 8 3 86400 20110825011301 20110726011301 12051 miek.nl. EhKtO0aHTX+FTVgmRqqJAY5VclhKPJxbk1Rd6zepjgQfFk8TlmMFUY1r uplQkc4VmpVqBtJ+wyyqGq9n1AudvfR/oY5FLCYaRFzLN3id2ueJj7h5 VFHvG9QN3ebUGYlcxRTtfGX6KCa8RYTA0b6+w9XnzAVWjITQ1xTg0QS/ YCc= -*.w1.miek.nl. 345600 IN TXT "Wildcard 1 expansion" -*.w1.miek.nl. 345600 IN RRSIG TXT 8 3 345600 20110825011301 20110726011301 12051 miek.nl. M8245hL8eQDNScXdyspnegEiMR/5hYErLEVGag/Ev0+OvKck2uRgSnQm OGkTxsn2e4CZnthd0UYP8SYtyL3mgEk49Z9y1dcwdYqrpYnkSzkoxr1f au1JPZ8AtP8T57xXo4ljabTl4l77b7gwf+flGd1Ilgk2kAl2akr9/0uR HDk= -*.w1.miek.nl. 86400 IN NSEC *.w2.miek.nl. TXT RRSIG NSEC -*.w1.miek.nl. 86400 IN RRSIG NSEC 8 3 86400 20110825011301 20110726011301 12051 miek.nl. evRJ7QgDd4T4eT45How07BVAZpjN6UZvq2AmNhFdPpX8v8kCmSsI8EQA fA5zg3KQ/1epcLUXRrfNtT0WnkdR+5GdDhKHjHUG8mhuiJLK2Awm+3jx 3fpxBDGvQcQTSuILY8Z6Z4ePL+D838YlZyrkWJZEvsjZYUNamFvd17kh D0k= -*.w2.miek.nl. 345600 IN TXT "Wildcard 2 expansion" -*.w2.miek.nl. 345600 IN RRSIG TXT 8 3 345600 20110825011301 20110726011301 12051 miek.nl. nQVxZQgjvaCishiZnRET2MLmZHHRE45svPFAuGR3uultY0nnQpdNJTsg ZLCoUvj+g7cilGrwtTwCEj8TB49cBkOFLl8TsfECj8ljBpg3hoQ6eAWO Yz0SIgSxfwfHt70uX+1ZsCNqwkaYq2zIDXPsfaRC9fu50qXGu2C5dXDF RdY= -*.w2.miek.nl. 86400 IN NSEC www.miek.nl. TXT RRSIG NSEC -*.w2.miek.nl. 86400 IN RRSIG NSEC 8 3 86400 20110825011301 20110726011301 12051 miek.nl. FNAzm1aSbgDB9B62ln9CMu7+Fl+d3EHD7S2rWOOnXfUr44NUjq7176x8 viwY2lfrUo+0nL5EZ/IoIpO7xSwDallIBPJePewILrSXzHE6zsZohl/3 E0YZwiWBfC2jS99lW3VTZWCvOq/vknNIhAKcdeaKC/XbPygkr1s2kq+f m64= -www.miek.nl. 345600 IN CNAME a.miek.nl. -www.miek.nl. 345600 IN RRSIG CNAME 8 3 345600 20110825011301 20110726011301 12051 miek.nl. EGIKOVEUTTfeMobxuTQ9K5ulr6I21MH6m3euTqe8t37eWI+usZdfw6mY EbjsugLbaQq6KsTsn6a7puMBnG97PjKbUS2mF+lIDf5RbLR+SxpIoQUl 3TLBex7efv5TP2V95xZ0p0C3aazJcIqvdoDlQA43eCbXBwM9T9FBQMHU uGE= -www.miek.nl. 86400 IN NSEC zzzzz.miek.nl. CNAME RRSIG NSEC -www.miek.nl. 86400 IN RRSIG NSEC 8 3 86400 20110825011301 20110726011301 12051 miek.nl. i/QVFS+O1dUb1kLzSNzfqABPzIJjHFivpZpDz7o5LcSEY1fYH5goQRW/ ZT4+0AiP9PeVZnxC+e59yBbzoStmGutHoAZ7UnDWfWKsFKMpvkdE/aSU zXdYdjOU1Pr9e7IECmLSgYs/Dpov6jX+X2d/F7myBVu90rSy7W1jtzjH 8RI= -zzzzz.miek.nl. 345600 IN TXT "Last record" -zzzzz.miek.nl. 345600 IN RRSIG TXT 8 3 345600 20110825011301 20110726011301 12051 miek.nl. oX9aquvHJ4st/z2VLtBBxLWlRh7s3ppfLuzOLy5KBN67dtzOI8Yv4NT6 gKiZ+EQoXcN3gXoDaQiRtV5inN1SX16HhHwzkUD4Tu2vCJ16SMGNL3NP l9w4ujnR73IpK6n4C6fmBuEC/qnrqjPLVn2gQ9+8oizynj5fBJvl63oG X0A= -zzzzz.miek.nl. 86400 IN NSEC miek.nl. TXT RRSIG NSEC -zzzzz.miek.nl. 86400 IN RRSIG NSEC 8 3 86400 20110825011301 20110726011301 12051 miek.nl. RzHU4jtMnbNicO5IIuezURUd4e4PQS75ixOoEBn57FF+hkkXlzB+4HKE 260ZdajfnFBz2aqYqVImMsIiAhWIwai2fEy9/79PPexjP9VTM4oNjlEE FQwcAo/IQCHjbwN4Mfpp3wcFgozwM6NSWYHtqD2//7KTBjXWNewHBuGe rCo= diff --git a/_examples/ns/ns.go b/_examples/ns/ns.go deleted file mode 100644 index 895c87d7..00000000 --- a/_examples/ns/ns.go +++ /dev/null @@ -1,199 +0,0 @@ -package main - -import ( - "bufio" - "dns" - "flag" - "fmt" - "log" - "os" - "os/signal" - "runtime/pprof" - "strings" -) - -// A small nameserver implementation, not too fast. -var ( - zone []dns.RR - ns []dns.RR - nsDNSSEC []dns.RR - soa dns.RR - spamIN dns.RR - spamCH dns.RR - debug *bool -) - -func send(w dns.ResponseWriter, m *dns.Msg) { - buf, _ := m.Pack() - w.Write(buf) -} - -func handleQueryCHAOS(w dns.ResponseWriter, req *dns.Msg) { - m := new(dns.Msg) - qname := strings.ToLower(req.Question[0].Name) - qtype := req.Question[0].Qtype - qclass := req.Question[0].Qclass - - m.Extra = make([]dns.RR, 1) - m.Extra[0] = spamCH - - if qclass != dns.ClassCHAOS { - m.SetRcode(req, dns.RcodeServerFailure) - send(w, m) - return - } - - if (qname == "version.bind." || qname == "id.server.") && qtype == dns.TypeTXT { - m.SetReply(req) - m.Answer = make([]dns.RR, 1) - m.Answer[0] = &dns.RR_TXT{Hdr: dns.RR_Header{Name: qname, - Rrtype: qtype, Class: qclass}, Txt: "NS 0.0.1"} - send(w, m) - return - } - if (qname == "authors.bind." || qname == "authors.server.") && qtype == dns.TypeTXT { - m.SetReply(req) - m.Answer = make([]dns.RR, 1) - m.Answer[0] = &dns.RR_TXT{Hdr: dns.RR_Header{Name: qname, - Rrtype: qtype, Class: qclass}, Txt: "Miek Gieben"} - send(w, m) - return - } - m.SetRcode(req, dns.RcodeServerFailure) - send(w, m) - return -} - -func handleQuery(w dns.ResponseWriter, req *dns.Msg) { - var dnssec bool - m := new(dns.Msg) - if req.Question[0].Qclass != dns.ClassINET { - m.SetRcode(req, dns.RcodeServerFailure) - send(w, m) - return - } - m.SetReply(req) - m.Ns = ns - m.Extra = make([]dns.RR, 1) - m.Extra[0] = spamIN - - // Check DNSSEC OK - for _, v := range req.Extra { - if o, ok := v.(*dns.RR_OPT); ok { - if dnssec = o.Do(); dnssec { - m.Extra = append(m.Extra, o) - m.Ns = nsDNSSEC - break - } - } - } - - //m.Answer = make([]dns.RR, 0) - s, _ := zone.LookupQuestion(req.Question[0]) - if s == nil { - // Authority section should only contain the SOA record for NXDOMAIN - m.Ns = m.Ns[:1] - m.Ns[0] = soa - m.MsgHdr.Rcode = dns.RcodeNameError - send(w, m) - // Lookup the previous name in the Nxt list for this zone - // and insert the nsec/nsec3 from that. Also give the nsec - // that proofs there is no wildcard - return - } - - // TODO CNAME - //cname: - switch req.Question[0].Qtype { - case dns.TypeRRSIG: - m.Answer = s.RRsigs - case dns.TypeNSEC, dns.TypeNSEC3: - m.Answer = []dns.RR{s.Nxt} - default: - m.Answer = s.RRs - } - if dnssec && req.Question[0].Qtype != dns.TypeRRSIG && len(s.RRsigs) > 0 { - for _, r := range s.RRsigs { - m.Answer = append(m.Answer, r) - } - } - if *debug { - println(m.Question[0].String()) - } - send(w, m) -} - -func main() { - debug = flag.Bool("debug", false, "enable debugging") - cpuprofile := flag.String("cpuprofile", "", "write cpu profile to file") - flag.Parse() - - if *cpuprofile != "" { - f, err := os.Create(*cpuprofile) - if err != nil { - log.Fatal(err) - } - pprof.StartCPUProfile(f) - defer pprof.StopCPUProfile() - } - - file, err := os.Open("miek.nl.signed") - defer file.Close() - if err != nil { - fmt.Printf("%s\n", err.String()) - return - } - p := dns.NewParser(bufio.NewReader(file)) - zone, err = p.Zone() - if err != nil { - fmt.Printf("%s\n", err.String()) - return - } - s, err := zone.LookupName("miek.nl.", dns.ClassINET, dns.TypeSOA) - if err != nil { - fmt.Printf("%s\n", err.String()) - return - } - soa = s.RRs[0] - - s1, err := zone.LookupName("miek.nl.", dns.ClassINET, dns.TypeNS) - if err != nil { - fmt.Printf("%s\n", err.String()) - return - } - ns = s1.RRs - if len(s1.RRsigs) > 0 { - nsDNSSEC = ns - for _, r := range s.RRsigs { - nsDNSSEC = append(nsDNSSEC, r) - } - } - - spam := "Proudly served by Go: http://www.golang.org" - spamIN = &dns.RR_TXT{Hdr: dns.RR_Header{Name: "miek.nl.", Rrtype: dns.TypeTXT, Class: dns.ClassINET}, Txt: spam} - spamCH = &dns.RR_TXT{Hdr: dns.RR_Header{Name: "miek.nl.", Rrtype: dns.TypeTXT, Class: dns.ClassCHAOS}, Txt: spam} - - dns.HandleFunc("miek.nl.", handleQuery) - dns.HandleFunc("bind.", handleQueryCHAOS) - dns.HandleFunc("server.", handleQueryCHAOS) - go func() { - err := dns.ListenAndServe(":8053", "udp", nil) - if err != nil { - - } - }() - go func() { - err := dns.ListenAndServe(":8053", "tcp", nil) - if err != nil { - - } - }() -forever: - for { - select { - case <-signal.Incoming: - fmt.Printf("Signal received, stopping\n") - break forever - } - } -}