// Copyright (c) Tailscale Inc & contributors // SPDX-License-Identifier: BSD-3-Clause package derphttp import ( "context" "net" "net/url" "tailscale.com/tailcfg" ) func SetTestHookWatchLookConnectResult(f func(connectError error, wasSelfConnect bool) (keepRunning bool)) { testHookWatchLookConnectResult = f } func (c *Client) DialNodeUsingProxy(ctx context.Context, n *tailcfg.DERPNode, proxyURL *url.URL) (net.Conn, error) { return c.dialNodeUsingProxy(ctx, n, proxyURL) } // breakConnection breaks the connection, which should trigger a reconnect. func (c *Client) BreakConnection(brokenClient *Client) { c.mu.Lock() defer c.mu.Unlock() if c.client != brokenClient.client { return } if c.netConn != nil { c.netConn.Close() c.netConn = nil } c.client = nil } var RetryInterval = &retryInterval