Ver código fonte

Fix SocketReadLine from previouse checkin

olegkap_cp 13 anos atrás
pai
commit
432d640930
1 arquivos alterados com 9 adições e 5 exclusões
  1. 9 5
      Renci.SshClient/Renci.SshNet/Session.NET.cs

+ 9 - 5
Renci.SshClient/Renci.SshNet/Session.NET.cs

@@ -17,7 +17,7 @@ namespace Renci.SshNet
     {
         private TraceSource _log =
 #if DEBUG
-            new TraceSource("SshNet.Logging", SourceLevels.All);
+ new TraceSource("SshNet.Logging", SourceLevels.All);
 #else
             new TraceSource("SshNet.Logging");
 #endif
@@ -53,7 +53,7 @@ namespace Renci.SshNet
             var encoding = new Renci.SshNet.Common.ASCIIEncoding();
 
             var line = new StringBuilder();
-            //  Read data 2 bytes at a time to find end of line and leave any unhandled information in the buffer to be processed later
+            //  Read data one byte at a time to find end of line and leave any unhandled information in the buffer to be processed later
             var buffer = new List<byte>();
 
             var data = new byte[1];
@@ -62,10 +62,14 @@ namespace Renci.SshNet
                 this._socket.Receive(data);
 
                 buffer.Add(data[0]);
+                Debug.WriteLine(data[0]);
             }
-            while (!(buffer.Count > 2 && buffer[buffer.Count - 1] == 0x0A && buffer[buffer.Count - 2] == 0x0D));
-            
-            response = encoding.GetString(buffer.Take(buffer.Count - 2).ToArray());
+            while (!(buffer.Count > 2 && buffer[buffer.Count - 1] == 0x0A));
+
+            if (buffer[buffer.Count - 2] == 0x0D)
+                response = encoding.GetString(buffer.Take(buffer.Count - 2).ToArray());
+            else
+                response = encoding.GetString(buffer.Take(buffer.Count - 1).ToArray());
         }
 
         partial void SocketRead(int length, ref byte[] buffer)