/// <summary> /// Compares the current instance with another object of the same type. /// </summary> /// <param name="obj">An object to compare with this instance.</param> /// <returns>Returns true if two objects are equal.</returns> public override bool Equals(object obj) { if (obj == null) { return(false); } if (!(obj is Relay_SmartHost)) { return(false); } Relay_SmartHost smartHost = (Relay_SmartHost)obj; if (m_Host != smartHost.Host) { return(false); } else if (m_Port != smartHost.Port) { return(false); } else if (m_SslMode != smartHost.SslMode) { return(false); } else if (m_UserName != smartHost.UserName) { return(false); } else if (m_Password != smartHost.Password) { return(false); } return(true); }
/// <summary> /// Smart host relay session constructor. /// </summary> /// <param name="server">Owner relay server.</param> /// <param name="localBindInfo">Local bind info.</param> /// <param name="realyItem">Relay item.</param> /// <param name="smartHosts">Smart hosts.</param> /// <exception cref="ArgumentNullException">Is raised when <b>server</b>,<b>localBindInfo</b>,<b>realyItem</b> or <b>smartHosts</b>is null.</exception> /// <exception cref="ArgumentException">Is raised when any of the arguments has invalid value.</exception> internal Relay_Session(Relay_Server server, IPBindInfo localBindInfo, Relay_QueueItem realyItem, Relay_SmartHost[] smartHosts) { if (server == null) { throw new ArgumentNullException("server"); } if (localBindInfo == null) { throw new ArgumentNullException("localBindInfo"); } if (realyItem == null) { throw new ArgumentNullException("realyItem"); } if (smartHosts == null) { throw new ArgumentNullException("smartHosts"); } m_pServer = server; m_pLocalBindInfo = localBindInfo; m_pRelayItem = realyItem; m_pSmartHosts = smartHosts; m_RelayMode = Relay_Mode.SmartHost; m_SessionID = Guid.NewGuid().ToString(); m_SessionCreateTime = DateTime.Now; m_pTargets = new List<Relay_Target>(); }