Skip to content

Commit 7dd9edd

Browse files
committed
feat: add user-agent to client requests
Signed-off-by: Antonio Murdaca <[email protected]>
1 parent c617aca commit 7dd9edd

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

internal/tls/tls.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"time"
1111

1212
"github.com/fido-device-onboard/go-fdo"
13+
"github.com/fido-device-onboard/go-fdo-client/internal/version"
1314
"github.com/fido-device-onboard/go-fdo/http"
1415
)
1516

@@ -29,7 +30,7 @@ func TlsTransport(baseURL string, conf *tls.Config, insecureTLS bool) fdo.Transp
2930

3031
return &http.Transport{
3132
BaseURL: baseURL,
32-
Client: &net_http.Client{Transport: &net_http.Transport{
33+
Client: &net_http.Client{Transport: &userAgentTransport{&net_http.Transport{
3334
Proxy: net_http.ProxyFromEnvironment,
3435
DialContext: (&net.Dialer{
3536
Timeout: 30 * time.Second,
@@ -41,6 +42,23 @@ func TlsTransport(baseURL string, conf *tls.Config, insecureTLS bool) fdo.Transp
4142
TLSClientConfig: conf,
4243
TLSHandshakeTimeout: 10 * time.Second,
4344
ExpectContinueTimeout: 1 * time.Second,
44-
}},
45+
}, "go-fdo-client/" + version.VERSION}},
46+
}
47+
}
48+
49+
type userAgentTransport struct {
50+
next net_http.RoundTripper
51+
userAgent string
52+
}
53+
54+
func (t *userAgentTransport) RoundTrip(req *net_http.Request) (*net_http.Response, error) {
55+
r := req.Clone(req.Context())
56+
setDefaultUserAgent(r.Header, t.userAgent)
57+
return t.next.RoundTrip(r)
58+
}
59+
60+
func setDefaultUserAgent(header net_http.Header, userAgent string) {
61+
if header != nil && len(header.Values("User-Agent")) == 0 {
62+
header.Set("User-Agent", userAgent)
4563
}
4664
}

0 commit comments

Comments
 (0)