public int Write(Stream stream, byte[] buffer, int index, int bytesRead) { ASCIIEncoding encoder = new ASCIIEncoding(); var request = encoder.GetString(buffer, index, bytesRead); if (request.Contains("Host: localhost")) { request = request.Replace("Host: localhost:8080", "Host: " + _realHost + ":80"); buffer = encoder.GetBytes(request); index = 0; bytesRead = buffer.Length; } return(_piggyback.Write(stream, buffer, index, bytesRead)); }
//================================================================================ private bool CopyFromStream(NetworkStream from, NetworkStream to, Action <int> bytesRead, IByPasser logger) { try { if (from.CanRead && to.CanWrite) { byte[] myReadBuffer = new byte[1000024]; int numberOfBytesRead = 0; do { numberOfBytesRead = from.Read(myReadBuffer, 0, myReadBuffer.Length); if (_latency != 0) { Thread.Sleep(_latency); } if (numberOfBytesRead != 0) { numberOfBytesRead = logger.Write(to, myReadBuffer, 0, numberOfBytesRead); bytesRead(numberOfBytesRead); } else { return(false); } }while (from.DataAvailable); to.Flush(); return(true); } else { return(false); } } catch { return(false); } }
public int Write(Stream stream, byte[] buffer, int index, int bytesRead) { _logger(buffer, index, bytesRead); return(_piggyback.Write(stream, buffer, index, bytesRead)); }
//================================================================================ private bool CopyFromStream(NetworkStream from, NetworkStream to, Action<int> bytesRead, IByPasser logger) { try { if (from.CanRead && to.CanWrite) { byte[] myReadBuffer = new byte[1000024]; int numberOfBytesRead = 0; do { numberOfBytesRead = from.Read(myReadBuffer, 0, myReadBuffer.Length); if (_latency != 0) Thread.Sleep(_latency); if (numberOfBytesRead != 0) { numberOfBytesRead = logger.Write(to, myReadBuffer, 0, numberOfBytesRead); bytesRead(numberOfBytesRead); } else { return false; } } while (from.DataAvailable); to.Flush(); return true; } else { return false; } } catch { return false; } }