/// <exception cref="System.Exception" /> private bool Connect(ICollection <IPEndPoint> triedAddresses) { var addresses = GetPossibleMemberAddresses(); foreach (var address in addresses) { var inetSocketAddress = address.GetInetSocketAddress(); try { triedAddresses.Add(inetSocketAddress); if (Logger.IsFinestEnabled()) { Logger.Finest("Trying to connect to " + address); } var connection = _connectionManager.GetOrConnect(address, ManagerAuthenticator); // promote connection to owner if not already if (!connection.IsOwner()) { Logger.Finest("Promoting connection " + connection + " to owner."); ManagerAuthenticator(connection); } FireConnectionEvent(LifecycleEvent.LifecycleState.ClientConnected); OwnerConnectionAddress = connection.GetAddress(); return(true); } catch (Exception e) { var level = e is AuthenticationException ? LogLevel.Warning : LogLevel.Finest; Logger.Log(level, "Exception during initial connection to " + inetSocketAddress, e); } } return(false); }
/// <exception cref="System.Exception" /> private bool ConnectAsOwner(ICollection <IPEndPoint> triedAddresses, IList <Exception> exceptions) { var addresses = GetPossibleMemberAddresses(); foreach (var address in addresses) { IPEndPoint inetSocketAddress = null; try { inetSocketAddress = address.GetInetSocketAddress(); triedAddresses.Add(inetSocketAddress); if (Logger.IsFinestEnabled()) { Logger.Finest("Trying to connect to " + address); } var ownerConnection = _connectionManager.GetOrConnect(address, isOwner: true); FireConnectionEvent(LifecycleEvent.LifecycleState.ClientConnected); OwnerConnectionAddress = ownerConnection.GetAddress(); return(true); } catch (Exception e) { if (exceptions.Count == MaxExceptionCount) { exceptions.RemoveAt(0); } exceptions.Add(e); var level = e is AuthenticationException ? LogLevel.Warning : LogLevel.Finest; Logger.Log(level, "Exception during initial connection to " + inetSocketAddress ?? address.ToString(), e); } } return(false); }