Feature: fdbased open fd with offset (#272)

This commit is contained in:
yusheng
2023-06-30 13:18:53 +08:00
committed by GitHub
parent 2b494a7517
commit 8309fddef3
5 changed files with 7 additions and 7 deletions

View File

@@ -21,7 +21,7 @@ type FD struct {
mtu uint32
}
func Open(name string, mtu uint32) (device.Device, error) {
func Open(name string, mtu uint32, offset int) (device.Device, error) {
fd, err := strconv.Atoi(name)
if err != nil {
return nil, fmt.Errorf("cannot open fd: %s", name)
@@ -29,7 +29,7 @@ func Open(name string, mtu uint32) (device.Device, error) {
if mtu == 0 {
mtu = defaultMTU
}
return open(fd, mtu)
return open(fd, mtu, offset)
}
func (f *FD) Type() string {

View File

@@ -6,6 +6,6 @@ import (
"github.com/xjasonlyu/tun2socks/v2/core/device"
)
func Open(name string, mtu uint32) (device.Device, error) {
func Open(name string, mtu uint32, offset int) (device.Device, error) {
return nil, errors.New("not supported")
}

View File

@@ -10,7 +10,7 @@ import (
"github.com/xjasonlyu/tun2socks/v2/core/device"
)
func open(fd int, mtu uint32) (device.Device, error) {
func open(fd int, mtu uint32, offset int) (device.Device, error) {
f := &FD{fd: fd, mtu: mtu}
ep, err := fdbased.New(&fdbased.Options{

View File

@@ -10,10 +10,10 @@ import (
"github.com/xjasonlyu/tun2socks/v2/core/device/iobased"
)
func open(fd int, mtu uint32) (device.Device, error) {
func open(fd int, mtu uint32, offset int) (device.Device, error) {
f := &FD{fd: fd, mtu: mtu}
ep, err := iobased.New(os.NewFile(uintptr(fd), f.Name()), mtu, 0)
ep, err := iobased.New(os.NewFile(uintptr(fd), f.Name()), mtu, offset)
if err != nil {
return nil, fmt.Errorf("create endpoint: %w", err)
}

View File

@@ -56,7 +56,7 @@ func parseDevice(s string, mtu uint32) (device.Device, error) {
switch driver {
case fdbased.Driver:
return fdbased.Open(name, mtu)
return fdbased.Open(name, mtu, 0)
case tun.Driver:
return tun.Open(name, mtu)
default: