Skip to content

Commit ef178b1

Browse files
committed
Set a consistent user-agent
Signed-off-by: David Gageot <david.gageot@docker.com>
1 parent c548af0 commit ef178b1

1 file changed

Lines changed: 24 additions & 2 deletions

File tree

pkg/httpclient/client.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,29 @@
11
package httpclient
22

3-
import "net/http"
3+
import (
4+
"fmt"
5+
"net/http"
6+
"runtime"
7+
8+
"github.com/docker/cagent/pkg/version"
9+
)
10+
11+
type userAgentTransport struct {
12+
agent string
13+
rt http.RoundTripper
14+
}
15+
16+
func (u *userAgentTransport) RoundTrip(req *http.Request) (*http.Response, error) {
17+
r2 := req.Clone(req.Context())
18+
r2.Header.Set("User-Agent", u.agent)
19+
return u.rt.RoundTrip(r2)
20+
}
421

522
func NewHttpClient() *http.Client {
6-
return &http.Client{}
23+
return &http.Client{
24+
Transport: &userAgentTransport{
25+
agent: fmt.Sprintf("Cagent/%s (%s; %s)", version.Version, runtime.GOOS, runtime.GOARCH),
26+
rt: http.DefaultTransport,
27+
},
28+
}
729
}

0 commit comments

Comments
 (0)