mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
derp: give trusted mesh peers longer write timeouts
Updates tailscale/corp#24014 Change-Id: I700872be48ab337dce8e11cabef7f82b97f0422a Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
parent
c0a9895748
commit
18fc093c0d
@ -74,6 +74,7 @@ func init() {
|
|||||||
const (
|
const (
|
||||||
perClientSendQueueDepth = 32 // packets buffered for sending
|
perClientSendQueueDepth = 32 // packets buffered for sending
|
||||||
writeTimeout = 2 * time.Second
|
writeTimeout = 2 * time.Second
|
||||||
|
privilegedWriteTimeout = 30 * time.Second // for clients with the mesh key
|
||||||
)
|
)
|
||||||
|
|
||||||
// dupPolicy is a temporary (2021-08-30) mechanism to change the policy
|
// dupPolicy is a temporary (2021-08-30) mechanism to change the policy
|
||||||
@ -1721,7 +1722,19 @@ func (c *sclient) sendLoop(ctx context.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *sclient) setWriteDeadline() {
|
func (c *sclient) setWriteDeadline() {
|
||||||
c.nc.SetWriteDeadline(time.Now().Add(writeTimeout))
|
d := writeTimeout
|
||||||
|
if c.canMesh {
|
||||||
|
// Trusted peers get more tolerance.
|
||||||
|
//
|
||||||
|
// The "canMesh" is a bit of a misnomer; mesh peers typically run over a
|
||||||
|
// different interface for a per-region private VPC and are not
|
||||||
|
// throttled. But monitoring software elsewhere over the internet also
|
||||||
|
// use the private mesh key to subscribe to connect/disconnect events
|
||||||
|
// and might hit throttling and need more time to get the initial dump
|
||||||
|
// of connected peers.
|
||||||
|
d = privilegedWriteTimeout
|
||||||
|
}
|
||||||
|
c.nc.SetWriteDeadline(time.Now().Add(d))
|
||||||
}
|
}
|
||||||
|
|
||||||
// sendKeepAlive sends a keep-alive frame, without flushing.
|
// sendKeepAlive sends a keep-alive frame, without flushing.
|
||||||
|
Loading…
Reference in New Issue
Block a user