Esempio n. 1
0
        public int ForwardSingleLineToPeer(
            MyBinaryReader clientStreamReader,
            BinaryWriter webServerStreamWriter,
            Encoding contentCharsetEncoding,
            byte[] serverNewlineBytes,
            SniffedDataChunk sniffedDataChunk,
            bool mustBeProcessed)
        {
            int noBytesTransferred = 0;

            byte[] clientData = clientStreamReader.ReadBinaryLine();

            if (clientData?.Length > 0)
            {
                // Forward received data packets to peer
                webServerStreamWriter.Write(clientData, 0, clientData.Length);
                noBytesTransferred += clientData.Length;

                // If a sniffer data chunk object is defined write application data to it
                if (sniffedDataChunk != null)
                {
                    sniffedDataChunk.AppendData(clientData, clientData.Length);
                }

                Logging.Instance.LogMessage(this.requestObj.Id, this.requestObj.ProxyProtocol, Loglevel.Debug, "TcpClientRaw.ForwardSingleLineNonprocessedDataToPeer(): clientData.Length:{0}", clientData.Length);
            }
            else
            {
                Logging.Instance.LogMessage(this.requestObj.Id, this.requestObj.ProxyProtocol, Loglevel.Debug, "TcpClientRaw.ForwardSingleLineNonprocessedDataToPeer(): clientData:NULL");
            }

            return(noBytesTransferred);
        }