public static TcpRelayService StartTcpRelay(BinaryID networkID, Connection connection, int servicePort, DhtClient dhtClient, Uri[] tracketURIs) { TcpRelayService relay; lock (_relays) { if (_relays.ContainsKey(networkID)) { relay = _relays[networkID]; } else { relay = new TcpRelayService(networkID, servicePort, dhtClient); _relays.Add(networkID, relay); } lock (relay._relayConnections) { relay._relayConnections.Add(connection.RemotePeerID, connection); } } relay._trackerManager.AddTracker(tracketURIs); relay._trackerManager.StartTracking(); return(relay); }