protected void AddBrokenNode(ref NodeMapping nm, Address addr, int broken_port, bool nctunnel)
{
nm.Node = new StructuredNode(addr as AHAddress, BrunetNamespace);
TAAuthorizer auth = new IDTAAuthorizer(broken_port);
nm.Node.AddEdgeListener(new SimulationEdgeListener(nm.ID, 0, auth, true));
IRelayOverlap ito = null;
if(NCEnable) {
nm.NCService = new NCService(nm.Node, new Point());
// Until we figure out what's going on with VivaldiTargetSelector its not quite useful for these purposes
// (nm.Node as StructuredNode).Sco.TargetSelector = new VivaldiTargetSelector(nm.Node, ncservice);
}
if(nctunnel && NCEnable) {
ito = new NCRelayOverlap(nm.NCService);
} else {
ito = new SimpleRelayOverlap();
}
nm.Node.AddEdgeListener(new Relay.RelayEdgeListener(nm.Node, ito));
nm.Node.RemoteTAs = GetRemoteTAs();
nm.Node.Connect();
CurrentNetworkSize++;
}