Commit 8e914c87 authored by ginuerzh's avatar ginuerzh

tap: fix createTap

parent 124bc03e
...@@ -48,7 +48,7 @@ func createTun(cfg TunConfig) (conn net.Conn, ipNet *net.IPNet, err error) { ...@@ -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
} }
......
...@@ -49,8 +49,8 @@ func createTun(cfg TunConfig) (conn net.Conn, ipNet *net.IPNet, err error) { ...@@ -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) { ...@@ -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},
......
...@@ -49,7 +49,7 @@ func createTun(cfg TunConfig) (conn net.Conn, ipNet *net.IPNet, err error) { ...@@ -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) { ...@@ -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},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment