diff options
| author | Christine Dodrill <me@christine.website> | 2019-02-17 09:36:03 -0800 |
|---|---|---|
| committer | Christine Dodrill <me@christine.website> | 2019-02-17 09:36:03 -0800 |
| commit | 60cd88c3b3e97d7c9666369b179dba869d84b6cf (patch) | |
| tree | 3f2e3d471d3ebdec7de8331fbbe6e825c3f360fa /web/user_agent.go | |
| parent | 76343ccd100bddcf0921b1fbf20c5d48659d8dc8 (diff) | |
| download | x-60cd88c3b3e97d7c9666369b179dba869d84b6cf.tar.xz x-60cd88c3b3e97d7c9666369b179dba869d84b6cf.zip | |
web: add implicit user agent transport to the default one
Diffstat (limited to 'web/user_agent.go')
| -rw-r--r-- | web/user_agent.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/web/user_agent.go b/web/user_agent.go new file mode 100644 index 0000000..8e4bd4c --- /dev/null +++ b/web/user_agent.go @@ -0,0 +1,26 @@ +package web + +import ( + "fmt" + "net/http" + "os" + "path/filepath" + "runtime" +) + +func init() { + http.DefaultTransport = &userAgentTransport{http.DefaultTransport} +} + +func genUserAgent() string { + return fmt.Sprintf("github.com-Xe-x (%s/%s/%s; %s/bot; +https://github.com/Xe/x/blob/master/web/x.md)", runtime.Version(), runtime.GOOS, runtime.GOARCH, filepath.Base(os.Args[0])) +} + +type userAgentTransport struct { + rt http.RoundTripper +} + +func (uat userAgentTransport) RoundTrip(r *http.Request) (*http.Response, error) { + r.Header.Set("User-Agent", genUserAgent()) + return uat.rt.RoundTrip(r) +} |
