Skip to content
This repository has been archived by the owner on Dec 14, 2020. It is now read-only.

Commit

Permalink
answer only with requested type
Browse files Browse the repository at this point in the history
  • Loading branch information
llybin committed Jul 19, 2019
1 parent 70f8680 commit 10c9ccb
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 4 deletions.
2 changes: 1 addition & 1 deletion burst/blockchain.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ type response struct {
Alias string
}

var httpClient = &http.Client{Timeout: 5 * time.Second}
var httpClient = &http.Client{Timeout: 10 * time.Second}

func getJson(url string, target interface{}) error {
r, err := httpClient.Get(url)
Expand Down
8 changes: 6 additions & 2 deletions dns/dns.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,18 @@ func (s *BurstDNS) answer(addr net.UDPAddr, m dnsmessage.Message) {

if records, err := burst.GetRecords(aliasName); err == nil {
for _, record := range records {
// return only requested type
if record.Type != dnsTypeToStr(m.Questions[0].Type) {
continue
}
req := request{
Host: domain,
Type: record.Type,
Data: record.Data,
TTL: record.TTL,
}

res, err := ToResource(req)
res, err := toResource(req)
if err != nil {
log.Println(err)
continue
Expand Down Expand Up @@ -108,7 +112,7 @@ func (s *BurstDNS) Listen() {
continue
}

log.Printf("Got request %v, %v from: %s\n", m, m.Header, addr)
//log.Printf("Got request %v, %v from: %s\n", m, m.Header, addr)

go s.answer(*addr, m)
}
Expand Down
13 changes: 12 additions & 1 deletion dns/resourse.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ var (
errUnknownType = errors.New("type unknown")
)

func ToResource(req request) (dnsmessage.Resource, error) {
func toResource(req request) (dnsmessage.Resource, error) {
rName, err := dnsmessage.NewName(req.Host)
none := dnsmessage.Resource{}
if err != nil {
Expand Down Expand Up @@ -52,3 +52,14 @@ func ToResource(req request) (dnsmessage.Resource, error) {
Body: rBody,
}, nil
}

func dnsTypeToStr(dnsType dnsmessage.Type) string {
switch dnsType {
case dnsmessage.TypeA:
return "a"
case dnsmessage.TypeAAAA:
return "aaaa"
default:
return ""
}
}

0 comments on commit 10c9ccb

Please sign in to comment.