This commit is contained in:
黄思敏 2022-08-29 15:14:44 +08:00
parent 597cbf739b
commit 3e32746ed5
2 changed files with 25 additions and 24 deletions

43
main.go
View File

@ -26,31 +26,28 @@ var (
flagAddr = flag.String("addr", "", "addr set")
)
func startCard() {
cmdstr := fmt.Sprintf("ip addr add %s dev stun", *flagAddr)
log.Println(cmdstr)
cmd := strings.Split(cmdstr, " ")
err := exec.Command(cmd[0], cmd[1:]...).Run()
if err != nil {
log.Panic(err)
}
cmdstr = "ip link set dev stun up"
cmd = strings.Split(cmdstr, " ")
err = exec.Command(cmd[0], cmd[1:]...).Run()
if err != nil {
log.Panic(err)
}
}
func testmain() {
flag.Parse()
var a chan bool = make(chan bool)
go func() {
<-a
cmdstr := fmt.Sprintf("ip addr add %s dev stun", *flagAddr)
log.Println(cmdstr)
cmd := strings.Split(cmdstr, " ")
err := exec.Command(cmd[0], cmd[1:]...).Run()
if err != nil {
log.Panic(err)
}
cmdstr = "ip link set dev stun up"
cmd = strings.Split(cmdstr, " ")
err = exec.Command(cmd[0], cmd[1:]...).Run()
if err != nil {
log.Panic(err)
}
}()
config := water.Config{
DeviceType: water.TUN,
DeviceType: water.TAP,
}
config.Name = "stun"
@ -58,10 +55,12 @@ func testmain() {
if err != nil {
log.Fatal(err)
}
a <- true
var frame ethernet.Frame
startCard()
var frame ethernet.Frame
for {
frame.Resize(1500)
n, err := ifce.Read([]byte(frame))
if err != nil {

View File

@ -145,8 +145,9 @@ func NewNetCard() *NetCard {
config := water.Config{
DeviceType: water.TUN,
PlatformSpecificParams: water.PlatformSpecificParams{
Name: "stun",
Persist: true,
Name: "stun",
Persist: true,
MultiQueue: true,
},
}
@ -219,6 +220,7 @@ func (nc *NetCard) runRead() {
bytesMap[realAddr] = buffer
}
ifce.Write([]byte(rframe))
buffer.BytesArray = append(buffer.BytesArray, []byte(rframe))
}