diff --git a/signal/signal.go b/signal/signal.go index 0569adf58..2d2fbbeeb 100644 --- a/signal/signal.go +++ b/signal/signal.go @@ -30,15 +30,20 @@ func NewServer() *SignalExchangeServer { } func (s *SignalExchangeServer) Connect(ctx context.Context, msg *proto.Message) (*proto.Message, error) { + + if _, found := s.registry.Peers[msg.Key]; found { + return nil, fmt.Errorf("unknown peer %s", msg.Key) + } + if dstPeer, found := s.registry.Peers[msg.RemoteKey]; found { //forward the message to the target peer err := dstPeer.Stream.Send(msg) if err != nil { - log.Errorf("error while forwarding message from peer [%s] to peer [%s]", p.Id, msg.RemoteKey) + log.Errorf("error while forwarding message from peer [%s] to peer [%s]", msg.Key, msg.RemoteKey) //todo respond to the sender? } } else { - log.Warnf("message from peer [%s] can't be forwarded to peer [%s] because destination peer is not connected", p.Id, msg.RemoteKey) + log.Warnf("message from peer [%s] can't be forwarded to peer [%s] because destination peer is not connected", msg.Key, msg.RemoteKey) //todo respond to the sender? } return &proto.Message{}, nil