Minor fixes

This commit is contained in:
世界 2025-07-10 21:41:46 +08:00
parent 4c81c8a62a
commit 7812930a48
No known key found for this signature in database
GPG key ID: CD109927C34A63C4
5 changed files with 10 additions and 7 deletions

View file

@ -77,7 +77,7 @@ func (m *Mixed) tunLoop() {
return
}
}
if darwinTUN, isDarwinTUN := m.tun.(DarwinTUN); isDarwinTUN {
if darwinTUN, isDarwinTUN := m.tun.(DarwinTUN); isDarwinTUN && m.mtu < 49152 {
m.batchLoopDarwin(darwinTUN)
return
}

View file

@ -174,7 +174,7 @@ func (s *System) tunLoop() {
return
}
}
if darwinTUN, isDarwinTUN := s.tun.(DarwinTUN); isDarwinTUN {
if darwinTUN, isDarwinTUN := s.tun.(DarwinTUN); isDarwinTUN && s.mtu < 49152 {
s.batchLoopDarwin(darwinTUN)
return
}

View file

@ -386,6 +386,7 @@ func (t *NativeTun) BatchRead() ([]*buf.Buffer, error) {
func (t *NativeTun) BatchWrite(buffers []*buf.Buffer) error {
for i, buffer := range buffers {
iovecs := t.iovecsOutput[i].nextIovecsOutput(buffer)
t.msgHdrsOutput[i] = rawfile.MsgHdrX{}
t.msgHdrsOutput[i].Msg.Iov = &iovecs[0]
t.msgHdrsOutput[i].Msg.Iovlen = 2
}

View file

@ -20,9 +20,7 @@ func (t *NativeTun) NewEndpoint() (stack.LinkEndpoint, stack.NICOptions, error)
if err != nil {
return nil, stack.NICOptions{}, err
}
var nicOptions stack.NICOptions
if t.options.MTU < 49152 {
nicOptions.QDisc = fifo.New(ep, 1, 1000)
}
return ep, nicOptions, nil
return ep, stack.NICOptions{
QDisc: fifo.New(ep, 1, 1000),
}, nil
}

View file

@ -7,6 +7,10 @@ import (
"github.com/sagernet/gvisor/pkg/tcpip/stack"
)
func init() {
fdbased.BufConfig = []int{65535}
}
var _ GVisorTun = (*NativeTun)(nil)
func (t *NativeTun) NewEndpoint() (stack.LinkEndpoint, stack.NICOptions, error) {