dns/ex/funkensturm/config.go

45 lines
799 B
Go

package main
// This is transparant proxy
import (
"dns"
"fmt"
)
func send(m *dns.Msg) (buf []byte) {
if *verbose {
fmt.Printf("--> %s\n", m.Question[0].String())
}
var o *dns.Msg
var err error
for _, c := range qr {
o, err = c.Client.Exchange(m, c.Addr)
if *verbose {
if err == nil {
fmt.Printf("<-- %s\n", m.Question[0].String())
} else {
fmt.Printf("%s\n", err.Error())
}
}
}
if err == nil {
buf, _ = o.Pack()
}
return
}
// Return the configration
func NewFunkenSturm() *FunkenSturm {
f := new(FunkenSturm)
f.Setup = func() bool { return true } // no setup
f.Default = send
f.Funk = make([]*Funk, 1) // 1 Funk chain
f.Funk[0] = new(Funk)
f.Funk[0].Match = func(m *dns.Msg) (*dns.Msg, bool) { return m, true }
f.Funk[0].Action = send
return f
}