mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-29 04:55:31 +00:00
client/tailscale,cmd/{cli,get-authkey,k8s-operator}: set distinct User-Agents
This helps better distinguish what is generating activity to the Tailscale public API. Updates tailscale/corp#23838 Signed-off-by: Percy Wegmann <percy@tailscale.com>
This commit is contained in:
parent
33029d4486
commit
f9949cde8b
@ -51,6 +51,9 @@ type Client struct {
|
|||||||
// HTTPClient optionally specifies an alternate HTTP client to use.
|
// HTTPClient optionally specifies an alternate HTTP client to use.
|
||||||
// If nil, http.DefaultClient is used.
|
// If nil, http.DefaultClient is used.
|
||||||
HTTPClient *http.Client
|
HTTPClient *http.Client
|
||||||
|
|
||||||
|
// UserAgent optionally specifies an alternate User-Agent header
|
||||||
|
UserAgent string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) httpClient() *http.Client {
|
func (c *Client) httpClient() *http.Client {
|
||||||
@ -97,8 +100,9 @@ func (c *Client) setAuth(r *http.Request) {
|
|||||||
// and can be changed manually by the user.
|
// and can be changed manually by the user.
|
||||||
func NewClient(tailnet string, auth AuthMethod) *Client {
|
func NewClient(tailnet string, auth AuthMethod) *Client {
|
||||||
return &Client{
|
return &Client{
|
||||||
tailnet: tailnet,
|
tailnet: tailnet,
|
||||||
auth: auth,
|
auth: auth,
|
||||||
|
UserAgent: "tailscale-client-oss",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,17 +114,16 @@ func (c *Client) Do(req *http.Request) (*http.Response, error) {
|
|||||||
return nil, errors.New("use of Client without setting I_Acknowledge_This_API_Is_Unstable")
|
return nil, errors.New("use of Client without setting I_Acknowledge_This_API_Is_Unstable")
|
||||||
}
|
}
|
||||||
c.setAuth(req)
|
c.setAuth(req)
|
||||||
|
if c.UserAgent != "" {
|
||||||
|
req.Header.Set("User-Agent", c.UserAgent)
|
||||||
|
}
|
||||||
return c.httpClient().Do(req)
|
return c.httpClient().Do(req)
|
||||||
}
|
}
|
||||||
|
|
||||||
// sendRequest add the authentication key to the request and sends it. It
|
// sendRequest add the authentication key to the request and sends it. It
|
||||||
// receives the response and reads up to 10MB of it.
|
// receives the response and reads up to 10MB of it.
|
||||||
func (c *Client) sendRequest(req *http.Request) ([]byte, *http.Response, error) {
|
func (c *Client) sendRequest(req *http.Request) ([]byte, *http.Response, error) {
|
||||||
if !I_Acknowledge_This_API_Is_Unstable {
|
resp, err := c.Do(req)
|
||||||
return nil, nil, errors.New("use of Client without setting I_Acknowledge_This_API_Is_Unstable")
|
|
||||||
}
|
|
||||||
c.setAuth(req)
|
|
||||||
resp, err := c.httpClient().Do(req)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, resp, err
|
return nil, resp, err
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,7 @@ func main() {
|
|||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
tsClient := tailscale.NewClient("-", nil)
|
tsClient := tailscale.NewClient("-", nil)
|
||||||
|
tsClient.UserAgent = "tailscale-get-authkey"
|
||||||
tsClient.HTTPClient = credentials.Client(ctx)
|
tsClient.HTTPClient = credentials.Client(ctx)
|
||||||
tsClient.BaseURL = baseURL
|
tsClient.BaseURL = baseURL
|
||||||
|
|
||||||
|
@ -143,6 +143,7 @@ func initTSNet(zlog *zap.SugaredLogger) (*tsnet.Server, *tailscale.Client) {
|
|||||||
TokenURL: "https://login.tailscale.com/api/v2/oauth/token",
|
TokenURL: "https://login.tailscale.com/api/v2/oauth/token",
|
||||||
}
|
}
|
||||||
tsClient := tailscale.NewClient("-", nil)
|
tsClient := tailscale.NewClient("-", nil)
|
||||||
|
tsClient.UserAgent = "tailscale-k8s-operator"
|
||||||
tsClient.HTTPClient = credentials.Client(context.Background())
|
tsClient.HTTPClient = credentials.Client(context.Background())
|
||||||
|
|
||||||
s := &tsnet.Server{
|
s := &tsnet.Server{
|
||||||
|
@ -1152,6 +1152,7 @@ func resolveAuthKey(ctx context.Context, v, tags string) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tsClient := tailscale.NewClient("-", nil)
|
tsClient := tailscale.NewClient("-", nil)
|
||||||
|
tsClient.UserAgent = "tailscale-cli"
|
||||||
tsClient.HTTPClient = credentials.Client(ctx)
|
tsClient.HTTPClient = credentials.Client(ctx)
|
||||||
tsClient.BaseURL = baseURL
|
tsClient.BaseURL = baseURL
|
||||||
|
|
||||||
|
@ -903,6 +903,7 @@ func (s *Server) APIClient() (*tailscale.Client, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
c := tailscale.NewClient("-", nil)
|
c := tailscale.NewClient("-", nil)
|
||||||
|
c.UserAgent = "tailscale-tsnet"
|
||||||
c.HTTPClient = &http.Client{Transport: s.lb.KeyProvingNoiseRoundTripper()}
|
c.HTTPClient = &http.Client{Transport: s.lb.KeyProvingNoiseRoundTripper()}
|
||||||
return c, nil
|
return c, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user