summaryrefslogtreecommitdiffhomepage
path: root/table/destination.go
diff options
context:
space:
mode:
authorISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>2016-08-02 10:19:26 +0000
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2017-04-04 22:07:46 +0900
commit029852207a0318056edd984ae876f85eefd1df1f (patch)
treeab597fadc5fb8ae40750b3573c90021aa6a92817 /table/destination.go
parent94865943c66490dd8e3805e5826849c92ff6e36b (diff)
server: fix bug of wrongly set <nil> to PeerInfo.LocalAddress
config.TransportState.LocalAddress may have zone info with ipv6 address like "fe80::x%eth0". In this case, net.ParseIP() returns <nil>, which leads to set <nil> to PeerInfo.LocalAddress. Signed-off-by: ISHIDA Wataru <ishida.wataru@lab.ntt.co.jp>
Diffstat (limited to 'table/destination.go')
-rw-r--r--table/destination.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/table/destination.go b/table/destination.go
index dbcbddb1..50d779df 100644
--- a/table/destination.go
+++ b/table/destination.go
@@ -108,12 +108,14 @@ func (i *PeerInfo) String() string {
func NewPeerInfo(g *config.Global, p *config.Neighbor) *PeerInfo {
id := net.ParseIP(string(p.RouteReflector.Config.RouteReflectorClusterId)).To4()
+ // exclude zone info
+ naddr, _ := net.ResolveIPAddr("ip", p.Config.NeighborAddress)
return &PeerInfo{
AS: p.Config.PeerAs,
LocalAS: g.Config.As,
LocalID: net.ParseIP(g.Config.RouterId).To4(),
- Address: net.ParseIP(p.Config.NeighborAddress),
RouteReflectorClient: p.RouteReflector.Config.RouteReflectorClient,
+ Address: naddr.IP,
RouteReflectorClusterID: id,
MultihopTtl: p.EbgpMultihop.Config.MultihopTtl,
}