mirror of
https://github.com/kubenetworks/kubevpn.git
synced 2025-09-27 03:36:09 +08:00

* refactor: remove options netstack * refactor: remove options netstack * refactor: forward chain use gvisor tcp * refactor: docs * refactor: remove forwarder options * refactor: optimize code * refactor: remove node type "tcp://" * hotfix: packet read from tun needs to handle by gvisor * hotfix: fix charts * refactor: remove parameter engine
36 lines
674 B
Go
36 lines
674 B
Go
package core
|
|
|
|
import (
|
|
"context"
|
|
"net"
|
|
|
|
"github.com/wencaiwulue/kubevpn/v2/pkg/config"
|
|
)
|
|
|
|
type UDPOverTCPConnector struct {
|
|
}
|
|
|
|
func NewUDPOverTCPConnector() Connector {
|
|
return &UDPOverTCPConnector{}
|
|
}
|
|
|
|
func (c *UDPOverTCPConnector) ConnectContext(ctx context.Context, conn net.Conn) (net.Conn, error) {
|
|
//defer conn.SetDeadline(time.Time{})
|
|
switch con := conn.(type) {
|
|
case *net.TCPConn:
|
|
err := con.SetNoDelay(true)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
err = con.SetKeepAlive(true)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
err = con.SetKeepAlivePeriod(config.KeepAliveTime)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
return NewUDPConnOverTCP(ctx, conn)
|
|
}
|