tap: fix createTap

This commit is contained in:
ginuerzh 2020-01-03 11:09:41 +08:00
parent 124bc03ea4
commit 8e914c87e0
3 changed files with 14 additions and 4 deletions

View File

@ -48,7 +48,7 @@ func createTun(cfg TunConfig) (conn net.Conn, ipNet *net.IPNet, err error) {
return return
} }
func createTap(cfg TapConfig) (conn net.Conn, ipNet *net.IPNet, err error) { func createTap(cfg TapConfig) (conn net.Conn, itf *net.Interface, err error) {
err = errors.New("tap is not supported on darwin") err = errors.New("tap is not supported on darwin")
return return
} }

View File

@ -49,8 +49,8 @@ func createTun(cfg TunConfig) (conn net.Conn, ipNet *net.IPNet, err error) {
return return
} }
func createTap(cfg TapConfig) (conn net.Conn, ipNet *net.IPNet, err error) { func createTap(cfg TapConfig) (conn net.Conn, itf *net.Interface, err error) {
ip, ipNet, err := net.ParseCIDR(cfg.Addr) ip, _, err := net.ParseCIDR(cfg.Addr)
if err != nil { if err != nil {
return return
} }
@ -79,6 +79,11 @@ func createTap(cfg TapConfig) (conn net.Conn, ipNet *net.IPNet, err error) {
return return
} }
itf, err = net.InterfaceByName(ifce.Name())
if err != nil {
return
}
conn = &tunTapConn{ conn = &tunTapConn{
ifce: ifce, ifce: ifce,
addr: &net.IPAddr{IP: ip}, addr: &net.IPAddr{IP: ip},

View File

@ -49,7 +49,7 @@ func createTun(cfg TunConfig) (conn net.Conn, ipNet *net.IPNet, err error) {
return return
} }
func createTap(cfg TapConfig) (conn net.Conn, ipNet *net.IPNet, err error) { func createTap(cfg TapConfig) (conn net.Conn, itf *net.Interface, err error) {
ip, ipNet, err := net.ParseCIDR(cfg.Addr) ip, ipNet, err := net.ParseCIDR(cfg.Addr)
if err != nil { if err != nil {
return return
@ -81,6 +81,11 @@ func createTap(cfg TapConfig) (conn net.Conn, ipNet *net.IPNet, err error) {
return return
} }
itf, err = net.InterfaceByName(ifce.Name())
if err != nil {
return
}
conn = &tunTapConn{ conn = &tunTapConn{
ifce: ifce, ifce: ifce,
addr: &net.IPAddr{IP: ip}, addr: &net.IPAddr{IP: ip},