Stop listener before waiting for channels to close.

Remove extra exception handling.
This commit is contained in:
drieseng
2016-07-24 10:18:10 +02:00
parent 32becde5ad
commit 65bd07259a
2 changed files with 3 additions and 21 deletions
+1 -18
View File
@@ -32,24 +32,7 @@ namespace Renci.SshNet
// consider port started when we're listening for inbound connections
_status = ForwardedPortStatus.Started;
try
{
StartAccept(null);
}
catch (ObjectDisposedException)
{
// AcceptAsync will throw an ObjectDisposedException when the server is closed before
// the listener has started accepting connections.
//
// this is only possible when the listener is stopped (from another thread) right
// after it was started.
StopPort(Session.ConnectionInfo.Timeout);
}
catch (Exception ex)
{
StopPort(Session.ConnectionInfo.Timeout);
RaiseExceptionEvent(ex);
}
StartAccept(null);
}
private void StartAccept(SocketAsyncEventArgs e)
+2 -3
View File
@@ -131,11 +131,10 @@ namespace Renci.SshNet
// signal existing channels that the port is closing
base.StopPort(timeout);
// prevent new requests from getting processed
StopListener();
// wait for open channels to close
InternalStop(timeout);
// prevent new requests from getting processed before we signal existing
// channels that the port is closing
StopListener();
// mark port stopped
_status = ForwardedPortStatus.Stopped;
}