1
0
mirror of https://github.com/fumiama/WireGold.git synced 2026-06-04 23:40:26 +08:00

parallel listen

This commit is contained in:
源文雨
2022-04-13 11:34:14 +08:00
parent 68b2e8cac5
commit 7d8be16fd3
9 changed files with 165 additions and 144 deletions

View File

@@ -90,7 +90,7 @@ func (s *Tunnel) handleWrite() {
logrus.Debugln("[tunnel] writing", len(b), "bytes...")
for len(b) > int(s.mtu) {
logrus.Infoln("[tunnel] split buffer")
_, err := s.l.Write(head.NewPacket(head.ProtoData, s.src, s.peerip, s.dest, b[:s.mtu]), false)
_, err := s.l.WriteAndPut(head.NewPacket(head.ProtoData, s.src, s.peerip, s.dest, b[:s.mtu]), false)
if err != nil {
logrus.Errorln("[tunnel] write err:", err)
return
@@ -98,7 +98,7 @@ func (s *Tunnel) handleWrite() {
logrus.Debugln("[tunnel] write succeeded")
b = b[s.mtu:]
}
_, err := s.l.Write(head.NewPacket(head.ProtoData, s.src, s.peerip, s.dest, b), false)
_, err := s.l.WriteAndPut(head.NewPacket(head.ProtoData, s.src, s.peerip, s.dest, b), false)
if err != nil {
logrus.Errorln("[tunnel] write err:", err)
break
@@ -116,5 +116,6 @@ func (s *Tunnel) handleRead() {
}
logrus.Debugln("[tunnel] read recv", p.Data)
s.out <- p.Data
p.Put()
}
}

View File

@@ -60,17 +60,6 @@ func TestTunnel(t *testing.T) {
t.Fatal("error: recv 4096 bytes data")
}
sendb = make([]byte, 131072)
rand.Read(sendb)
tunnme.Write(sendb)
buf = make([]byte, 131072)
for i := 0; i < 32; i++ {
tunnpeer.Read(buf[i*4096:])
}
if string(sendb) != string(buf) {
t.Fatal("error: recv 131072 bytes data")
}
tunnme.Stop()
tunnpeer.Stop()
}