[Import HWS from fptools. Removed build system. bringert@cs.chalmers.se**20060927081434] [Fixed imports and old library uses to get it to compile. bringert@cs.chalmers.se**20060927081642] [Added cabal build system. bringert@cs.chalmers.se**20060927084510] [Cleaned up imports. Removed some oldish ifdefs. Use Data.map instead of FiniteMap. bringert@cs.chalmers.se**20060927085412] [Use Parsec from the hierarchical libraries instead of a local copy of an old parsec version. bringert@cs.chalmers.se**20060927092205] [Removed old import. bringert@cs.chalmers.se**20060927092510] [Removed some compat stuff for GHC 4 and 5 bringert@cs.chalmers.se**20060927092741] [Added README file. bringert@cs.chalmers.se**20060927093745] [Documentated some more changes in the README. bjorn@bringert.net**20060927105937] [Use the new Network.URI API, instead of the deprecated one. bjorn@bringert.net**20060927113722] [use ifdef DEBUG around import of Debug.Trace. bjorn@bringert.net**20060927113855] [Added a bunch of type signatures in Main. bjorn@bringert.net**20060927120842] [Set DocumentRoot to . in the config file. bringert@cs.chalmers.se**20060927090204] [Restore Simon's original DocumentRoot example. bjorn@bringert.net**20060927121829] [Detabified. bjorn@bringert.net**20060927194315] [Note detabification in README. bjorn@bringert.net**20060927194634] [Moved statFile to Util.hs bjorn@bringert.net**20060927195543] [Changed type of checkHostHeader to return Maybe Response, instead of Maybe (Config -> Response). bjorn@bringert.net**20060927195944] [Modularized. Cleaned up debugging stuff. bjorn@bringert.net**20060927231720] [Added some debugging stuff to figure out problems with getUserEntryForName. bjorn@bringert.net**20060927233539] [Added newline at end of Util.hs bringert@cs.chalmers.se**20060928115947] [Send content-length even is body is 0 bytes (but not if there is no body). bringert@cs.chalmers.se**20060928120705] [Use -DDEBUG and -threaded when compiling- bringert@cs.chalmers.se**20060928160543] [Made HTTPVersion a data type. Replace requestCmdString with a Show instance. bringert@cs.chalmers.se**20060928162608] [Moved squirt to Util. bringert@cs.chalmers.se**20060928170552] [Added not yet working CGI module. bringert@cs.chalmers.se**20060928170751] [First somewhat working version of Module.CGI. bringert@cs.chalmers.se**20060928181659] [Handle requests with content. bjorn@bringert.net**20060929014307] [Cleaned up Util string stuff. bjorn@bringert.net**20060929091541] [Replace commaSep with a full implementation of the RFC 2616 list format. bjorn@bringert.net**20060929093757] [Removed stray comment. bjorn@bringert.net**20060929093858] [Started working on PATH_INFO stuff. bringert@cs.chalmers.se**20060929142534] [Figure out path and path_info in CGI module. Doesn't yet owkr for relative document root. bjorn@bringert.net**20060929194943] [More debug loggin in CGI.findProg bjorn@bringert.net**20060929212516] [statFile now does not fail on ENOTDIR. bjorn@bringert.net**20060929212536] [Fixed relative document root and fixed path_info leading slash in CGI module. Only set PATH_INFO if non-empty. bjorn@bringert.net**20060929213752] [Avoid extra initial / with absolute documentroot. bjorn@bringert.net**20060929214747] [CGI: look at Location and Status headers. Remove PATH_INFO from SCRIPT_NAME. bjorn@bringert.net**20060929222611] [Fast path walk when components are not symlinks. bjorn@bringert.net**20061001201152] [Fix AccessLogger and ErrorLogger so that they don't loop when the log files cannot be opened. bjorn@bringert.net**20061001204114] [Fixe exception handling in loggers. bjorn@bringert.net**20061001215237] [Better error handling in CGI stderr logging thread. Use dropPrefix instead of dropInitial. bjorn@bringert.net**20061001221226] [Updated README for hws-cgi. Don't compile with -DDEBUG. bjorn@bringert.net**20061002002400] [Added Makefile and build instructions. bjorn@bringert.net**20061002002758] [Fixed clean target. bjorn@bringert.net**20061002004457] [clean target now deletes .o and .hi recursively. bjorn@bringert.net**20061002004919] [Changed default server root to . bjorn@bringert.net**20061002014037] [Added newline at end of Request.hs to get rid of warning. bringert@cs.chalmers.se**20061003192806] [Exit instead of looping if the server port is busy. bringert@cs.chalmers.se**20061004120455] [Flush error log channel before stopping error logger. bringert@cs.chalmers.se**20061004121502] [Close CGI input handle after writing request content. bjorn@bringert.net**20061004162818] [Spawn a thread that waits for CGI processes to exit. bjorn@bringert.net**20061004195438] [Moved basename to Util and renamed it to dirname. bjorn@bringert.net**20061004195746] [Keep client address and maybe hostname in ServerRequest. bjorn@bringert.net**20061004203504] [Removed some fixed FIXMEs. bjorn@bringert.net**20061004210331] [Keep server name in ServerRequest. Use that for CGI SERVER_NAME, to get ServerAliases right in redirects. bjorn@bringert.net**20061004225133] [Note that UseCanonicalName is not implemented, and set it to Off in the example config. bjorn@bringert.net**20061004230850] [Added debug target to Makefile. bjorn@bringert.net**20061005125637] [Cleaned up debugging prints. Use forkIO instead of forkIOIgnoreExceptions in timeout. bjorn@bringert.net**20061005125650] [Show seconds and microseconds in timeout. bringert@cs.chalmers.se**20061005142330] [Always set PATH_INFO in CGI, even if it is empty. bjorn@bringert.net**20061006174332] [Removed showIOError, since show already does the same thing. bjorn@bringert.net**20061006195408] [Add colon in catchAndLogError bjorn@bringert.net**20061006195740] [Started working on a new logger and header structure. bjorn@bringert.net**20061006231509] [New logging architecture. Added ServerState. Use common Headers module for requests and responses, based on that from Network.HTTP. bjorn@bringert.net**20061007125007] [Added missing copyright notices. bjorn@bringert.net**20061007130231] [Removed unused forkIOIgnoreExceptions. bjorn@bringert.net**20061007130257] [Removed unused error monad from Util. bjorn@bringert.net**20061007130440] [Do case-insensitive lookup of header names and use Map for it. bjorn@bringert.net**20061007131118] [Replace AccessLogFile and AccessLogFormat with CustomLog. bjorn@bringert.net**20061007132650] [Implement Listen, and remove Port. bjorn@bringert.net**20061007142519] [Don't use default listen if others where set in config. bjorn@bringert.net**20061007144343] [Use MVar to block main thread waiting for exceptions. bjorn@bringert.net**20061007145048] [Keep modules in server state. Allow modules to do IO to load. bjorn@bringert.net**20061007203128] [Added moduleName field. Reshuffled log stopping. bjorn@bringert.net**20061007204815] [Allow module loading to fail. Flush output handle after writing HereItIs message. bjorn@bringert.net**20061007231129] [Added first stab at a dynamic haskell interpreting module. bjorn@bringert.net**20061007231751] [DynHS small reorganization. bjorn@bringert.net**20061007232115] [Added working module config load hook. Used that to get ghc error messages to the error log. bjorn@bringert.net**20061008000750] [Added missing ServerRequest.hs. bjorn@bringert.net**20061016173129] [Move command-line options stuff to a separate module. Pas options around instead of using an IORef. bjorn@bringert.net**20061016182146] [Removed lots of unused imports. bjorn@bringert.net**20061016182717] [Cleaned up module loading code. bjorn@bringert.net**20061016183845] [Log logger start and stop in error log. bjorn@bringert.net**20061016190929] [Separate module description from module loading, to allow looking at module meta data before loading the module. bjorn@bringert.net**20061016191010] [Keep modules in the order that they were loaded. bjorn@bringert.net**20061016191234] [Removed unused trace stuff. Added debugging print after requests time out. bringert@cs.chalmers.se**20061017091456] [Replaced the timeout thread stuff that wasn't working right with a simple hWaitForInput. bjorn@bringert.net**20061019203529] [Merged with added debugging stuff. bjorn@bringert.net**20061019203747] [Added opt target. bjorn@bringert.net**20061019203806] [Fixed DynHS module to compile with new module API. bjorn@bringert.net**20061019211140] [Changed DynHS package dir to use ghc-6.6. bjorn@bringert.net**20061019215117] [Implemented LogLevel. Use ErrorLog for debug messages. bjorn@bringert.net**20061019232009] [Only look for log fils, config etc in server root if the path is relative. bjorn@bringert.net**20061019232434] [Added logInfo. Use that for some start-up output. bjorn@bringert.net**20061019232833] [CGI: moved some code to a mkCGIResponse, that can be used by DynHS. bjorn@bringert.net**20061024223504] [Changed Cabal file to work with GHC 6.6. bjorn@bringert.net**20061024223553] [Added unfinished Modules.DynHS.CGI. bjorn@bringert.net**20061024224230] [Get default server root and defacult config file from variables in command-line options error messages. bjorn@bringert.net**20061121222646] [Cleaned up and documented example config file. bjorn@bringert.net**20061121231030] [Added mime.types example from Apache. bjorn@bringert.net**20061121231122] [Changed default document root to . bjorn@bringert.net**20061121231143] [Allow mime types file path to be relative to the server root. bjorn@bringert.net**20061121231159] [Squashed no newline at end of file warnings. bjorn@bringert.net**20061121231537] [Cleaned up deps in cabal file. Change cabal version number. Synchronized makefile and cabal ghc flags. bjorn@bringert.net**20061121231942] [Changed Setup.hs to Setup.lhs in accordance with http://hackage.haskell.org/trac/hackage/ticket/100 bjorn@bringert.net**20061121232117] [Squash "Warning: `Map' is imported more than once" produced by GHC 6.4. bjorn@bringert.net**20061121232344] [Create log directory if it does not exist. bjorn@bringert.net**20061121233321] [Fleshed out README. bjorn@bringert.net**20061121235020] [Formatted README with hmarkup. bjorn@bringert.net**20061122000251] [Renamed cabal file to go with package name. bjorn@bringert.net**20061122001439] [Increased README header levels. bjorn@bringert.net**20061122001452] [Fixed bug in CGI module: stdin of the CGI process was not closed on GET requests. bringert@cs.chalmers.se**20061127162103] [ Include server root in --config option default value in usage info. bringert@cs.chalmers.se**20061205114828] [Bug in parser and invocation for CGIs fixed. Martin Huschenbett **20070129180619]