pull/18/head
Hugo Landau 10 years ago
parent 53ab040fdc
commit cc5afd43b7

@ -1,4 +1,5 @@
package backend package backend
import "github.com/golang/groupcache/lru" import "github.com/golang/groupcache/lru"
import "github.com/miekg/dns" import "github.com/miekg/dns"
import "github.com/hlandau/degoutils/log" import "github.com/hlandau/degoutils/log"
@ -175,7 +176,7 @@ func (tx *btx) determineDomain() (subname, basename, rootname string, err error)
return return
} }
for i := len(parts)-1; i >= 0; i-- { for i := len(parts) - 1; i >= 0; i-- {
v := parts[i] v := parts[i]
// scanning for rootname // scanning for rootname
@ -234,8 +235,8 @@ func (tx *btx) doRootDomain() (rrs []dns.RR, err error) {
nsname = "this.x--nmc." + tx.rootname nsname = "this.x--nmc." + tx.rootname
} }
soa := &dns.SOA { soa := &dns.SOA{
Hdr: dns.RR_Header { Hdr: dns.RR_Header{
Name: dns.Fqdn(tx.rootname), Name: dns.Fqdn(tx.rootname),
Ttl: 86400, Ttl: 86400,
Class: dns.ClassINET, Class: dns.ClassINET,
@ -250,8 +251,8 @@ func (tx *btx) doRootDomain() (rrs []dns.RR, err error) {
Minttl: 600, Minttl: 600,
} }
ns := &dns.NS { ns := &dns.NS{
Hdr: dns.RR_Header { Hdr: dns.RR_Header{
Name: dns.Fqdn(tx.rootname), Name: dns.Fqdn(tx.rootname),
Ttl: 86400, Ttl: 86400,
Class: dns.ClassINET, Class: dns.ClassINET,
@ -260,7 +261,7 @@ func (tx *btx) doRootDomain() (rrs []dns.RR, err error) {
Ns: dns.Fqdn(nsname), Ns: dns.Fqdn(nsname),
} }
rrs = []dns.RR{ soa, ns, } rrs = []dns.RR{soa, ns}
return return
} }
@ -360,7 +361,7 @@ func (tx *btx) _findNCValue(ncv *ncValue, isubname, subname string, depth int,
return nil, "", merr.ErrNoSuchDomain return nil, "", merr.ErrNoSuchDomain
} }
} }
return tx._findNCValue(sub, rest, head + "." + subname, depth+1, shortCircuitFunc) return tx._findNCValue(sub, rest, head+"."+subname, depth+1, shortCircuitFunc)
} }
if shortCircuitFunc != nil { if shortCircuitFunc != nil {
@ -382,9 +383,9 @@ func (tx *btx) addAnswersUnderNCValueActual(ncv *ncValue, sn string) (rrs []dns.
if pip == nil || pip.To4() == nil { if pip == nil || pip.To4() == nil {
continue continue
} }
rrs = append(rrs, &dns.A { rrs = append(rrs, &dns.A{
Hdr: dns.RR_Header { Name: dns.Fqdn(tx.qname), Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 600, }, Hdr: dns.RR_Header{Name: dns.Fqdn(tx.qname), Rrtype: dns.TypeA, Class: dns.ClassINET, Ttl: 600},
A: pip }) A: pip})
} }
// AAAA // AAAA
@ -398,9 +399,9 @@ func (tx *btx) addAnswersUnderNCValueActual(ncv *ncValue, sn string) (rrs []dns.
if pip == nil || pip.To4() != nil { if pip == nil || pip.To4() != nil {
continue continue
} }
rrs = append(rrs, &dns.AAAA { rrs = append(rrs, &dns.AAAA{
Hdr: dns.RR_Header { Name: dns.Fqdn(tx.qname), Rrtype: dns.TypeAAAA, Class: dns.ClassINET, Ttl: 600, }, Hdr: dns.RR_Header{Name: dns.Fqdn(tx.qname), Rrtype: dns.TypeAAAA, Class: dns.ClassINET, Ttl: 600},
AAAA: pip }) AAAA: pip})
} }
// NS // NS
@ -411,9 +412,9 @@ func (tx *btx) addAnswersUnderNCValueActual(ncv *ncValue, sn string) (rrs []dns.
for _, ns := range nss { for _, ns := range nss {
ns = dns.Fqdn(ns) ns = dns.Fqdn(ns)
rrs = append(rrs, &dns.NS { rrs = append(rrs, &dns.NS{
Hdr: dns.RR_Header { Name: dns.Fqdn(tx.qname), Rrtype: dns.TypeNS, Class: dns.ClassINET, Ttl: 600, }, Hdr: dns.RR_Header{Name: dns.Fqdn(tx.qname), Rrtype: dns.TypeNS, Class: dns.ClassINET, Ttl: 600},
Ns: ns }) Ns: ns})
} }
// TXT // TXT
@ -423,9 +424,9 @@ func (tx *btx) addAnswersUnderNCValueActual(ncv *ncValue, sn string) (rrs []dns.
} }
for _, txt := range txts { for _, txt := range txts {
rrs = append(rrs, &dns.TXT { rrs = append(rrs, &dns.TXT{
Hdr: dns.RR_Header { Name: dns.Fqdn(tx.qname), Rrtype: dns.TypeTXT, Class: dns.ClassINET, Ttl: 600, }, Hdr: dns.RR_Header{Name: dns.Fqdn(tx.qname), Rrtype: dns.TypeTXT, Class: dns.ClassINET, Ttl: 600},
Txt: txt }) Txt: txt})
} }
// TODO: MX // TODO: MX
@ -568,8 +569,8 @@ func (ncv *ncValue) GetDSs() (dss []dns.DS, err error) {
a4h := hex.EncodeToString(a4b) a4h := hex.EncodeToString(a4b)
d := dns.DS { d := dns.DS{
Hdr: dns.RR_Header { Rrtype: dns.TypeDS, Class: dns.ClassINET, Ttl: 60, }, Hdr: dns.RR_Header{Rrtype: dns.TypeDS, Class: dns.ClassINET, Ttl: 60},
KeyTag: uint16(a1), KeyTag: uint16(a1),
Algorithm: uint8(a2), Algorithm: uint8(a2),
DigestType: uint8(a3), DigestType: uint8(a3),

@ -1,4 +1,5 @@
package main package main
import "github.com/hlandau/degoutils/config" import "github.com/hlandau/degoutils/config"
import "github.com/hlandau/degoutils/log" import "github.com/hlandau/degoutils/log"
import "github.com/hlandau/degoutils/daemon" import "github.com/hlandau/degoutils/daemon"
@ -8,7 +9,7 @@ func main() {
cfg := server.ServerConfig{} cfg := server.ServerConfig{}
config := config.Configurator{ config := config.Configurator{
ProgramName: "ncdns", ProgramName: "ncdns",
ConfigFilePaths: []string { "etc/ncdns.conf", "/etc/ncdns/ncdns.conf", }, ConfigFilePaths: []string{"etc/ncdns.conf", "/etc/ncdns/ncdns.conf"},
} }
config.ParseFatal(&cfg) config.ParseFatal(&cfg)

@ -11,7 +11,7 @@ type NameShowCmd struct {
} }
func NewNameShowCmd(id interface{}, name string) (*NameShowCmd, error) { func NewNameShowCmd(id interface{}, name string) (*NameShowCmd, error) {
return &NameShowCmd { return &NameShowCmd{
id: id, id: id,
Name: name, Name: name,
}, nil }, nil

@ -1,4 +1,5 @@
package server package server
import "github.com/hlandau/madns" import "github.com/hlandau/madns"
import "github.com/hlandau/degoutils/log" import "github.com/hlandau/degoutils/log"
import "github.com/hlandau/ncdns/backend" import "github.com/hlandau/ncdns/backend"
@ -41,7 +42,7 @@ func NewServer(cfg *ServerConfig) (s *Server, err error) {
s = &Server{} s = &Server{}
s.cfg = *cfg s.cfg = *cfg
bcfg := &backend.Config { bcfg := &backend.Config{
RPCUsername: cfg.NamecoinRPCUsername, RPCUsername: cfg.NamecoinRPCUsername,
RPCPassword: cfg.NamecoinRPCPassword, RPCPassword: cfg.NamecoinRPCPassword,
RPCAddress: cfg.NamecoinRPCAddress, RPCAddress: cfg.NamecoinRPCAddress,
@ -146,7 +147,7 @@ func (s *Server) doRunListener(ds *dns.Server) {
} }
func (s *Server) runListener(net string) *dns.Server { func (s *Server) runListener(net string) *dns.Server {
ds := &dns.Server { ds := &dns.Server{
Addr: s.cfg.Bind, Addr: s.cfg.Bind,
Net: net, Net: net,
Handler: s.mux, Handler: s.mux,

@ -1,4 +1,5 @@
package util package util
import "strings" import "strings"
// Split a domain name a.b.c.d.e into parts a (the head) and b.c.d.e (the rest). // Split a domain name a.b.c.d.e into parts a (the head) and b.c.d.e (the rest).

Loading…
Cancel
Save