diff --git a/http.go b/http.go index a0b39f5..e97fb35 100644 --- a/http.go +++ b/http.go @@ -54,7 +54,7 @@ func (s *Service) Webfinger(w http.ResponseWriter, r *http.Request) { rels = append(rels, Rel(r)) } - rsc, err := s.Resolver.FindUser(a.Name, a.Hostname, rels) + rsc, err := s.Resolver.FindUser(a.Name, a.Hostname, r.Host, rels) if err != nil { if !s.Resolver.IsNotFoundError(err) { s.ErrorHandler.ServeHTTP(w, addError(r, err)) diff --git a/http_test.go b/http_test.go index a8cb08f..268d48d 100644 --- a/http_test.go +++ b/http_test.go @@ -19,7 +19,7 @@ import ( type dummyUserResolver struct { } -func (d *dummyUserResolver) FindUser(username string, hostname string, rel []Rel) (*Resource, error) { +func (d *dummyUserResolver) FindUser(username string, hostname, requestHost string, rel []Rel) (*Resource, error) { if username == "hello" { if len(rel) == 2 && rel[0] == "x" && rel[1] == "y" { return &Resource{ diff --git a/resolver.go b/resolver.go index abc86b3..989a9e8 100644 --- a/resolver.go +++ b/resolver.go @@ -6,7 +6,7 @@ package webfinger type Resolver interface { // FindUser finds the user given the username and hostname. - FindUser(username string, hostname string, r []Rel) (*Resource, error) + FindUser(username string, hostname, requestHost string, r []Rel) (*Resource, error) // DummyUser allows us to return a dummy user to avoid user-enumeration via webfinger 404s. This // can be done in the webfinger code itself but then it would be obvious which users are real