diff --git a/net/prefix.go b/net/prefix.go index 95b7f79d5e67d2d1721da4b94a1c807d98c378cd..2f3580f91500ecd45adc958229d2d36d0a3b22c4 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), } }