diff --git a/backend_client.go b/backend_client.go index b1e1e9d..41565a1 100644 --- a/backend_client.go +++ b/backend_client.go @@ -56,6 +56,7 @@ const ( ) type BackendClient struct { + hub *Hub transport *http.Transport version string backends *BackendConfiguration @@ -342,6 +343,9 @@ func (b *BackendClient) PerformJSONRequest(ctx context.Context, u *url.URL, requ req.Header.Set("Accept", "application/json") req.Header.Set("OCS-APIRequest", "true") req.Header.Set("User-Agent", "nextcloud-spreed-signaling/"+b.version) + if b.hub != nil { + req.Header.Set("X-Spreed-Signaling-Features", strings.Join(b.hub.info.Features, ", ")) + } // Add checksum so the backend can validate the request. AddBackendChecksum(req, data, secret) diff --git a/hub.go b/hub.go index 0d3afff..e2965a0 100644 --- a/hub.go +++ b/hub.go @@ -333,6 +333,7 @@ func NewHub(config *goconf.ConfigFile, nats NatsClient, r *mux.Router, version s geoip: geoip, geoipOverrides: geoipOverrides, } + backend.hub = hub hub.upgrader.CheckOrigin = hub.checkOrigin r.HandleFunc("/spreed", func(w http.ResponseWriter, r *http.Request) { hub.serveWs(w, r)