From 43a732eaf3b54c2970c9b07fb175533e4ba1b96c Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Fri, 6 Mar 2026 15:29:10 -0800 Subject: [PATCH] Fix a few things with livekit implementation --- zooid/groups.go | 2 +- zooid/livekit.go | 11 +++++++++-- zooid/util.go | 1 + 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/zooid/groups.go b/zooid/groups.go index acf6a8e..a7a3955 100644 --- a/zooid/groups.go +++ b/zooid/groups.go @@ -326,7 +326,7 @@ func (g *GroupStore) CheckWrite(event nostr.Event) string { !slices.Contains(nip29.ModerationEventKinds, event.Kind) && event.Kind != nostr.KindSimpleGroupJoinRequest && event.Kind != nostr.KindSimpleGroupLeaveRequest && - event.Kind != 10312 /* hardcoded temporarily while NIP is hashed out */ { + event.Kind != ROOM_PRESENCE { return "blocked: this group does not allow text events" } diff --git a/zooid/livekit.go b/zooid/livekit.go index fa042aa..768b1c6 100644 --- a/zooid/livekit.go +++ b/zooid/livekit.go @@ -48,8 +48,10 @@ func generateLivekitServerToken(apiKey, apiSecret string) string { } func ensureLivekitRoom(apiKey, apiSecret, serverURL, roomName string) error { + roomKey := serverURL + "'" + roomName + livekitRoomsMu.RLock() - if livekitRooms[roomName] { + if livekitRooms[roomKey] { livekitRoomsMu.RUnlock() return nil } @@ -78,7 +80,7 @@ func ensureLivekitRoom(apiKey, apiSecret, serverURL, roomName string) error { if resp.StatusCode == http.StatusOK || resp.StatusCode == http.StatusConflict { livekitRoomsMu.Lock() - livekitRooms[roomName] = true + livekitRooms[roomKey] = true livekitRoomsMu.Unlock() return nil } @@ -109,6 +111,11 @@ func (instance *Instance) livekitTokenHandler(w http.ResponseWriter, r *http.Req return } + if !instance.Management.IsMember(pubkey) { + http.Error(w, "not a member of this relay", http.StatusForbidden) + return + } + meta, found := instance.Groups.GetMetadata(groupId) if !found { http.Error(w, "group not found", http.StatusNotFound) diff --git a/zooid/util.go b/zooid/util.go index 72e0dd1..e54ec55 100644 --- a/zooid/util.go +++ b/zooid/util.go @@ -15,6 +15,7 @@ import ( const ( RELAY_ADD_MEMBER = 8000 RELAY_REMOVE_MEMBER = 8001 + ROOM_PRESENCE = 10312 RELAY_MEMBERS = 13534 RELAY_JOIN = 28934 RELAY_INVITE = 28935