add rude reponder too
This commit is contained in:
parent
e57dc24115
commit
9a87cb59da
|
@ -5,6 +5,7 @@ all:
|
||||||
gomake -C axfr
|
gomake -C axfr
|
||||||
gomake -C notify
|
gomake -C notify
|
||||||
gomake -C reflect
|
gomake -C reflect
|
||||||
|
gomake -C rude
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
gomake -C mx clean
|
gomake -C mx clean
|
||||||
|
@ -13,3 +14,4 @@ clean:
|
||||||
gomake -C axfr clean
|
gomake -C axfr clean
|
||||||
gomake -C notify clean
|
gomake -C notify clean
|
||||||
gomake -C reflect clean
|
gomake -C reflect clean
|
||||||
|
gomake -C rude clean
|
||||||
|
|
|
@ -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
|
Binary file not shown.
Binary file not shown.
|
@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -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) {
|
|
||||||
}
|
|
Loading…
Reference in New Issue