diff --git a/netcard.go b/netcard.go index 6d4f77c..a91e1d5 100644 --- a/netcard.go +++ b/netcard.go @@ -15,6 +15,7 @@ import ( "sync/atomic" "time" + "github.com/klauspost/compress/zstd" "github.com/songgao/packets/ethernet" "github.com/songgao/water" "github.com/songgao/water/waterutil" @@ -97,14 +98,14 @@ func (cli *RPCClient) run() { } // zstd compress - // zenc, err := zstd.NewWriter(buf) - // if err != nil { - // log.Panic(err) - // } - // err = zenc.Flush() - // if err != nil { - // log.Println(err) - // } + zenc, err := zstd.NewWriter(buf) + if err != nil { + log.Panic(err) + } + err = zenc.Flush() + if err != nil { + log.Println(err) + } // 发到对面的网卡 err = stream.Send(&gen.Request{ @@ -249,18 +250,18 @@ func (nc *NetCard) runRead() { func (nc *NetCard) runWrite() { var ifce *water.Interface = nc.ifce - var err error + // var err error for wframe := range nc.FrameChan { log.Printf("get wframes bytes len: %d", len(wframe)) var buf = bytes.NewBuffer(wframe) - // zdec, err := zstd.NewReader(buf) - // if err != nil { - // log.Panic(err) - // } - // zdec.Close() + zdec, err := zstd.NewReader(buf) + if err != nil { + log.Panic(err) + } + zdec.Close() dec := gob.NewDecoder(buf) var bufs [][]byte @@ -271,12 +272,9 @@ func (nc *NetCard) runWrite() { for _, buf := range bufs { - var wbuf []byte - wbuf = append(wbuf, buf[0:8]...) - wbuf = append(wbuf, waterutil.IPv4Payload(buf)...) - log.Printf("get wframes decode len: %d, write buf: %d", len(buf), len(wbuf)) + log.Printf("get wframes decode len: %d, write buf: %d", len(buf), len(buf)) log.Printf("get decode frames decode source: %s dst: %s", waterutil.IPv4Source(buf), waterutil.IPv4Destination(buf)) - _, err := ifce.Write(wbuf) + _, err := ifce.Write(buf) if err != nil { log.Panic(err) }