1

Closed

Infinite loop in SocketReadLine Method

description

First of all you are doing a great job, Thank's for that.
Where was an infinite loop ,do {..} while {.. buffer[buffer.Count - 1] == 0x0A ...} condition wasn't true, and a i get exception SshOperationTimeoutException("Socket read operation has timed out"), that was strange, i changed condition to
while (!(buffer.Count > 0 && (buffer[buffer.Count - 1].Equals(0x0A) || buffer[buffer.Count - 1].Equals(0x00) )));
and now everything works great. Thank one more time for your library.

also look at ConnectHttp Method
condition HttpStatusCode.OK

switch (statusCode)
                case HttpStatusCode.OK:
                    break;                    
                default:
                    throw new ProxyException(string.Format("HTTP: Status code {0}, \"{1}\" . {2}", statusCode, statusCode, response));
doesn't break a loop i think you should use a return clause;
Closed Oct 12 at 8:21 AM by drieseng
This was fixed a while ago, and het more fixes for SocketReadLine went in recently.

comments

olegkap wrote Jul 10, 2013 at 1:26 PM

Hi,

Thanks for pointing out HttpStatusCode.OK issue, I just committed fix for that.
One thing I am not sure what is a difference between:
buffer[buffer.Count - 1] == 0x0A
and
buffer[buffer.Count - 1].Equals(0x0A)

Thanks,
Oleg