Skip to content
This repository was archived by the owner on Jun 11, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions apps/console/internal/app/dns-server.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"time"

"github.com/kloudlite/api/apps/console/internal/domain"
"github.com/kloudlite/operator/pkg/errors"
"github.com/kloudlite/api/pkg/errors"
"github.com/miekg/dns"
)

Expand Down Expand Up @@ -37,7 +37,9 @@ func (h *dnsHandler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
for _, question := range r.Question {
answers, err := h.resolver(ctx, question.Name, question.Qtype)
if err != nil {
logger.Error("FAILED to resolve dns record, got", "err", err, "question", question.Name)
if !errors.Is(err, errNoServiceBinding) && !errors.Is(err, errInvalidDNSQuery) {
logger.Error("FAILED to resolve dns record, got", "err", err, "question", question.Name)
}
msg.Rcode = dns.RcodeNameError
continue
}
Expand All @@ -58,7 +60,10 @@ func (h *dnsHandler) newRR(domain string, ttl int, ip string) ([]dns.RR, error)
return []dns.RR{r}, nil
}

var errNoServiceBinding = errors.Newf("no service binding found")
var (
errNoServiceBinding = errors.Newf("no service binding found")
errInvalidDNSQuery = errors.Newf("invalid dns query")
)

func (h *dnsHandler) resolver(ctx context.Context, domain string, qtype uint16) ([]dns.RR, error) {
m := new(dns.Msg)
Expand All @@ -68,7 +73,7 @@ func (h *dnsHandler) resolver(ctx context.Context, domain string, qtype uint16)
question := m.Question[0]
sp := strings.SplitN(strings.ToLower(question.Name), fmt.Sprintf(".%s", h.kloudliteDNSSuffix), 2)
if len(sp) < 2 {
return nil, fmt.Errorf("failed to split into 2 over .%s", h.kloudliteDNSSuffix)
return nil, errInvalidDNSQuery
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Consider including context in the error message for easier debugging

While using a predefined error is good, including some context (like the problematic domain) in the error message could aid in debugging complex issues.

Suggested change
return nil, errInvalidDNSQuery
return nil, fmt.Errorf("%w: invalid query for domain %q", errInvalidDNSQuery, question.Name)

}

if strings.HasSuffix(sp[0], ".local") {
Expand Down
2 changes: 1 addition & 1 deletion apps/console/internal/app/graph/app.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/console/internal/app/graph/common-types.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/console/internal/app/graph/config.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/console/internal/app/graph/entity.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 12 additions & 4 deletions apps/console/internal/app/graph/environment.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion apps/console/internal/app/graph/externalapp.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 11 additions & 1 deletion apps/console/internal/app/graph/generated/federation.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading