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