commit d6f4d196c978d81041ea99a32e2d6f63b0639472
parent 746f3fa4e65ac2806955a4be8e969dd8a2636ccf
Author: Daniele Sluijters <daenney@users.noreply.github.com>
Date: Sat, 26 Nov 2022 21:15:19 +0100
Tweak the User-Agent a bit (#1153)
* [bugfix] Use AccountDomain for user agent
By using the account domain we can pinpoint the source of the request
more accurately when looking at the User-Agent header.
* [chore] Align user-agent header with spec
Based on RFC 7231, our User-Agent header doesn't quite match. It seems
to always want Name [/ Version] pairs, with comments in parenthesis and
multiple comments separated by a semicolon.
Align our UA with that, using application name first by itself in case
someone has customised it with the source instance in a comment. Follow
that up with gotosocial/<version> and a comment pointing at the source
code.
This also drops the mention of gofed/activity since a fork is in use.
Diffstat:
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/internal/transport/controller.go b/internal/transport/controller.go
@@ -59,7 +59,8 @@ type controller struct {
// NewController returns an implementation of the Controller interface for creating new transports
func NewController(db db.DB, federatingDB federatingdb.DB, clock pub.Clock, client pub.HttpClient) Controller {
applicationName := config.GetApplicationName()
- host := config.GetHost()
+ host := config.GetAccountDomain()
+ proto := config.GetProtocol()
version := config.GetSoftwareVersion()
c := &controller{
@@ -69,7 +70,7 @@ func NewController(db db.DB, federatingDB federatingdb.DB, clock pub.Clock, clie
client: client,
trspCache: cache.New[string, *transport](0, 100, 0),
badHosts: cache.New[string, struct{}](0, 1000, 0),
- userAgent: fmt.Sprintf("%s; %s (gofed/activity gotosocial-%s)", applicationName, host, version),
+ userAgent: fmt.Sprintf("%s (+%s://%s) gotosocial/%s", applicationName, proto, host, version),
}
// Transport cache has TTL=1hr freq=1min