From f85e0e4c412e7e8142129ca77d207cb2b8e8a79a Mon Sep 17 00:00:00 2001 From: takt <oliver.herms@exaring.de> Date: Fri, 11 Oct 2019 19:41:19 +0200 Subject: [PATCH] Add prefix dedup function that also dedups IPs (#231) --- net/prefix.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/net/prefix.go b/net/prefix.go index 95b7f79d..2f3580f9 100644 --- a/net/prefix.go +++ b/net/prefix.go @@ -22,6 +22,12 @@ func (p *Prefix) Dedup() *Prefix { return pfxc.get(p) } +// DedupWithIP gets a copy of Prefix from the cache and dedups the IP part +func (p *Prefix) DedupWithIP() *Prefix { + p.addr = p.addr.Dedup() + return pfxc.get(p) +} + // NewPrefixFromProtoPrefix creates a Prefix from a proto Prefix func NewPrefixFromProtoPrefix(pfx api.Prefix) *Prefix { return &Prefix{ @@ -54,10 +60,10 @@ func PrefixFromString(s string) (*Prefix, error) { } // ToProto converts prefix to proto prefix -func (pfx *Prefix) ToProto() *api.Prefix { +func (p *Prefix) ToProto() *api.Prefix { return &api.Prefix{ - Address: pfx.addr.ToProto(), - Pfxlen: uint32(pfx.pfxlen), + Address: p.addr.ToProto(), + Pfxlen: uint32(p.pfxlen), } } -- GitLab