build index of old peer reports

This commit is contained in:
Callan Bryant 2020-03-06 00:02:31 +00:00
parent 3c8ba7e3bc
commit 151de953b5
No known key found for this signature in database
GPG Key ID: C31FA9DF3ACBFFAA

View File

@ -65,11 +65,18 @@ type DsnetReport struct {
func GenerateReport(dev *wgtypes.Device, conf *DsnetConfig, oldReport *DsnetReport) DsnetReport { func GenerateReport(dev *wgtypes.Device, conf *DsnetConfig, oldReport *DsnetReport) DsnetReport {
wgPeerIndex := make(map[wgtypes.Key]wgtypes.Peer) wgPeerIndex := make(map[wgtypes.Key]wgtypes.Peer)
peerReports := make([]PeerReport, len(conf.Peers)) peerReports := make([]PeerReport, len(conf.Peers))
oldPeerReportIndex := make(map[string]PeerReport)
for _, peer := range dev.Peers { for _, peer := range dev.Peers {
wgPeerIndex[peer.PublicKey] = peer wgPeerIndex[peer.PublicKey] = peer
} }
if oldReport != nil {
for _, report := range oldReport.Peers {
oldPeerReportIndex[report.Hostname] = report
}
}
for i, peer := range conf.Peers { for i, peer := range conf.Peers {
wgPeer, known := wgPeerIndex[peer.PublicKey.Key] wgPeer, known := wgPeerIndex[peer.PublicKey.Key]