新TAP测试(TODO 解析arp)

This commit is contained in:
黄思敏 2022-09-01 15:09:27 +08:00
parent f23608f496
commit 5ef9e2c42d

View File

@ -58,7 +58,11 @@ func (cli *RPCClient) CheckConnect() {
return return
} }
cli.conn = conn cli.Lock(func() bool {
cli.conn = conn
return true
})
go cli.run() go cli.run()
} }
@ -99,16 +103,22 @@ func (cli *RPCClient) run() {
buf := bytes.NewBuffer(nil) buf := bytes.NewBuffer(nil)
for { for {
select { select {
case <-cli.trigger: case <-cli.trigger:
case <-ticker.C: case <-ticker.C:
} }
cli.Lock(func() bool { if !cli.Lock(func() bool {
if len(cli.Frames) == 0 {
return false
}
Compress(buf, cli.Frames) Compress(buf, cli.Frames)
cli.Frames = cli.Frames[:0] cli.Frames = cli.Frames[:0]
return true return true
}) }) {
continue
}
// 发到对面的网卡 // 发到对面的网卡
err = stream.Send(&gen.RequestFrames{ err = stream.Send(&gen.RequestFrames{
@ -117,7 +127,6 @@ func (cli *RPCClient) run() {
if err != nil { if err != nil {
log.Panic(err) log.Panic(err)
} }
buf.Reset() buf.Reset()
} }
} }