Esempio n. 1
0
        internal async Task ProcessAsync()
        {
            var reader = new StreamReader(client.GetInputStream());

            StringBuilder request = await ReadRequest(reader);

            var localEndpoint = client.LocalEndPoint;
            var remoteEnpoint = client.RemoteEndPoint;

            // This code needs to be rewritten and simplified.

            var    requestLines  = request.ToString().Split('\n');
            string requestMethod = requestLines[0].TrimEnd('\r');

            string[] requestParts = requestMethod.Split(' ');

            LocalEndpoint  = (IPEndPoint)localEndpoint;
            RemoteEndpoint = (IPEndPoint)remoteEnpoint;

            var lines = request.ToString().Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);

            ParseHeaders(lines);
            ParseRequestLine(lines);

            await PrepareInputStream(reader);
        }