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;
- }
- }
|