private List <Node> FindNodesToAdd(List <Host> hosts) { List <Node> list = new List <Node>(hosts.Count); foreach (Host host in hosts) { try { NodeValidator nv = new NodeValidator(this, host); Node node = FindNode(nv.name, list); if (node != null) { // Duplicate node name found. This usually occurs when the server // services list contains both internal and external IP addresses // for the same node. Add new host to list of alias filters // and do not add new node. node.referenceCount++; node.AddAlias(host); aliases[host] = node; continue; } node = CreateNode(nv); list.Add(node); } catch (Exception e) { if (Log.WarnEnabled()) { Log.Warn("Add node " + host + " failed: " + Util.GetErrorMessage(e)); } } } return(list); }