fix crash when tun app has no socket option

This commit is contained in:
Shelikhoo 2023-10-23 01:39:19 +01:00
parent 263fbf5765
commit e87af12bf8
No known key found for this signature in database
GPG Key ID: C4D5E79D22B25316
2 changed files with 11 additions and 7 deletions

View File

@ -55,8 +55,10 @@ func SetTCPHandler(ctx context.Context, dispatcher routing.Dispatcher, policyMan
}
defer r.Complete(false)
if err := applySocketOptions(s, linkedEndpoint, config.SocketSettings); err != nil {
newError("failed to apply socket options: ", err).WriteToLog(session.ExportIDToError(ctx))
if config.SocketSettings != nil {
if err := applySocketOptions(s, linkedEndpoint, config.SocketSettings); err != nil {
newError("failed to apply socket options: ", err).WriteToLog(session.ExportIDToError(ctx))
}
}
conn := &tcpConn{

View File

@ -39,12 +39,14 @@ func (t *TUN) CreateStack(linkedEndpoint stack.LinkEndpoint) (*stack.Stack, erro
SetSpoofing(nicID, t.config.EnableSpoofing),
}
if size := t.config.SocketSettings.TxBufSize; size != 0 {
opts = append(opts, SetTCPSendBufferSize(int(size)))
}
if t.config.SocketSettings != nil {
if size := t.config.SocketSettings.TxBufSize; size != 0 {
opts = append(opts, SetTCPSendBufferSize(int(size)))
}
if size := t.config.SocketSettings.RxBufSize; size != 0 {
opts = append(opts, SetTCPReceiveBufferSize(int(size)))
if size := t.config.SocketSettings.RxBufSize; size != 0 {
opts = append(opts, SetTCPReceiveBufferSize(int(size)))
}
}
for _, opt := range opts {