From 0b415dfa4ab73a9a1629dbeb6f98bcf6eac71fa7 Mon Sep 17 00:00:00 2001 From: Henry Date: Thu, 28 Jan 2021 15:06:24 +0100 Subject: [PATCH] take asking for endpoints also as announce --- handlers/tunnel/state.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/handlers/tunnel/state.go b/handlers/tunnel/state.go index a8d16b8..5f15567 100644 --- a/handlers/tunnel/state.go +++ b/handlers/tunnel/state.go @@ -109,6 +109,22 @@ func (rs *roomState) leave(_ context.Context, req *muxrpc.Request) (interface{}, func (rs *roomState) endpoints(_ context.Context, req *muxrpc.Request, snk *muxrpc.ByteSink) error { level.Debug(rs.logger).Log("called", "endpoints") + + ref, err := network.GetFeedRefFromAddr(req.RemoteAddr()) + if err != nil { + return err + } + + rs.roomsMu.Lock() + // add ref to lobby + lobby := rs.rooms["lobby"] + if _, has := lobby[ref.Ref()]; !has { + lobby[ref.Ref()] = req.Endpoint() + rs.updater.Update(lobby.asList()) + rs.rooms["lobby"] = lobby + } + rs.roomsMu.Unlock() + rs.broadcaster.Register(newForwarder(snk)) return nil }