1
0
mirror of https://github.com/fumiama/WireGold.git synced 2026-06-22 11:30:31 +08:00

fix 分片

This commit is contained in:
fumiama
2021-12-31 00:51:12 +08:00
parent 652d1ec3d2
commit 28c56adbe4
5 changed files with 43 additions and 30 deletions

View File

@@ -75,20 +75,20 @@ func (l *Link) Read() *head.Packet {
// Write 向 peer 发包
func (l *Link) Write(p *head.Packet, istransfer bool) (n int, err error) {
if len(p.Data) <= int(l.me.mtu) {
if len(p.Data) <= 32768 {
return l.write(p, istransfer)
}
data := p.Data
offset := 0
for len(data) > int(l.me.mtu) {
for len(data) > 32768 {
packet := *p
packet.Data = data[offset*int(l.me.mtu) : (offset+1)*int(l.me.mtu)]
packet.Data = data[offset*32768 : (offset+1)*32768]
i, err := l.write(&packet, istransfer)
n += i
if err != nil {
return n, err
}
data = data[(offset+1)*int(l.me.mtu):]
data = data[(offset+1)*32768:]
}
return n, nil
}

View File

@@ -32,9 +32,6 @@ type Me struct {
pipe chan *head.Packet
// 本机路由表
router *Router
// 虚拟链路网卡 MTU
// 默认 30000
mtu uint16
}
// NewMe 设置本机参数
@@ -65,10 +62,5 @@ func NewMe(privateKey *[32]byte, myipwithmask string, myEndpoint string, nopipei
}
m.router.SetDefault(nil)
m.loop = m.AddPeer(m.me.String(), nil, "127.0.0.1:56789", []string{myipwithmask}, 0, false, nopipeinlink)
m.mtu = 30000
return
}
func (m *Me) SetMTU(mtu uint16) {
m.mtu = mtu
}