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