mirror of
https://github.com/fumiama/WireGold.git
synced 2026-06-04 23:40:26 +08:00
parallel listen
This commit is contained in:
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user