+22
docs/alky.toml
+22
docs/alky.toml
···
+1
-1
go.mod
+1
-1
go.mod
+2
go.sum
+2
go.sum
···code.kiri.systems/kiri/magna v0.0.0-20240721214902-8d0a079dbd84 h1:igzBX4k3REg0WZExjGLWW7/wu/X+U6QlbMc8aeO2030=code.kiri.systems/kiri/magna v0.0.0-20240721214902-8d0a079dbd84/go.mod h1:gSzCiTKyKlUEjGgl/qTb8rxF0QUVuWOEORAsTXA0qyI=+code.kiri.systems/kiri/magna v0.0.0-20240922043826-2c2a1c508469 h1:LUvvGcJ7DuW3eo7yblNH2igCJzYsbWJQ08iZEXBWplc=+code.kiri.systems/kiri/magna v0.0.0-20240922043826-2c2a1c508469/go.mod h1:gSzCiTKyKlUEjGgl/qTb8rxF0QUVuWOEORAsTXA0qyI=
+31
-11
main.go
+31
-11
main.go
·········
+11
-3
pkg/config/config.go
+11
-3
pkg/config/config.go
···
+52
pkg/dns/cache.go
+52
pkg/dns/cache.go
···
-300
pkg/dns/dns.go
-300
pkg/dns/dns.go
···-s.Logger.Info("query", "class", msg.Question[0].QClass.String(), "type", msg.Question[0].QType.String(), "name", msg.Question[0].QName, "rcode", msg.Header.RCode.String(), "remote_addr", remote_addr.IP, "time_taken", time.Since(start).Nanoseconds())-s.Logger.Info("query", "class", msg.Question[0].QClass.String(), "type", msg.Question[0].QType.String(), "name", msg.Question[0].QName, "rcode", msg.Header.RCode.String(), "remote_addr", conn.RemoteAddr(), "time_taken", time.Since(start).Nanoseconds())-func (s *Server) resolveQuestion(question magna.Question, servers []string) ([]magna.ResourceRecord, error) {-cname_answers, err := s.resolveQuestion(magna.Question{QName: msg.Answer[0].RData.String(), QType: question.QType, QClass: question.QClass}, s.RootServers)-ans, err := s.resolveQuestion(magna.Question{QName: a.RData.String(), QType: magna.AType, QClass: magna.IN}, s.RootServers)-func queryServer(ctx context.Context, question magna.Question, server string, ch chan<- queryResponse) {
+46
pkg/dns/logging.go
+46
pkg/dns/logging.go
···
+137
pkg/dns/ratelimit.go
+137
pkg/dns/ratelimit.go
···
+240
pkg/dns/resolve.go
+240
pkg/dns/resolve.go
···+func (h *QueryHandler) resolveWithCache(question magna.Question) ([]magna.ResourceRecord, error) {+cacheKey := fmt.Sprintf("%s:%s:%s", strings.ToLower(question.QName), question.QType.String(), question.QClass.String())+aRecords, err := h.resolveWithCache(magna.Question{QName: cnameTarget, QType: question.QType, QClass: question.QClass})+addressRecords, err := h.resolveWithCache(magna.Question{QName: cnameTarget, QType: question.QType, QClass: question.QClass})+func (h *QueryHandler) resolveQuestion(question magna.Question, servers []string) ([]magna.ResourceRecord, error) {+cname_answers, err := h.resolveQuestion(magna.Question{QName: msg.Answer[0].RData.String(), QType: question.QType, QClass: question.QClass}, h.RootServers)+ans, err := h.resolveQuestion(magna.Question{QName: a.RData.String(), QType: magna.AType, QClass: magna.IN}, h.RootServers)+func queryServer(ctx context.Context, question magna.Question, server string, ch chan<- queryResponse, timeout time.Duration) {
+239
pkg/dns/server.go
+239
pkg/dns/server.go
···