Jason Lyu
1 year ago
committed by
GitHub
5 changed files with 57 additions and 3 deletions
@ -0,0 +1,14 @@ |
|||
//go:build unix
|
|||
|
|||
package engine |
|||
|
|||
import ( |
|||
"net/url" |
|||
|
|||
"github.com/xjasonlyu/tun2socks/v2/core/device" |
|||
"github.com/xjasonlyu/tun2socks/v2/core/device/tun" |
|||
) |
|||
|
|||
func parseTUN(u *url.URL, mtu uint32) (device.Device, error) { |
|||
return tun.Open(u.Host, mtu) |
|||
} |
@ -0,0 +1,34 @@ |
|||
package engine |
|||
|
|||
import ( |
|||
"net/url" |
|||
|
|||
"github.com/gorilla/schema" |
|||
"golang.org/x/sys/windows" |
|||
wun "golang.zx2c4.com/wireguard/tun" |
|||
|
|||
"github.com/xjasonlyu/tun2socks/v2/core/device" |
|||
"github.com/xjasonlyu/tun2socks/v2/core/device/tun" |
|||
"github.com/xjasonlyu/tun2socks/v2/internal/version" |
|||
) |
|||
|
|||
func init() { |
|||
wun.WintunTunnelType = version.Name |
|||
} |
|||
|
|||
func parseTUN(u *url.URL, mtu uint32) (device.Device, error) { |
|||
opts := struct { |
|||
GUID string |
|||
}{} |
|||
if err := schema.NewDecoder().Decode(&opts, u.Query()); err != nil { |
|||
return nil, err |
|||
} |
|||
if opts.GUID != "" { |
|||
guid, err := windows.GUIDFromString(opts.GUID) |
|||
if err != nil { |
|||
return nil, err |
|||
} |
|||
wun.WintunStaticRequestedGUID = &guid |
|||
} |
|||
return tun.Open(u.Host, mtu) |
|||
} |
Loading…
Reference in new issue