private void CheckObsoletConnections() {
#if !COMPACT_FRAMEWORK
try {
if (m_interface_flm.ConnectionTable == null)
return;
var conns = m_interface_flm.ConnectionTable;
bool isNeighbour = false;
bool isFinger = false;
List<ReloadConnectionTableInfoElement> closedConns = new List<ReloadConnectionTableInfoElement>();
foreach (var connection in conns) {
isNeighbour = m_topology.routing_table.isNewNeighbour(connection.NodeID);
isFinger = m_topology.routing_table.isFinger(connection.NodeID);
if (!isNeighbour && !isFinger &&
(DateTime.Now - connection.LastActivity).TotalSeconds >= ReloadGlobals.CHORD_PING_INTERVAL + 30) {
connection.AssociatedSocket.Disconnect(false);
closedConns.Add(connection);
}
}
foreach (var connection in closedConns)
conns.Remove(connection);
}
catch (Exception e) {
m_ReloadConfig.Logger(ReloadGlobals.TRACEFLAGS.T_ERROR, e.Message);
}
#endif
}