vppn/node/peer.go
2024-12-16 20:51:30 +01:00

34 lines
472 B
Go

package node
import (
"net/netip"
"sync/atomic"
)
type peer struct {
IP byte
// TODO: Version
Addr *netip.AddrPort
// TODO: ViaIP
// TODO: EncPubKey
// TODO: SignPrivKey
}
type peerRepo [256]*atomic.Pointer[peer]
func newPeerRepo() peerRepo {
pr := peerRepo{}
for i := range pr {
pr[i] = &atomic.Pointer[peer]{}
}
return pr
}
func (pr peerRepo) Get(ip byte) *peer {
return pr[ip].Load()
}
func (pr peerRepo) Set(ip byte, p *peer) {
pr[ip].Store(p)
}