Skip to content

Commit

Permalink
feat(client): disable TCP Keep-Alive to save battery (#2000)
Browse files Browse the repository at this point in the history
  • Loading branch information
fortuna authored Apr 25, 2024
1 parent a18928e commit cbec5b7
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion client/src/tun2socks/outline/shadowsocks/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,9 @@ func newShadowsocksClient(host string, port int, cipherName, password string, pr
return nil, fmt.Errorf("failed to create Shadowsocks cipher: %w", err)
}

streamDialer, err := shadowsocks.NewStreamDialer(&transport.TCPEndpoint{Address: proxyAddress}, cryptoKey)
// We disable Keep-Alive as per https://datatracker.ietf.org/doc/html/rfc1122#page-101, which states that it should only be
// enabled in server applications. This prevents the device from unnecessarily waking up to send keep alives.
streamDialer, err := shadowsocks.NewStreamDialer(&transport.TCPEndpoint{Address: proxyAddress, Dialer: net.Dialer{KeepAlive: -1}}, cryptoKey)
if err != nil {
return nil, fmt.Errorf("failed to create StreamDialer: %w", err)
}
Expand Down

0 comments on commit cbec5b7

Please sign in to comment.