mirror of
https://github.com/fumiama/WireGold.git
synced 2026-06-08 09:36:24 +08:00
fix recv non-ip packet
This commit is contained in:
1
go.mod
1
go.mod
@@ -9,6 +9,5 @@ require (
|
||||
github.com/fumiama/water v0.0.0-20211229155341-82646596a427
|
||||
github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1
|
||||
github.com/sirupsen/logrus v1.8.1
|
||||
golang.zx2c4.com/wintun v0.0.0-20211104114900-415007cec224 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
|
||||
)
|
||||
|
||||
30
go.sum
30
go.sum
@@ -10,36 +10,8 @@ github.com/fumiama/go-x25519 v1.0.0 h1:hiGg9EhseVmGCc8T1jECVkj8Keu/aJ1ZK05RM8Vua
|
||||
github.com/fumiama/go-x25519 v1.0.0/go.mod h1:8VOhfyGZzw4IUs4nCjQFqW9cA3V/QpSCtP3fo2dLNg4=
|
||||
github.com/fumiama/gofastTEA v0.0.6 h1:Yni3MXDbJVa/c4CecgdZDgCJK+fLdvGph+OBqY2mtiI=
|
||||
github.com/fumiama/gofastTEA v0.0.6/go.mod h1:+sBZ05nCA2skZkursHNvyr8kULlEetrYTM2y5kA4rQc=
|
||||
github.com/fumiama/water v0.0.0-20211229125942-5b6a70c00f4c h1:ww0Xu5oR+ItCOu/UG5oTZhxemEXac3RDW6dZHv+Hbkw=
|
||||
github.com/fumiama/water v0.0.0-20211229125942-5b6a70c00f4c/go.mod h1:n7jB3H3AVzelGQJA+9r06R4XlGF4P1SVtcpvyLw5p+k=
|
||||
github.com/fumiama/water v0.0.0-20211229134828-67285c9b6731 h1:V4+UIuj2gIG3HDU7lKOaC7JDu59Kr42trJ/pdhB0mj0=
|
||||
github.com/fumiama/water v0.0.0-20211229134828-67285c9b6731/go.mod h1:2TP+zWbGdQhV8LgKMkltYUX7q6KqGoRUHIPKrUmsgxQ=
|
||||
github.com/fumiama/water v0.0.0-20211229135330-90abaa32e415 h1:LipchbWUx40wYqE2eOOE/HU5t6atlphAYaOFTFDt6QA=
|
||||
github.com/fumiama/water v0.0.0-20211229135330-90abaa32e415/go.mod h1:2TP+zWbGdQhV8LgKMkltYUX7q6KqGoRUHIPKrUmsgxQ=
|
||||
github.com/fumiama/water v0.0.0-20211229140044-a18737bcce9e h1:4PUm9m0cT4caVf9oGF9DKrIzjyzCSP6CFuPVID/f2Z8=
|
||||
github.com/fumiama/water v0.0.0-20211229140044-a18737bcce9e/go.mod h1:2TP+zWbGdQhV8LgKMkltYUX7q6KqGoRUHIPKrUmsgxQ=
|
||||
github.com/fumiama/water v0.0.0-20211229140409-29e50756f779 h1:lyAFI9rSTdTDiIOYdCWbe21yAyUUiNoWD6SVV7Vv/ps=
|
||||
github.com/fumiama/water v0.0.0-20211229140409-29e50756f779/go.mod h1:2TP+zWbGdQhV8LgKMkltYUX7q6KqGoRUHIPKrUmsgxQ=
|
||||
github.com/fumiama/water v0.0.0-20211229143618-2e6a6e7c8734 h1:0HpMmtsfBphCjpDclBy/tprImRjXfBYtOLg2lif/jlk=
|
||||
github.com/fumiama/water v0.0.0-20211229143618-2e6a6e7c8734/go.mod h1:2TP+zWbGdQhV8LgKMkltYUX7q6KqGoRUHIPKrUmsgxQ=
|
||||
github.com/fumiama/water v0.0.0-20211229150150-f6779d7a5809 h1:aWzKgNIJBlUB75Xa1PoObKixPhQUMw8D23UDlIDyXjw=
|
||||
github.com/fumiama/water v0.0.0-20211229150150-f6779d7a5809/go.mod h1:2TP+zWbGdQhV8LgKMkltYUX7q6KqGoRUHIPKrUmsgxQ=
|
||||
github.com/fumiama/water v0.0.0-20211229151111-67ffd8a6cc33 h1:1s2DyitGTKCVhFvQrlfXLNS9JBKhyrzzj1lZVzs8Szk=
|
||||
github.com/fumiama/water v0.0.0-20211229151111-67ffd8a6cc33/go.mod h1:2TP+zWbGdQhV8LgKMkltYUX7q6KqGoRUHIPKrUmsgxQ=
|
||||
github.com/fumiama/water v0.0.0-20211229152420-ea1778e8a8fe h1:RHlAMWsIRaEhl6O6fkYZIy9NFX3SLCvNRf1zfgl62zE=
|
||||
github.com/fumiama/water v0.0.0-20211229152420-ea1778e8a8fe/go.mod h1:XiHGWg8Lgc6+ZENjj9+qQinTraD+FFoJM9uiOs94PR4=
|
||||
github.com/fumiama/water v0.0.0-20211229152936-c7837c176989 h1:ftaxOPIang127djF2u83QQqLV38yBeqJN/V6jDr29pY=
|
||||
github.com/fumiama/water v0.0.0-20211229152936-c7837c176989/go.mod h1:BBnNY9PwK+UUn4trAU+H0qsMEypm7+3Bj1bVFuJItlo=
|
||||
github.com/fumiama/water v0.0.0-20211229153125-4158c133a4d8 h1:nqcrKTt6+4AO+CXlyz/cqdANke8UOVSLZ50uoofcI0g=
|
||||
github.com/fumiama/water v0.0.0-20211229153125-4158c133a4d8/go.mod h1:BBnNY9PwK+UUn4trAU+H0qsMEypm7+3Bj1bVFuJItlo=
|
||||
github.com/fumiama/water v0.0.0-20211229153704-aca20df16f4f h1:iUInIzt++weOzl5Rx0qdzQuvDPWbBKn0kUzbLnsbo5I=
|
||||
github.com/fumiama/water v0.0.0-20211229153704-aca20df16f4f/go.mod h1:BBnNY9PwK+UUn4trAU+H0qsMEypm7+3Bj1bVFuJItlo=
|
||||
github.com/fumiama/water v0.0.0-20211229155016-ed08eb9b3569 h1:UBzWLI/pnCQDfIDvB/P6kmuipkS6WM0jKpP4ZpwzHAs=
|
||||
github.com/fumiama/water v0.0.0-20211229155016-ed08eb9b3569/go.mod h1:BBnNY9PwK+UUn4trAU+H0qsMEypm7+3Bj1bVFuJItlo=
|
||||
github.com/fumiama/water v0.0.0-20211229155341-82646596a427 h1:6T/Y1o2wrNzJKjhjOsCVkKJwIlU8jfUBfRYFYQ9r3Uc=
|
||||
github.com/fumiama/water v0.0.0-20211229155341-82646596a427/go.mod h1:BBnNY9PwK+UUn4trAU+H0qsMEypm7+3Bj1bVFuJItlo=
|
||||
github.com/fumiama/wintun v0.0.0-20211229152127-c33dd13d28a5 h1:pkMNtWnrMuqsy+o4y6ur0+lu8gw96I3If61k+9n0sK4=
|
||||
github.com/fumiama/wintun v0.0.0-20211229152127-c33dd13d28a5/go.mod h1:dPOG7Af/ArO62RgBz2JJTNFByBn/IXWLo/1kZKcLSe8=
|
||||
github.com/fumiama/wintun v0.0.0-20211229152851-8bc97c8034c0 h1:WfrSFlIlCAtg6Rt2IGna0HhJYSDE45YVHiYqO4wwsEw=
|
||||
github.com/fumiama/wintun v0.0.0-20211229152851-8bc97c8034c0/go.mod h1:dPOG7Af/ArO62RgBz2JJTNFByBn/IXWLo/1kZKcLSe8=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
@@ -104,8 +76,6 @@ golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.zx2c4.com/wintun v0.0.0-20211104114900-415007cec224 h1:Ug9qvr1myri/zFN6xL17LSCBGFDnphBBhzmILHsM5TY=
|
||||
golang.zx2c4.com/wintun v0.0.0-20211104114900-415007cec224/go.mod h1:deeaetjYA+DHMHg+sMSMI58GrEteJUUzzw7en6TJQcI=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||
|
||||
13
lower/nic.go
13
lower/nic.go
@@ -3,6 +3,7 @@ package lower
|
||||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"strconv"
|
||||
|
||||
"github.com/fumiama/water"
|
||||
"github.com/fumiama/water/waterutil"
|
||||
@@ -45,16 +46,12 @@ func (nc *NIC) Start(m *link.Me) {
|
||||
go func() { // 接收到 NIC
|
||||
for nc.hasstart {
|
||||
packet := m.Read()
|
||||
logrus.Infoln("[lower] recv", len(packet.Data), "bytes packet")
|
||||
if !waterutil.IsIPv4(packet.Data) {
|
||||
logrus.Warnln("[lower] recv recv non-ipv4 packet")
|
||||
continue
|
||||
}
|
||||
_, err := nc.ifce.Write(packet.Data)
|
||||
if err != nil {
|
||||
logrus.Errorln("[lower] recv write to nic err:", err)
|
||||
break
|
||||
}
|
||||
logrus.Infoln("[lower] recv write", len(packet.Data), "bytes packet to nic")
|
||||
}
|
||||
}()
|
||||
buf := make([]byte, 4096)
|
||||
@@ -70,16 +67,16 @@ func (nc *NIC) Start(m *link.Me) {
|
||||
}
|
||||
packet = packet[:n]
|
||||
if !waterutil.IsIPv4(packet) {
|
||||
logrus.Warnln("[lower] send recv non-ipv4 packet")
|
||||
logrus.Warnln("[lower] skip to send", len(packet), "bytes non-ipv4 packet")
|
||||
continue
|
||||
}
|
||||
logrus.Infoln("[lower] send", n, "bytes packet")
|
||||
dst := waterutil.IPv4Destination(packet)
|
||||
srcport := waterutil.IPv4SourcePort(packet)
|
||||
dstport := waterutil.IPv4DestinationPort(packet)
|
||||
logrus.Infoln("[lower] sending", n, "bytes packet from :"+strconv.Itoa(int(srcport)), "to", dst.String()+":"+strconv.Itoa(int(dstport)))
|
||||
lnk, err := m.Connect(dst.String())
|
||||
if err != nil {
|
||||
logrus.Errorln("[lower] connect to peer err:", err)
|
||||
logrus.Warnln("[lower] connect to peer", dst.String(), "err:", err)
|
||||
continue
|
||||
}
|
||||
lnk.Write(head.NewPacket(head.ProtoData, srcport, dstport, packet))
|
||||
|
||||
Reference in New Issue
Block a user