From e333100499904a35126dd70eea58802ed9761435 Mon Sep 17 00:00:00 2001 From: sotech117 Date: Sun, 22 Oct 2023 09:32:06 -0400 Subject: fix multiple send bug --- cmd/vhost/main.go | 6 +++--- cmd/vrouter/main.go | 5 ++--- vhost | Bin 3100381 -> 3100397 bytes vrouter | Bin 3100445 -> 3100405 bytes 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/cmd/vhost/main.go b/cmd/vhost/main.go index f3bf6ab..549b1de 100644 --- a/cmd/vhost/main.go +++ b/cmd/vhost/main.go @@ -60,9 +60,9 @@ func main() { hop, err := ipstack.LongestPrefix(netip.MustParseAddr(ipAddr)) myAddr := hop.Interface.IpPrefix.Addr() for _, neighbor := range ipstack.GetNeighbors()[hop.Interface.Name] { - if neighbor.VipAddr == hop.VIP || - neighbor.VipAddr == netip.MustParseAddr(ipAddr) || - hop.Type == "S" { + // TODO: fix multiple send bug here on static route + if neighbor.VipAddr == netip.MustParseAddr(ipAddr) || + neighbor.VipAddr == hop.VIP && hop.Type == "S" { err = ipstack.SendIP(&myAddr, neighbor, ipstack.TEST_PROTOCOL, messageToSendBytes, ipAddr, nil) if err != nil { fmt.Println(err) diff --git a/cmd/vrouter/main.go b/cmd/vrouter/main.go index 59e2816..ec9a891 100644 --- a/cmd/vrouter/main.go +++ b/cmd/vrouter/main.go @@ -78,9 +78,8 @@ func main() { } myAddr := hop.Interface.IpPrefix.Addr() for _, neighbor := range ipstack.GetNeighbors()[hop.Interface.Name] { - if neighbor.VipAddr == hop.VIP || - neighbor.VipAddr == netip.MustParseAddr(ipAddr) || - hop.Type == "S" { + if neighbor.VipAddr == netip.MustParseAddr(ipAddr) || + neighbor.VipAddr == hop.VIP && hop.Type == "S" { err = ipstack.SendIP(&myAddr, neighbor, ipstack.TEST_PROTOCOL, messageToSendBytes, ipAddr, nil) if err != nil { fmt.Println(err) diff --git a/vhost b/vhost index 11a27ab..38a0147 100755 Binary files a/vhost and b/vhost differ diff --git a/vrouter b/vrouter index cf21489..e0aabbf 100755 Binary files a/vrouter and b/vrouter differ -- cgit v1.2.3-70-g09d2