add rude reponder too

This commit is contained in:
Miek Gieben 2011-01-17 15:52:32 +01:00
parent e57dc24115
commit 9a87cb59da
6 changed files with 67 additions and 16 deletions

View File

@ -5,6 +5,7 @@ all:
gomake -C axfr
gomake -C notify
gomake -C reflect
gomake -C rude
clean:
gomake -C mx clean
@ -13,3 +14,4 @@ clean:
gomake -C axfr clean
gomake -C notify clean
gomake -C reflect clean
gomake -C rude clean

7
_examples/rude/Makefile Normal file
View File

@ -0,0 +1,7 @@
# 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=rude
GOFILES=rude.go
include $(GOROOT)/src/Make.cmd

BIN
_examples/rude/_go_.6 Normal file

Binary file not shown.

BIN
_examples/rude/rude Executable file

Binary file not shown.

58
_examples/rude/rude.go Normal file
View File

@ -0,0 +1,58 @@
/*
* Send back REFUSED
*
* Stephane Bortzmeyer <stephane+grong@bortzmeyer.org>
*
* Adapted to Go DNS (i.e. completely rewritten)
* Miek Gieben <miek@miek.nl>
*/
package main
import (
"net"
"time"
"dns"
"dns/responder"
)
type server responder.Server
func (s *server) ResponderUDP(c *net.UDPConn, a net.Addr, in []byte) {
inmsg := new(dns.Msg)
if !inmsg.Unpack(in) {
// FormError
// NXdomain 'n stuff
println("Unpacking failed")
}
m := new(dns.Msg)
m.MsgHdr.Id = inmsg.MsgHdr.Id
m.MsgHdr.Response = true
m.MsgHdr.Opcode = dns.OpcodeQuery
m.MsgHdr.Rcode = dns.RcodeRefused
m.Question = make([]dns.Question, 1)
m.Question[0] = inmsg.Question[0]
out, b := m.Pack()
if !b {
println("Failed to pack")
}
responder.SendUDP(out, c, a)
}
func (s *server) ResponderTCP(c *net.TCPConn, in []byte) {
return
}
func main() {
s := new(responder.Server)
s.Address = "127.0.0.1"
s.Port = "8053"
var srv *server
ch := make(chan bool)
go s.NewResponder(srv, ch)
time.Sleep(100 * 1e9)
}

View File

@ -1,16 +0,0 @@
package responder
import (
"./types"
)
func Respond(query types.DNSquery, config map[string]interface{}) types.DNSresponse {
var (
result types.DNSresponse
)
result.Responsecode = types.REFUSED
return result
}
func Init(firstoption int) {
}