private void HandleRequest(Socket socket) { try { NetworkStream networkStream = new NetworkStream(socket); IRequest request = new Request(networkStream); //if(request.Url.RawUrl.Contains("favicon.ico")) //{ // ConsoleWrite.Red("favicon.ico"); // var faviconResponse = new Response(); // faviconResponse.StatusCode = 404; // faviconResponse.Send(networkStream); // return; //} if (!request.IsValid) { ConsoleWrite.Red("Invalid request."); return; } IPlugin plugin = pluginManager.GetBestSuitingPlugin(request); IResponse response = plugin.Handle(request); response.Send(networkStream); networkStream.Flush(); //networkStream.Close(); //??? ConsoleWrite.Green("Response sent successfully. (" + plugin.GetType().Name + ")"); } catch (Exception e) { ConsoleWrite.Red("Error occured! Error: " + e.Message + ": " + e.InnerException); } }