| 1234567891011121314151617181920212223242526272829303132333435 | namespace WinSCP{    internal class SessionElementLogReader : ElementLogReader    {        public SessionElementLogReader(CustomLogReader parentReader) :            base(parentReader)        {        }        public override void Dispose()        {            using (Session.Logger.CreateCallstack())            {                // Now it's ok if we encounter </session>.                _disposing = true;                base.Dispose();            }        }        public override bool Read(LogReadFlags flags)        {            bool result = base.Read(flags);            if (_read && !_disposing)            {                throw Session.Logger.WriteException(new SessionLocalException(Session, "Session has unexpectedly closed"));            }            return result;        }        private bool _disposing;    }}
 |