public override void Reject()

in FixAntenna/NetCore/FixEngine/Session/AcceptorFixSession.cs [163:242]


		public override void Reject(string reason)
		{
			if (Log.IsDebugEnabled)
			{
				Log.Debug("Session " + Parameters.SessionId + " rejecting...");
			}

			lock (SessionLock)
			{
				if (SessionState.IsNotDisconnected(SessionState))
				{
					throw new InvalidOperationException("Cannot connect while:" + SessionState);
				}

				SessionState = SessionState.WaitingForLogon;
				try
				{
					InitSessionInternal();
					if (Log.IsDebugEnabled)
					{
						Log.Debug("Starting MessagePumper thread. Outgoing seq number:" + RuntimeState.OutSeqNum);
					}

					Pumper.Start();
					if (Log.IsDebugEnabled)
					{
						Log.Debug("Pumper started");
					}

					SetAttribute(ExtendedFixSessionAttribute.RejectSession, true);
					try
					{
						//TBD! reuse buffer
						var buff = new MsgBuf(Parameters.IncomingLoginMessage.AsByteArray());
						MessageHandlers.OnMessage(buff);
					}
					catch (Exception e)
					{
						if (Log.IsDebugEnabled)
						{
							Log.Warn("Invalid login message received:" + Parameters.IncomingLoginMessage.ToString(),
								e);
						}
						else
						{
							Log.Warn("Invalid login message received:" + Parameters.IncomingLoginMessage.ToString() +
											". Reason: " + e.Message);
						}
					}

					//close incoming message storage manually - reader thread not started
					IncomingStorage.Dispose();
					var sessionState = SessionState;
					if (sessionState != SessionState.WaitingForLogoff
							&& sessionState != SessionState.WaitingForForcedLogoff
							&& sessionState != SessionState.WaitingForForcedDisconnect
							&& sessionState != SessionState.Disconnected
							&& sessionState != SessionState.DisconnectedAbnormally
							&& sessionState != SessionState.Dead)
					{
						Disconnect(DisconnectReason.Reject, reason);
					}
				}
				catch (IOException e)
				{
					if (Log.IsDebugEnabled)
					{
						Log.Warn("Init session failed. Cause: " + e.Message, e);
					}
					else
					{
						Log.Warn("Init session failed. Cause: " + e.Message);
					}
				}
				finally
				{
					RemoveAttribute(ExtendedFixSessionAttribute.RejectSession);
				}
			}
		}