diff --git a/pkg/service/rtcservice.go b/pkg/service/rtcservice.go index 04685b1e9..6f18356df 100644 --- a/pkg/service/rtcservice.go +++ b/pkg/service/rtcservice.go @@ -254,6 +254,9 @@ func (s *RTCService) validateInternal( } else { lgr.Debugw("processing join request", "joinRequest", logger.Proto(joinRequest)) + if joinRequest.ClientInfo == nil { + joinRequest.ClientInfo = &livekit.ClientInfo{} + } AugmentClientInfo(joinRequest.ClientInfo, r) pi.Client = joinRequest.ClientInfo diff --git a/pkg/service/utils.go b/pkg/service/utils.go index 52433f329..e129e2f83 100644 --- a/pkg/service/utils.go +++ b/pkg/service/utils.go @@ -246,6 +246,10 @@ func getUserAgentParser() *uaparser.Parser { } func AugmentClientInfo(ci *livekit.ClientInfo, req *http.Request) { + if ci == nil { + return + } + // get real address (forwarded http header) - check Cloudflare headers first, fall back to X-Forwarded-For ci.Address = GetClientIP(req)