diff options
| author | Christine Dodrill <me@christine.website> | 2019-04-08 16:05:06 +0000 |
|---|---|---|
| committer | Christine Dodrill <me@christine.website> | 2019-04-08 16:12:50 +0000 |
| commit | f5e9eded374394b7510b2492dc729d7952083a53 (patch) | |
| tree | 6f196022eee050068151a4971734f0b3940b60f2 /web | |
| parent | 9f53168d9af58b206fadbb1636e9ea0772f8730f (diff) | |
| download | x-f5e9eded374394b7510b2492dc729d7952083a53.tar.xz x-f5e9eded374394b7510b2492dc729d7952083a53.zip | |
dnsd: include user agent with requestsv1.0.3
Diffstat (limited to 'web')
| -rw-r--r-- | web/user_agent.go | 22 | ||||
| -rw-r--r-- | web/user_agent_test.go | 2 |
2 files changed, 19 insertions, 5 deletions
diff --git a/web/user_agent.go b/web/user_agent.go index 8e4bd4c..99885a4 100644 --- a/web/user_agent.go +++ b/web/user_agent.go @@ -4,16 +4,30 @@ import ( "fmt" "net/http" "os" - "path/filepath" "runtime" + "time" + + "github.com/celrenheit/sandflake" +) + +var ( + startID = sandflake.Next() + hostname = "<unknown>" + started = time.Now() ) func init() { http.DefaultTransport = &userAgentTransport{http.DefaultTransport} + + name, _ := os.Hostname() + if name != "" { + hostname = name + } } -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])) +// GenUserAgent creates a unique User-Agent string for outgoing HTTP requests. +func GenUserAgent() string { + return fmt.Sprintf("github.com-Xe-x (%s/%s/%s; %s; +https://github.com/Xe/x/blob/master/web/x.md) Alive (%s; sandflake) Hostname/%s Started (%s)", runtime.Version(), runtime.GOOS, runtime.GOARCH, os.Args[0], startID.String(), hostname, started.Format(time.RFC3339)) } type userAgentTransport struct { @@ -21,6 +35,6 @@ type userAgentTransport struct { } func (uat userAgentTransport) RoundTrip(r *http.Request) (*http.Response, error) { - r.Header.Set("User-Agent", genUserAgent()) + r.Header.Set("User-Agent", GenUserAgent()) return uat.rt.RoundTrip(r) } diff --git a/web/user_agent_test.go b/web/user_agent_test.go index e2ffca0..c2ecb6e 100644 --- a/web/user_agent_test.go +++ b/web/user_agent_test.go @@ -3,7 +3,7 @@ package web import "testing" func TestGenUserAgent(t *testing.T) { - ua := genUserAgent() + ua := GenUserAgent() if ua == "" { t.Fatal("no user agent generated") } |
