Skip to content
This repository was archived by the owner on Jul 7, 2024. It is now read-only.

Commit 01b90ef

Browse files
committed
hokuto: fix name of network-level SRV records
1 parent cb6dc07 commit 01b90ef

File tree

1 file changed

+26
-16
lines changed

1 file changed

+26
-16
lines changed

hokuto/dns.go

+26-16
Original file line numberDiff line numberDiff line change
@@ -140,45 +140,55 @@ func handleInternalSRV(m *dns.Msg, q dns.Question, suffix string) (rcode int) {
140140
util.S.Debugf("handleQuery nx net %s", cnn)
141141
return dns.RcodeNameError
142142
}
143-
var srvs []central.SRV
143+
type srvPeerPair struct {
144+
PeerName string
145+
SRV central.SRV
146+
}
147+
var spps []srvPeerPair
144148
if pn == "" {
145-
srvs = make([]central.SRV, 0)
146-
for _, peer := range cn.Peers {
147-
srvs = append(srvs, peer.SRVs...)
149+
spps = make([]srvPeerPair, 0)
150+
for pn, peer := range cn.Peers {
151+
for _, srv := range peer.SRVs {
152+
spps = append(spps, srvPeerPair{
153+
PeerName: pn,
154+
SRV: srv,
155+
})
156+
}
148157
}
149158
} else {
150159
peer := cn.Peers[pn]
151160
if peer == nil {
152161
util.S.Debugf("handleQuery nx net %s peer %s", cnn, pn)
153162
return dns.RcodeNameError
154163
}
155-
srvs = peer.SRVs
164+
spps = make([]srvPeerPair, 0)
165+
for _, srv := range peer.SRVs {
166+
spps = append(spps, srvPeerPair{
167+
PeerName: pn,
168+
SRV: srv,
169+
})
170+
}
156171
}
157-
util.S.Infof("handleQuery debug: parts: %#v srvs: %#v", parts, srvs)
158-
for _, srv := range srvs {
172+
util.S.Infof("handleQuery debug: parts: %#v srvs: %#v", parts, spps)
173+
for _, spp := range spps {
174+
srv := spp.SRV
159175
if srv.Service != service || srv.Protocol != protocol {
160176
continue
161177
}
162-
var pnPart string
163-
if pn == "" {
164-
pnPart = ""
165-
} else {
166-
pnPart = pn + "."
167-
}
168178
rr, err := dns.NewRR(fmt.Sprintf(
169-
"%s SRV %d %d %d %s%s%s",
179+
"%s SRV %d %d %d %s.%s%s",
170180
q.Name,
171181
srv.Priority,
172182
srv.Weight,
173183
srv.Port,
174-
pnPart,
184+
pn,
175185
cnn,
176186
suffix,
177187
))
178188
if err == nil {
179189
m.Answer = append(m.Answer, rr)
180190
} else {
181-
util.S.Errorf("handleQuery debug: parts: %#v srvs: %#v error: %s", parts, srvs, err)
191+
util.S.Errorf("handleQuery debug: parts: %#v srvs: %#v error: %s", parts, spps, err)
182192
}
183193
}
184194
return dns.RcodeSuccess

0 commit comments

Comments
 (0)