瀏覽代碼

Add timeout for some waiting operations

olegkap_cp 13 年之前
父節點
當前提交
184963f8c5

+ 10 - 10
Renci.SshClient/Renci.SshNet/Channels/ChannelSession.cs

@@ -119,8 +119,8 @@ namespace Renci.SshNet.Channels
             this._channelRequestResponse.Reset();
 
             this.SendMessage(new ChannelRequestMessage(this.RemoteChannelNumber, new PseudoTerminalRequestInfo(environmentVariable, columns, rows, width, height, terminalModeValues)));
-
-            this._channelRequestResponse.WaitOne();
+            
+            this.WaitHandle(this._channelRequestResponse);
 
             return this._channelRequestSucces;
         }
@@ -139,7 +139,7 @@ namespace Renci.SshNet.Channels
 
             this.SendMessage(new ChannelRequestMessage(this.RemoteChannelNumber, new X11ForwardingRequestInfo(isSingleConnection, protocol, cookie, screenNumber)));
 
-            this._channelRequestResponse.WaitOne();
+            this.WaitHandle(this._channelRequestResponse);
 
             return this._channelRequestSucces;
         }
@@ -156,7 +156,7 @@ namespace Renci.SshNet.Channels
 
             this.SendMessage(new ChannelRequestMessage(this.RemoteChannelNumber, new EnvironmentVariableRequestInfo(variableName, variableValue)));
 
-            this._channelRequestResponse.WaitOne();
+            this.WaitHandle(this._channelRequestResponse);
 
             return this._channelRequestSucces;
         }
@@ -171,7 +171,7 @@ namespace Renci.SshNet.Channels
 
             this.SendMessage(new ChannelRequestMessage(this.RemoteChannelNumber, new ShellRequestInfo()));
 
-            this._channelRequestResponse.WaitOne();
+            this.WaitHandle(this._channelRequestResponse);
 
             return this._channelRequestSucces;
         }
@@ -187,7 +187,7 @@ namespace Renci.SshNet.Channels
 
             this.SendMessage(new ChannelRequestMessage(this.RemoteChannelNumber, new ExecRequestInfo(command)));
 
-            this._channelRequestResponse.WaitOne();
+            this.WaitHandle(this._channelRequestResponse);
 
             return this._channelRequestSucces;
         }
@@ -203,7 +203,7 @@ namespace Renci.SshNet.Channels
 
             this.SendMessage(new ChannelRequestMessage(this.RemoteChannelNumber, new BreakRequestInfo(breakLength)));
 
-            this._channelRequestResponse.WaitOne();
+            this.WaitHandle(this._channelRequestResponse);
 
             return this._channelRequestSucces;
         }
@@ -219,7 +219,7 @@ namespace Renci.SshNet.Channels
 
             this.SendMessage(new ChannelRequestMessage(this.RemoteChannelNumber, new SubsystemRequestInfo(subsystem)));
 
-            this._channelRequestResponse.WaitOne();
+            this.WaitHandle(this._channelRequestResponse);
 
             return this._channelRequestSucces;
         }
@@ -300,7 +300,7 @@ namespace Renci.SshNet.Channels
 
             this.SendMessage(new ChannelRequestMessage(this.RemoteChannelNumber, new EndOfWriteRequestInfo()));
 
-            this._channelRequestResponse.WaitOne();
+            this.WaitHandle(this._channelRequestResponse);
 
             return this._channelRequestSucces;
         }
@@ -315,7 +315,7 @@ namespace Renci.SshNet.Channels
 
             this.SendMessage(new ChannelRequestMessage(this.RemoteChannelNumber, new KeepAliveRequestInfo()));
 
-            this._channelRequestResponse.WaitOne();
+            this.WaitHandle(this._channelRequestResponse);
 
             return this._channelRequestSucces;
         }

+ 0 - 2
Renci.SshClient/Renci.SshNet/Renci.SshNet.csproj

@@ -35,9 +35,7 @@
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Core" />
-    <Reference Include="System.Xml.Linq" />
     <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>

+ 1 - 1
Renci.SshClient/Renci.SshNet/Session.cs

@@ -917,7 +917,7 @@ namespace Renci.SshNet
                         if (this._messageListenerCompleted != null)
                         {
                             //  Wait for listener task to finish
-                            this._messageListenerCompleted.WaitOne();
+                            this.WaitHandle(this._messageListenerCompleted);
                             this._messageListenerCompleted.Dispose();
                             this._messageListenerCompleted = null;
                         }