Skip to content

Commit

Permalink
Merge pull request #8 from uhthomas/simplify-util-functions
Browse files Browse the repository at this point in the history
chore: simplify util functions
  • Loading branch information
crutonjohn authored Jun 12, 2024
2 parents 128e915 + b776020 commit a40a91c
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 26 deletions.
14 changes: 7 additions & 7 deletions internal/opnsense-unbound/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,15 +141,15 @@ func (c *httpClient) CreateHostOverride(endpoint *endpoint.Endpoint) (*DNSRecord
return lookup, nil
}

SplittedHost := UnboundFQDNSplitter(endpoint.DNSName)
splitHost := SplitUnboundFQDN(endpoint.DNSName)

jsonBody, err := json.Marshal(unboundAddHostOverride{
Host: DNSRecord{
Enabled: "1",
Rr: endpoint.RecordType,
Server: endpoint.Targets[0],
Hostname: SplittedHost[0],
Domain: SplittedHost[1],
Hostname: splitHost[0],
Domain: splitHost[1],
}})
if err != nil {
return nil, err
Expand Down Expand Up @@ -208,16 +208,16 @@ func (c *httpClient) lookupHostOverrideIdentifier(key, recordType string) (*DNSR
return nil, err
}
log.Debug("lookup: Splitting FQDN")
SplittedHost := UnboundFQDNSplitter(key)
splitHost := SplitUnboundFQDN(key)

for _, r := range records {
log.Debugf("lookup: Checking record: Host=%s, Domain=%s, Type=%s, UUID=%s", r.Hostname, r.Domain, UnboundTypeEmbellisher(r.Rr), r.Uuid)
if r.Hostname == SplittedHost[0] && r.Domain == SplittedHost[1] && UnboundTypeEmbellisher(r.Rr) == UnboundTypeEmbellisher(recordType) {
log.Debugf("lookup: Checking record: Host=%s, Domain=%s, Type=%s, UUID=%s", r.Hostname, r.Domain, EmbellishUnboundType(r.Rr), r.Uuid)
if r.Hostname == splitHost[0] && r.Domain == splitHost[1] && EmbellishUnboundType(r.Rr) == EmbellishUnboundType(recordType) {
log.Debugf("lookup: UUID Match Found: %s", r.Uuid)
return &r, nil
}
}
log.Debugf("lookup: No matching record found for Host=%s, Domain=%s, Type=%s", SplittedHost[0], SplittedHost[1], UnboundTypeEmbellisher(recordType))
log.Debugf("lookup: No matching record found for Host=%s, Domain=%s, Type=%s", splitHost[0], splitHost[1], EmbellishUnboundType(recordType))
return nil, nil
}

Expand Down
4 changes: 2 additions & 2 deletions internal/opnsense-unbound/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ func (p *Provider) Records(ctx context.Context) ([]*endpoint.Endpoint, error) {
var endpoints []*endpoint.Endpoint
for _, record := range records {
ep := &endpoint.Endpoint{
DNSName: UnboundFQDNCombiner(record.Hostname, record.Domain),
RecordType: UnboundTypePrune(record.Rr),
DNSName: JoinUnboundFQDN(record.Hostname, record.Domain),
RecordType: PruneUnboundType(record.Rr),
Targets: endpoint.NewTargets(record.Server),
}

Expand Down
32 changes: 15 additions & 17 deletions internal/opnsense-unbound/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,29 @@ import "strings"
// UnboundFQDNSplitter splits a DNSName into two parts,
// [0] Being the top level hostname
// [1] Being the subdomain/domain
func UnboundFQDNSplitter(hostname string) []string {
unboundSplittedHost := strings.SplitN(hostname, ".", 2)

return unboundSplittedHost
//
// TODO: really this should return (hostname, domain string)
func SplitUnboundFQDN(hostname string) []string {
return strings.SplitN(hostname, ".", 2)
}

func UnboundFQDNCombiner(hostname string, domain string) string {
unboundCombinededHost := hostname + "." + domain

return unboundCombinededHost
func JoinUnboundFQDN(hostname string, domain string) string {
return strings.Join([]string{hostname, domain}, ".")
}

func UnboundTypePrune(unboundType string) string {
unboundUncrufted := strings.SplitN(unboundType, " ", 2)[0]

return unboundUncrufted
func PruneUnboundType(unboundType string) string {
if i := strings.IndexByte(unboundType, ' '); i != -1 {
return unboundType[:i]
}
return unboundType
}

func UnboundTypeEmbellisher(unboundType string) string {
if unboundType == "A" {
func EmbellishUnboundType(unboundType string) string {
switch unboundType {
case "A":
return unboundType + " (IPv4 address)"
}
if unboundType == "AAAA" {
case "AAAA":
return unboundType + " (IPv6 address)"
}

return unboundType
}

0 comments on commit a40a91c

Please sign in to comment.