mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-11-25 21:51:38 +00:00
Fix starting TUN read/write
This commit is contained in:
parent
4c115de633
commit
35173e2388
@ -122,12 +122,6 @@ func (c *Core) Start(nc *config.NodeConfig, log *log.Logger) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
ip := net.IP(c.router.addr[:]).String()
|
|
||||||
if err := c.tun.setup(nc.IfName, nc.IfTAPMode, fmt.Sprintf("%s/8", ip), nc.IfMTU); err != nil {
|
|
||||||
c.log.Println("Failed to start TUN/TAP")
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := c.admin.start(); err != nil {
|
if err := c.admin.start(); err != nil {
|
||||||
c.log.Println("Failed to start admin socket")
|
c.log.Println("Failed to start admin socket")
|
||||||
return err
|
return err
|
||||||
@ -138,6 +132,12 @@ func (c *Core) Start(nc *config.NodeConfig, log *log.Logger) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ip := net.IP(c.router.addr[:]).String()
|
||||||
|
if err := c.tun.start(nc.IfName, nc.IfTAPMode, fmt.Sprintf("%s/8", ip), nc.IfMTU); err != nil {
|
||||||
|
c.log.Println("Failed to start TUN/TAP")
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
c.log.Println("Startup complete")
|
c.log.Println("Startup complete")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,15 @@ func (tun *tunDevice) init(core *Core) {
|
|||||||
tun.icmpv6.init(tun)
|
tun.icmpv6.init(tun)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (tun *tunDevice) start(ifname string, iftapmode bool, addr string, mtu int) error {
|
||||||
|
if err := tun.setup(ifname, iftapmode, addr, mtu); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
go func() { panic(tun.read()) }()
|
||||||
|
go func() { panic(tun.write()) }()
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (tun *tunDevice) write() error {
|
func (tun *tunDevice) write() error {
|
||||||
for {
|
for {
|
||||||
data := <-tun.recv
|
data := <-tun.recv
|
||||||
|
Loading…
Reference in New Issue
Block a user