diff --git a/code/server/handler/client.go b/code/server/handler/client.go index e131d71..5c58c95 100644 --- a/code/server/handler/client.go +++ b/code/server/handler/client.go @@ -86,3 +86,7 @@ func (c *client) closeLink(id string) { delete(c.links, id) c.Unlock() } + +func (c *client) is(id string, idx uint32) bool { + return c.parent.id == id && c.idx == idx +} diff --git a/code/server/handler/handler.go b/code/server/handler/handler.go index 9c25307..b24e709 100644 --- a/code/server/handler/handler.go +++ b/code/server/handler/handler.go @@ -99,10 +99,10 @@ func (h *Handler) getClient(linkID, to string, toIdx uint32) *client { pair := h.links[linkID] h.lockLinks.RUnlock() - if pair[0] != nil && pair[0].idx == toIdx { + if pair[0] != nil && pair[0].is(to, toIdx) { return pair[0] } - if pair[1] != nil && pair[1].idx == toIdx { + if pair[1] != nil && pair[1].is(to, toIdx) { return pair[1] }