Skip to content

Commit 21c5c8e

Browse files
committed
Log warning upon timeout waiting for pending channels to reach zero.
1 parent 34df3dd commit 21c5c8e

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

src/Renci.SshNet/ForwardedPortDynamic.NET.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,12 @@ partial void StopListener()
264264
partial void InternalStop(TimeSpan timeout)
265265
{
266266
_pendingChannelCountdown.Signal();
267-
_pendingChannelCountdown.Wait(timeout);
267+
if (!_pendingChannelCountdown.Wait(timeout))
268+
{
269+
// TODO: log as warning
270+
DiagnosticAbstraction.Log("Timeout waiting for pending channels in dynamic forwarded port to close.");
271+
}
272+
268273
}
269274

270275
partial void InternalDispose(bool disposing)

src/Renci.SshNet/ForwardedPortLocal.NET.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,11 @@ partial void StopListener()
214214
partial void InternalStop(TimeSpan timeout)
215215
{
216216
_pendingChannelCountdown.Signal();
217-
_pendingChannelCountdown.Wait(timeout);
217+
if (!_pendingChannelCountdown.Wait(timeout))
218+
{
219+
// TODO: log as warning
220+
DiagnosticAbstraction.Log("Timeout waiting for pending channels in local forwarded port to close.");
221+
}
218222
}
219223

220224
partial void InternalDispose(bool disposing)

src/Renci.SshNet/ForwardedPortRemote.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,12 @@ protected override void StopPort(TimeSpan timeout)
201201

202202
// wait for pending channels to close
203203
_pendingChannelCountdown.Signal();
204-
_pendingChannelCountdown.Wait(timeout);
204+
205+
if (!_pendingChannelCountdown.Wait(timeout))
206+
{
207+
// TODO: log as warning
208+
DiagnosticAbstraction.Log("Timeout waiting for pending channels in remote forwarded port to close.");
209+
}
205210

206211
_status = ForwardedPortStatus.Stopped;
207212
}
@@ -244,10 +249,7 @@ private void Session_ChannelOpening(object sender, MessageEventArgs<ChannelOpenM
244249
{
245250
RaiseRequestReceived(info.OriginatorAddress, info.OriginatorPort);
246251

247-
using (
248-
var channel =
249-
Session.CreateChannelForwardedTcpip(channelOpenMessage.LocalChannelNumber,
250-
channelOpenMessage.InitialWindowSize, channelOpenMessage.MaximumPacketSize))
252+
using (var channel = Session.CreateChannelForwardedTcpip(channelOpenMessage.LocalChannelNumber, channelOpenMessage.InitialWindowSize, channelOpenMessage.MaximumPacketSize))
251253
{
252254
channel.Exception += Channel_Exception;
253255
channel.Bind(new IPEndPoint(HostAddress, (int) Port), this);

0 commit comments

Comments
 (0)