2007-08-16 Brian Nickel * src/Mono.WebServer/ApplicationManager.cs: New application mapping code was rife with mistakes (though several of them cancelled eachother out so it wasn't immediately noticable). They are fixed now and applications are mapping like nobody's business. 2007-08-15 Brian Nickel * doc/linux/cherokee.html: Add documentation for paths with Cherokee. Still a little buggy. * src/Mono.FastCgi/Logger.cs: Add support for writing to the standard output. * src/Mono.WebServer.FastCgi/ConfigurationManager.xml: Added new logging commands and reordered values. * src/Mono.WebServer.FastCgi/server.cs: Added support for setting the log level and outputing log events to the standard output. * src/Mono.WebServer/ApplicationManager.cs: Previous revision did a bad reverse implication (~web.config -> ~application) != (web.config -> application). Bad negation, bad. I've reworked the test again so now it requires both "Web.Config" and "Bin" (still case insensitive). Thanks to Daniel Nauck for point this out. 2007-08-15 Brian Nickel * src/Mono.WebServer.FastCgi/ApplicationHost.cs: Redirect requests from directories without slashes to directories with slashes, eg. /test -> /test/. Failure to do so caused some nastiness with paths. * src/Mono.WebServer.FastCgi/WorkerRequest.cs: Reorganize a bit and rework index checking to be case insensitive. * src/Mono.WebServer/ApplicationManager.cs: Rework application checking to look for Web.Config instread of bin, as applications require Web.Config to work on IIS. Use case insensitive checking and DirectoryInfo to improve checking. 2007-08-12 Brian Nickel * doc/index.html: Add explanation of request. * doc/request.png: Diagram of request. * src/Mono.FastCgi/SocketAbstractions/UnmanagedSocket.cs: Add wait handle to async operation. 2007-08-10 Brian Nickel * doc/linux/lighttpd.html: Added examples for restricting hosts and allowing PHP to execute normally. * doc/linux/abyss.html: Moved to new format, paths documentation. * src/Mono.FastCgi/SocketAbstractions/UnmanagedSocket.cs: Throw a proper SocketException if accept fails. * src/Mono.FastCgi/Server.cs: If error code is WSAEINVAL for Accept, stop the server. WSAEINVAL indicates that the socket is no longer listening, most likely because it has been closed. 2007-08-09 Brian Nickel * doc/linux/lighttpd.html: Update with docs on path mapping. * doc/linux/template.html: Tidy up. * doc/style.css: Add style for "ul". * src/Mono.WebServer.FastCgi/WorkerRequest.cs: Send a proper status line. Was sending HTTP status line instead of "Status" header. * src/Mono.WebServer.FastCgi/ConfigurationManager.cs: Print the default value and AppSettings name in help. * src/Mono.WebServer.FastCgi/server.cs: Don't add "/:." if the applications are defined. Instead print an error message and exit. ALSO ADDED svn:eol-style=native to .html and .cs files. 2007-08-09 Brian Nickel * doc/linux/index.html: Added header, moved warnings to doc/index.html * doc/linux/template.html: Added template for documentation. * doc/style.css: Added formatting for header. * doc/index.html: Added. Contains warnings and information. 2007-08-08 Brian Nickel * fastcgi-mono-server.in: * fastcgi-mono-server2.in: Use the mono executable found by Autoconf rather than hard coding. * doc/linux/lighttpd.html: s/asd/axd/ I had missed one. * src/Mono.WebServer.FastCgi/Responder.cs: Respond with a 500 error if the correct application could not be found. * src/Mono.WebServer.FastCgi/WorkerRequest.cs: Implement index file detection if a directory is encountered. This is necessary if FastCGI is managing whole directories. Code borrowed from XspWorkerRequest. * src/Mono.WebServer.FastCgi/server.cs: Return null in GetApplicationForPath rather than throwing a NullValueException. * src/Mono.WebServer/MonoWorkerRequest.cs: Don't double close the handle. * src/Mono.WebServer/ApplicationManager.cs: Don't check that the file exists. This stops an application host from being created with requests to non-existent files. Also cleaned up automapping, as it was failing for paths like "/test//". 2007-08-07 Brian Nickel * doc/linux/abyss.html: Added "Tested on" information. * doc/linux/nginx.html: Filled in. * doc/linux/cherokee.html: Added "Tested on" information. * doc/linux/index.html: Added warning about the risks associated with only redirecting extensions. * src/Mono.WebServer.FastCgi/WorkerRequest.cs: Send all the headers together. Sending them one at a time caused Nginx to occasionally flip out. This also reduces the amount of network traffic, taking up very little extra memory per request. 2007-08-06 Brian Nickel * doc/linux/abyss.html: Removed warning about ASP.NET 2.0 * doc/linux/index.html: Removed "To Be Added." * src/Mono.WebServer.FastCgi/WorkerRequest.cs: Send status 200 if successful. Abyss Web Server apparently sends a failure status if the file doesn't exist and the status isn't set. This messes things up for JavaScript produced by WebResource.axd. 2007-08-06 Brian Nickel * doc/linux/abyss.html: Update with new info about ASP.NET 2.0 * src/Mono.FastCgi/SocketAbstractions/ISocketAbstraction.cs: * src/Mono.FastCgi/SocketAbstractions/UnmanagedSocket.cs: * src/Mono.FastCgi/SocketAbstractions/StandardSocket.cs: * src/Mono.FastCgi/Server.cs: Removed "Blocking". It was only used to disable blocking on the listening socket, which was unneccessary. Disabling blocking on the UnmanagedSocket caused significant problems with Abyss. 2007-08-04 Brian Nickel * src/Mono.WebServer.FastCgi/WorkerRequest.cs: Improved detection of host names, addresses, and ports. 2007-08-03 Brian Nickel * src/Mono.WebServer.FastCgi/server.cs: Removed `configmanager ["nonstop"] = "True";' as it is no longer necessary. 2007-08-03 Brian Nickel * doc/linux/lighttpd.html: Explain disabling local checking. * doc/linux/abyss.html: Started documenting. * doc/linux/cherokee.html: Remove "/nonstop" argument. * src/Mono.FastCgi/Requests/Request.cs: Send data in records 0x7fff bytes or less rather than 0xffff bytes or less. Abyss skipped over this packet. (Other servers may do the same.) I've noticed similar behavior from Cherokee where it sends smaller than the maximum size. 2007-08-03 Brian Nickel * src/Mono.FastCgi/Structures/BeginRequestBody.cs: * src/Mono.FastCgi/Structures/Record.cs: * src/Mono.FastCgi/Structures/NameValuePair.cs: * src/Mono.FastCgi/SocketAbstractions/UnixSocket.cs: * src/Mono.FastCgi/SocketAbstractions/UnmanagedSocket.cs: Use "Strings". * src/Mono.FastCgi/Connection.cs: Make sure to close the socket and release the buffers at the end of "Run" if there are no requests pending. * src/Mono.FastCgi/Mono.FastCgi.mdp: Target 2.0 runtime. * src/Mono.FastCgi/Logger.cs: Add "Debug" level. Use "Strings". * src/Mono.FastCgi/Server.cs: * src/Mono.FastCgi/Requests/Request.cs: Use "Strings". Don't throw exceptions when warnings would suffice. * src/Mono.FastCgi/Requests/ResponderRequest.cs: Use "Strings". * src/Mono.FastCgi/Strings.cs: * src/Mono.FastCgi.sources: Add Strings.cs to hold all message strings. The strings will later be moved into a resource so internationalization can take place. * src/Makefile.am: Define "NET_2_0" for all 2.0 assemblies. * src/Mono.WebServer.FastCgi/Responder.cs: * src/Mono.WebServer.FastCgi/WorkerRequest.cs: Use new API w/ generics. * src/Mono.WebServer.FastCgi/Mono.WebServer.FastCgi.mdp: Target 2.0 runtime. * src/Mono.WebServer.FastCgi/ConfigurationManager.cs: Only show warnings when parsing the command line. Simply reject bad formats and arguments. * src/Mono.WebServer.FastCgi/ConfigurationManager.xml: * src/Mono.WebServer.FastCgi/server.cs: Replaced "/nonstop" with "/stopable" and added message to output. Not all FastCGI implementations keep standard input and output open or allow arugments. This keeps the number of required arguments down to zero. * src/Mono.WebServer/MonoWorkerRequest.cs: Use new Certificate properties when targeting 2.0 runtime. * src/Mono.WebServer/XSPWorkerRequest.cs: Use new Dns methods and properties for 2.0 runtime. * src/Mono.WebServer/Mono.WebServer.mdp: Target 2.0 runtime. * src/Mono.WebServer/XSPApplicationHost.cs: Use new Certificate properties when targeting 2.0 runtime. * src/Mono.WebServer/IWebSource.cs: Updated documentation for 2.0 compiler. * src/Mono.WebServer.FastCgi.sources: Added /r:System.Configuration for 2.0 compiler. * src/Mono.WebServer.sources: Added /r:System.Configuration for 2.0 compiler. 2007-08-01 Brian Nickel * doc/linux/lighttpd.html: * doc/linux/cherokee.html: Replace .asd with .axd. Oops. 2007-08-01 Brian Nickel * doc/linux/cherokee.html: Trivial change. * src/Mono.FastCgi/Structures/Record.cs: Remove "using System.Collections" as it doesn't. * src/Mono.FastCgi/Structures/NameValuePair.cs: Use generics when targetting .NET 2.0. * src/Mono.FastCgi/Connection.cs: Use generics when targetting .NET 2.0. * src/Mono.FastCgi/SocketAbstractions/ISocketAbstraction.cs: Update docs to avoid warning when targetting 2.0. * src/Mono.FastCgi/Mono.FastCgi.mdp: Target 2.0. * src/Mono.FastCgi/Server.cs: Use generics when targetting .NET 2.0. * src/Mono.FastCgi/Requests/Request.cs: Use generics when targetting .NET 2.0. * src/Mono.FastCgi/Requests/ResponderRequest.cs: Remove "using System.Collections" as it doesn't. * src/Mono.FastCgi.sources: Correct FCGI_DEPS. Wasn't pointing to correct files. * src/Makefile.am: Define "NET_2_0" for Mono.FastCgi2.dll 2007-07-31 Brian Nickel * src/Mono.FastCgi/Structures/Record.cs: It ends up I've been doing Send and Receive badly. I should keep sending and keep receiving until the full body of content has been transmitted. This completely resolves some issues I was having when sending and receiving huge files. * src/Mono.FastCgi/Connection.cs: Update for new exceptions. * src/Mono.FastCgi/SocketAbstractions/ISocketAbstraction.cs: Modify Send/Receive methods. * src/Mono.FastCgi/SocketAbstractions/UnmanagedSocket.cs: Implement new Send/Receive methods. * src/Mono.FastCgi/SocketAbstractions/StandardSocket.cs: Implement new Send/Receive methods. 2007-07-31 Brian Nickel * doc/linux/cherokee.html: Added documentation. * doc/linux/index.html: Updated for changes. * src/Mono.FastCgi/Structures/Record.cs: Log the sending of the record. * src/Mono.FastCgi/Structures/NameValuePair.cs: Log params as they are parsed. * src/Mono.FastCgi/Connection.cs: Tweek the logging of received records not to include whether the request is new or not. * src/Mono.FastCgi/SocketAbstractions/UnmanagedSocket.cs: Trivial formatting. * src/Mono.FastCgi/Server.cs: Reformat logging a bit. * src/Mono.FastCgi/Requests/Request.cs: Include common features of a request (Host, Port, Path, Physical Path). This could be used in the future to handle irregularities in clients. * src/Mono.WebServer.FastCgi/Responder.cs: Wrap new properties in Mono.FastCgi.Request. * src/Mono.WebServer.FastCgi/WorkerRequest.cs: Use new properties in Mono.WebServer.FastCgi.Responder. * src/Mono.WebServer.FastCgi/server.cs: Correct the error message for bad socket types. 2007-07-30 Brian Nickel * doc/linux/lighttpd.html: Tidied up. Removed disclaimer. Added missing extension. * src/Mono.FastCgi/Structures/Record.cs: Provide better messages in exceptions. * src/Mono.FastCgi/Connection.cs: Give the message from the exception if the record fails. * src/Mono.FastCgi/Logger.cs: Use better open method for files. Flush every time for now. * src/Mono.FastCgi/SocketAbstractions/UnmanagedSocket.cs: Don't send/recv if not connected, and mark as disconnected if sent bytes != expected bytes. Was getting some weird results with Lighttpd when cancelling a bunch of requests in a row. * src/Mono.WebServer.FastCgi/ConfigurationManager.xml: Add support for log file. Comment out unused features. * src/Mono.WebServer.FastCgi/server.cs: Add "unix" socket. Accidentally specified "file" instead. Added support for log file. * src/Mono.WebServer/ApplicationManager.cs: Stop looking for subdirectories when creating a application if the app contains a "bin" directory. 2007-07-29 Brian Nickel * fastcgi-mono-server.in: * fastcgi-mono-server2.in: Read environment variables because not all programs let you set command line options. It's a dirty trick, but MONO_FCGI_SOCKET=tcp becomes "/socket=tcp", etc. A better solution could probably be rolled into the configuration manager in the future. * configure.ac: Change mono required to 1.1.9. I don't know what is required, so let's not make anything major mandatory just yet. * doc/linux/myserver.html: * doc/linux/litespeed.html: * doc/linux/lighttpd.html: * doc/linux/abyss.html: * doc/linux/apache.html: * doc/linux/nginx.html: * doc/linux/sun.html: * doc/linux/cherokee.html: * doc/linux/hiawatha.html: * doc/linux/zeus.html: * doc/linux/caudium.html: * doc/linux/ibm.html: * doc/linux/index.html: * doc/linux/roxen.html: * doc/mono-bg.png: * doc/style.css: * doc/mono-logo.png: The start of something beautiful. Documentation. * src/Mono.FastCgi/SocketFactory.cs: * src/Mono.FastCgi/SocketAbstractions/UnixSocket.cs: Added a Unix socket. * src/Mono.FastCgi/Mono.FastCgi.mdp: * src/Mono.FastCgi.sources: Added UnixSocket.cs. * src/Mono.WebServer.FastCgi/server.cs: If the socket is a pipe, set "nonstop" because there is no console. 2007-07-27 Brian Nickel * fastcgi-mono-server.in: * fastcgi-mono-server2.in: Wrapper scripts to install into /usr/bin * src/AssemblyInfo.cs.in: * Mono.FastCgi.snk: Assembly signing. * src/Mono.FastCgi/AssemblyInfo.cs: * src/Mono.WebServer/AssemblyInfo.cs.in: * src/Mono.WebServer.FastCgi/AssemblyInfo.cs: Updated not to conflict with src/AssemblyInfo.cs * src/bin/fastcgi-mono-server2.exe.config: * src/bin/fastcgi-mono-server.exe.config: Added/Updated for both verrsions. * src/Mono.WebServer/ApplicationManager.cs: Remove output when paths are added. * autogen.sh: * configure.ac: * Makefile.am: * src/Makefile.am: * src/Mono.FastCgi.sources: * src/Mono.WebServer.sources: * src/Mono.WebServer.FastCgi.sources: * AUTHORS: * NEWS: * README: New files for autotools. 2007-07-23 Brian Nickel * REARRANGED DIRECTORIES: Added src/ and reorganized source folders into it. 2007-07-20 Brian Nickel * Mono.FastCgi/UnixSocket.cs: DELETED. * bin/fastcgi-mono-server.exe.config: Moved. Don't automatically add an application for "/:.". * Mono.WebServer.FastCgi/ConfigurationManager.xml: * Mono.WebServer.FastCgi/server.cs: Add support for autodetection argument. * Mono.WebServer.FastCgi/Responder.cs: * Mono.WebServer/XSPApplicationHost.cs: Change for new API. * Mono.WebServer/ApplicationManager.cs: Add support for automatic application detection. When searching for an application, the page's virtual and real path are compared to find the root and if no matching application with that root is detected, a new one will be created. * Mono.FastCgi/Mono.FastCgi.mdp: * Mono.WebServer.FastCgi/Mono.WebServer.FastCgi.mdp: * Mono.WebServer/Mono.WebServer.mdp: Changed target directory. 2007-06-29 Brian Nickel * Mono.FastCgi/Structures/NameValuePair.cs: Was returning zero for long values. Broke reading. * Mono.FastCgi/SocketFactory.cs: Added pipe socket. * Mono.FastCgi/SocketAbstractions/UnmanagedSocket.cs: Throw an exception if the socket isn't bound. * Mono.WebServer.FastCgi/AssemblyInfo.cs: Remove extra "(c)" * Mono.WebServer.FastCgi/ConfigurationManager.xml: New and improved format. * Mono.WebServer.FastCgi/ConfigurationManager.cs: Added. * Mono.WebServer.FastCgi/Mono.WebServer.FastCgi.mdp: Added new file. * Mono.WebServer.FastCgi/server.cs: Use ConfigurationManager. * Mono.WebServer.FastCgi/fastcgi-mono-server.exe.config: Change defaults. 2007-06-24 Brian Nickel * Mono.FastCgi/Structures/Record.cs: Added support for sending and receiving on buffers to reduce the amount of memory allocation work. * Mono.FastCgi/Structures/BeginRequestBody.cs: Use new buffering API. * Mono.FastCgi/Structures/EndRequestBody.cs: Tidy up source a bit. * Mono.FastCgi/Structures/UnknownTypeBody.cs: ADDED. Implemented for FastCGI unknown type record. * Mono.FastCgi/Connection.cs: Use buffers to process data. * Mono.FastCgi/SocketAbstractions/ISocketAbstraction.cs: Use full arguments on Send and Receive. * Mono.FastCgi/SocketAbstractions/UnmanagedSocket.cs: ADDED. Initial work on standard FastCGI socket. * Mono.FastCgi/SocketAbstractions/StandardSocket.cs: Extend new methods. * Mono.FastCgi/Mono.FastCgi.mdp: Automatic changes. * Mono.FastCgi/Server.cs: Added buffer management similar to Mono.WebServer.BaseRequestBroker. * Mono.FastCgi/Requests/Request.cs: Use buffers. * Mono.FastCgi/Requests/ResponderRequest.cs: Replace "language" attribute with "lang" in "code" element. * Mono.WebServer.FastCgi/ConfigurationManager.xml: Initial work on configuration management. * Mono.WebServer.FastCgi/Mono.WebServer.FastCgi.mdp: Automatic changes. * Mono.WebServer.FastCgi/fastcgi-mono-server.exe.config: Initial work on config file. * Mono.WebServer/MonoWorkerRequest.cs: Documentation. * Mono.WebServer/Tracing.cs: Documentation. * Mono.WebServer/BaseRequestBroker.cs: Documentation. * Mono.WebServer/BaseApplicationHost.cs: Documentation. * Mono.WebServer/LingeringNetworkStream.cs: Documentation. 2007-06-19 Brian Nickel * Mono.WebServer/ApplicationServer.cs: Use the WebSource support in ApplicationManager. * Mono.WebServer/ApplicationManager.cs: Add support for WebSource so the request broker gets assigned correctly in XSP implemenations. * Mono.WebServer/IWebSource.cs: Documented. * Mono.WebServer/IApplicationHost.cs: Documented. 2007-06-19 Brian Nickel * FastCgi/Mono.WebServer.FastCgi/Responder.cs: * FastCgi/Mono.WebServer.FastCgi/WorkerRequest.cs: Fix for new API. 2007-06-19 Brian Nickel * Mono.FastCgi/Structures/BeginRequestBody.cs: * Mono.FastCgi/Structures/EndRequestBody.cs: * Mono.FastCgi/Structures/Record.cs: * Mono.FastCgi/Structures/NameValuePair.cs: * Mono.FastCgi/Connection.cs: * Mono.FastCgi/Logger.cs: * Mono.FastCgi/SocketFactory.cs: * Mono.FastCgi/SocketAbstractions/ISocketAbstraction.cs: * Mono.FastCgi/SocketAbstractions/TcpSocket.cs: * Mono.FastCgi/SocketAbstractions/StandardSocket.cs: * Mono.FastCgi/Server.cs: * Mono.FastCgi/Requests/Request.cs: * Mono.FastCgi/Requests/ResponderRequest.cs: Finished documenting Mono.FastCgi namespace. Added 1 FIXME (implement UnknownType). * Mono.WebServer/MonoWorkerRequest.cs: Documented. * Mono.WebServer/Mono.WebServer.mdp: Compile documentation. 2007-06-15 Brian Nickel * Mono.FastCgi/Logger.cs: Made singleton to take advantage of destructor. Documented completely. 2007-06-14 Brian Nickel * Mono.FastCgi/Structures/Record.cs: Use Mono.FastCgi.Socket instead of ISocketAbstraction. * Mono.FastCgi/Connection.cs: Use ArrayList instead of HashTable. Properly case private fields. Check that socket is connected before writing. * Mono.FastCgi/SocketFactory.cs: ADDED. This class creates sockets, hiding the internal types used for creating sockets. (This will be very helpful for refactoring later.) * Mono.FastCgi/SocketAbstractions/ISocketAbstraction.cs: Change to abstract Socket class. This is Marek's idea to simplify refactoring later. * Mono.FastCgi/SocketAbstractions/TcpSocket.cs: Make internal. * Mono.FastCgi/SocketAbstractions/StandardSocket.cs: Make internal. * Mono.FastCgi/Mono.FastCgi.mdp: Automatic changes. * Mono.FastCgi/Server.cs: Make things nice and pretty. Regions, XML documentation, all that jazz. * Mono.FastCgi/Requests/Request.cs: Add IsConnected. * Mono.FastCgi/Requests/ResponderRequest.cs: Remove System.Net.Sockets * Mono.WebServer/MonoWorkerRequest.cs: Remove unnecessary protected properties. * Mono.WebServer/Mono.WebServer.mdp: Automatic changes. * Mono.WebServer/ApplicationServer.cs: Make subclass of ApplicationManager. Move management functionality to ApplicationManager. * Mono.WebServer/BaseApplicationHost.cs: Check before casting broker as BaseRequestBroker. * Mono.WebServer/ApplicationManager.cs: ADDED. This removes application management logic from Application server. It removes the dependency on WebSource. * Mono.WebServer/IApplicationHost.cs: Use ApplicationManager. * Mono.WebServer.FastCgi/ApplicationHost.cs: Use BaseApplicationHost again as it is no longer tied to BaseApplicationBroker. * Mono.WebServer.FastCgi/Responder.cs: Expose IsConnected. * Mono.WebServer.FastCgi/WorkerRequest.cs: Support IsClientConnected (). * Mono.WebServer.FastCgi/Mono.WebServer.FastCgi.mdp: Automatic changes. * Mono.WebServer.FastCgi/server.cs: Use ApplicationManager. 2007-06-14 Brian Nickel * ADDED: Mono.WebServer (local copy) 2007-06-13 Brian Nickel * MOVED: FastCgi/FastCgi -> FastCgi/Mono.FastCgi 2007-06-13 Brian Nickel * FastCgi/FastCgi/FastCgi.mdp: Build as library. * FastCgi/FastCgi/AssemblyInfo.cs: Added title and description. * FastCgi/FastCgi/Structures/BeginRequestBody.cs: Changed namespace. * FastCgi/FastCgi/Structures/EndRequestBody.cs: Changed namespace. * FastCgi/FastCgi/Structures/Record.cs: Use ISocketAbstraction instead of Socket. * FastCgi/FastCgi/Structures/NameValuePair.cs: Changed namespace. * FastCgi/FastCgi/Connection.cs: Use ISocketAbstraction instead of Socket. * FastCgi/FastCgi/Logger.cs: Don't constantly flush and don't throw an exception if no output file was specified. * FastCgi/FastCgi/SocketAbstractions/ISocketAbstraction.cs: Added. Wraps around socket implementations. * FastCgi/FastCgi/SocketAbstractions/TcpSocket.cs: Added. Handles standard TCP sockets. * FastCgi/FastCgi/SocketAbstractions/StandardSocket.cs: Added. Handles managed sockets. * FastCgi/FastCgi/Main.cs: Deleted. Project is now a library. * FastCgi/FastCgi/Servers: Deleted. Servers have been refactored to handle different socket types rather than a different socket superclass for each type of socket. * FastCgi/FastCgi/Server.cs: Moved from Servers/ * FastCgi/FastCgi/Requests/Request.cs: Include data length in SendStreamData to support data passed from a buffer. * FastCgi/FastCgi/Requests/ResponderRequest.cs: Don't close the request if the appStatus == int.MinValue. This affords the IResponder the opportunity to create its own thread. * FastCgi/FastCgi.mds: Automatic changes. * AND THE COOL PART: * FastCgi/Mono.WebServer.FastCgi/AssemblyInfo.cs: * FastCgi/Mono.WebServer.FastCgi/WebSource.cs: * FastCgi/Mono.WebServer.FastCgi/ApplicationHost.cs: * FastCgi/Mono.WebServer.FastCgi/Responder.cs: * FastCgi/Mono.WebServer.FastCgi/WorkerRequest.cs: * FastCgi/Mono.WebServer.FastCgi/Mono.WebServer.FastCgi.mdp: * FastCgi/Mono.WebServer.FastCgi/server.cs: Added. This is a web server implementation built on top of Mono.WebServer and Mono.FastCgi providing ASP.NET support. 2007-06-08 Brian Nickel * FastCgi/Structures/NameValuePair.cs: Use new Logger.Write for better output. * FastCgi/Connection.cs: Reject multiplexed requests if disabled. Rename Start to Run. Add Stop to end the connection properly. * FastCgi/Logger.cs: Incorporate the string formatter into "Write". * FastCgi/Main.cs: Update for API changes. * FastCgi/Servers/Server.cs: Use code from Mono.WebServer.ApplicationServer to allow the server thread to run in the background. Fix some bugs which were causing the server to hang. * FastCgi/Requests/Request.cs: Add properties: Server and RequestID. * FastCgi/Requests/ResponderRequest.cs: Check if input_data == null. Use QueueUserWorkItem when multiplexing. 2007-06-07 Brian Nickel * FastCgi/Structures/NameValuePair.cs: Reworked NameValuePair to support a user specified encoding. Moved the parsing of collection to internal "static IDictionary FromData (byte [] data)". Added support for rendering a collection. * FastCgi/Connection.cs: Added support for rejecting requests if too many are occuring simulaneously. Added support for "FCGI_GET_VALUES" requests. Inform the server when a request has been completed. Prevent accepting requests if the maximum number of requests has been reached. * FastCgi/Main.cs: Use new server specific API for registering the responder. * FastCgi/Servers/Server.cs: Added support for limiting connections and requests, and enabling/disabling multiplexing. Added support for FastCGI style server.GetValues. Prevent accepting if the maximum number of connections has been reached. Moved responder registration from ResponderRequest to allow for per-server responders. * FastCgi/Requests/Request.cs: Replaced name/value parsing with NameValuePair.FromData. * FastCgi/Requests/ResponderRequest.cs: Moved responder registration to Server. 2007-06-04 Brian Nickel * FastCgi/Responders/: Renamed to "Requests". * FastCgi/FastCgi.mdp: Automatic changes. * FastCgi/Structures/NameValuePair.cs: Replaced TryParse() with a constructor and switched to System.Encoding.Default. * FastCgi/Structures/BeginRequestBody.cs: * FastCgi/Structures/EndRequestBody.cs: * FastCgi/Structures/Record.cs: * FastCgi/Connection.cs: * FastCgi/Logger.cs: * FastCgi/Main.cs: * FastCgi/Servers/TcpServer.cs: * FastCgi/Servers/Server.cs: * FastCgi/Requests/Request.cs: * FastCgi/Requests/ResponderRequest.cs: Applied Mono Coding Guidelines.