From 5ceb532b495ccd7faec0ad5932412c937e48a754 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Sat, 14 May 2022 00:19:16 +0800 Subject: [PATCH] fix: mtu --- gold/link/peer.go | 2 +- gold/link/send.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gold/link/peer.go b/gold/link/peer.go index 6c1a319..a7aecca 100644 --- a/gold/link/peer.go +++ b/gold/link/peer.go @@ -28,7 +28,7 @@ func (m *Me) AddPeer(cfg *PeerConfig) (l *Link) { if ok { return } - if cfg.MTU == 0 || cfg.MTU == 65535 || (m.mtu != 0 && cfg.MTU > m.mtu) { + if cfg.MTU == 0 || cfg.MTU == 65535 || cfg.MTU%8 != 0 || (m.mtu != 0 && cfg.MTU > m.mtu) { panic("invalid mtu for peer " + cfg.PeerIP) } l = &Link{ diff --git a/gold/link/send.go b/gold/link/send.go index 92637ac..8c76305 100644 --- a/gold/link/send.go +++ b/gold/link/send.go @@ -33,7 +33,7 @@ func (l *Link) WriteAndPut(p *head.Packet, istransfer bool) (n int, err error) { for ; int(totl)-i > int(l.mtu); i += int(l.mtu) { logrus.Debugln("[link] split frag", i, ":", i+int(l.mtu), ", remain:", int(totl)-i-int(l.mtu)) packet.Data = data[:int(l.mtu)] - cnt, err := l.write(packet, teatype, totl, uint16(uint(i)>>3), istransfer, true) + cnt, err := l.write(packet, teatype, totl, uint16(i>>3), istransfer, true) n += cnt if err != nil { return n, err @@ -43,7 +43,7 @@ func (l *Link) WriteAndPut(p *head.Packet, istransfer bool) (n int, err error) { } packet.Put() p.Data = data - cnt, err := l.write(p, teatype, totl, uint16(uint(i)>>3), istransfer, false) + cnt, err := l.write(p, teatype, totl, uint16(i>>3), istransfer, false) p.Put() n += cnt return n, err