From 204d00c95c3ed18bede305f8e353ae12e46754b2 Mon Sep 17 00:00:00 2001 From: Gert Driesen Date: Sat, 16 Sep 2017 02:08:15 +0200 Subject: [PATCH] Raise Closed event before invocing Close() to make sure we do not raise this event after we finished disposing. --- src/Renci.SshNet/Channels/Channel.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Renci.SshNet/Channels/Channel.cs b/src/Renci.SshNet/Channels/Channel.cs index 40a331c4..818f6959 100644 --- a/src/Renci.SshNet/Channels/Channel.cs +++ b/src/Renci.SshNet/Channels/Channel.cs @@ -400,6 +400,13 @@ namespace Renci.SshNet.Channels { _closeMessageReceived = true; + // raise event signaling that the server has closed its end of the channel + var closed = Closed; + if (closed != null) + { + closed(this, new ChannelEventArgs(LocalChannelNumber)); + } + // signal that SSH_MSG_CHANNEL_CLOSE message was received from server var channelClosedWaitHandle = _channelClosedWaitHandle; if (channelClosedWaitHandle != null) @@ -407,11 +414,6 @@ namespace Renci.SshNet.Channels // close the channel Close(); - - // raise event signaling that the server has closed the channel - var closed = Closed; - if (closed != null) - closed(this, new ChannelEventArgs(LocalChannelNumber)); } ///