diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/default.go | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/config/default.go b/config/default.go index 41bcbd40..f69c96aa 100644 --- a/config/default.go +++ b/config/default.go @@ -101,11 +101,18 @@ func isLocalLinkLocalAddress(ifindex int, addr net.IP) (bool, error) { return false, nil } -func SetDefaultNeighborConfigValues(n *Neighbor, asn uint32) error { - return setDefaultNeighborConfigValuesWithViper(nil, n, asn) +func SetDefaultNeighborConfigValues(n *Neighbor, g *Global) error { + return setDefaultNeighborConfigValuesWithViper(nil, n, g) } -func setDefaultNeighborConfigValuesWithViper(v *viper.Viper, n *Neighbor, asn uint32) error { +func setDefaultNeighborConfigValuesWithViper(v *viper.Viper, n *Neighbor, g *Global) error { + if n == nil { + return fmt.Errorf("neighbor config is nil") + } + if g == nil { + return fmt.Errorf("global config is nil") + } + if v == nil { // Determines this function is called against the same Neighbor struct, // and if already called, returns immediately. @@ -116,7 +123,7 @@ func setDefaultNeighborConfigValuesWithViper(v *viper.Viper, n *Neighbor, asn ui } if n.Config.LocalAs == 0 { - n.Config.LocalAs = asn + n.Config.LocalAs = g.Config.As } n.State.LocalAs = n.Config.LocalAs @@ -407,7 +414,7 @@ func setDefaultConfigValuesWithViper(v *viper.Viper, b *BgpConfigSet) error { if len(list) > idx { vv.Set("neighbor", list[idx]) } - if err := setDefaultNeighborConfigValuesWithViper(vv, &n, b.Global.Config.As); err != nil { + if err := setDefaultNeighborConfigValuesWithViper(vv, &n, &b.Global); err != nil { return err } b.Neighbors[idx] = n |