TODO list for MyServer.

*	Write MyServer chroot section into docs.
*	Update README.
*	Update INSTALL.
*	Add information about error codes to MyServer documentation.

*	Improve symlinks implementation

*	libidn support with mingw under windows, create devpaks

*	Windows firewall settings, using NSIS installer scripts

* Provide support for other ssl libraries
*	Provide support for GnuTLS
*	Provide support for Mozilla libnss

*	Search for linked lists an rewrite them in C++ using stl list class.

*	Security mechanism: SECURE ONE FILE with "security".
**	Add more functionality to "security".

*	Deny and allow ACCESS by ip, browser, etc.
**	Provide this functionality for "security".

*	Check all file and use C++ castings.
**	Rewrite strange functions to avoid so many castings.

*	Check http_dir.cpp for correct filesize displaying: mb, gb.
**	Add tb.

*	fix http_dir.cpp sort.
**	the default sorting mechanism for many files is strange.

*	Add sorting possiblity to http_dir.cpp:
**	name, date, size.

*	gcc-4.2 / gcc-4.3 testing

*	Rename myServerErr and others to MyServer.
*	Provide a good api (MYSERVER, mySERVER, myServer, etc.)
*	Fix some hardcoded errors in MyServer, they should now show directly to the new error files.
*	Use C++ static_cast<TYPE>... instead of the C like casting (TYPE).
*	LibXML compability (*) (at the moment MyServer uses LibXML2).

*	Documentation Improvements
**	Translation of the documentation to other languages.
**	XML based documentation scripting

*	Configurability.
**	Show http_dir: Last modified, etc (rewrite html code).
**	Provide Bity, KB, MB, GB, TB for the show http_dir.
**	Add XML tags in the configuration, like <directory show_type="MB">.
**	Cleanely compile MyServer with g++ -Wall (./configure CXXFLAGS="-Wall" CFLAGS="-Wall").
**	Possibility to set the logfile size in Byte, KB, MB, GB, TB (handle="KB" value="1024" or xml --> handle "MB" value="1").
**	Provide more command line options (also compile date, add more to --version), compiled in binaries, etc....

*	Port MyServer to other platforms.
**	Add MyServer to OpenBSD ports.
**	FreeBSD workaround / ports system.
**	MacOS X packages / binaries.
**	GNU Hurd workaround / improvements.
**	Packages for MyServer available on SF. (deb, rpm, slackware, openbsd)

*	Performance model.
**	Running test with lots of server load. 
**	Optimization of the performance model.

*	Packages.
**	Rpm and debs for Debian, Fedora Core and Mandrake.
**	Packages for Slackware.

*	Plugins system.
**	Use plugins for HTTP optional commands (other than what was implemented GET, POST...).
**	Plugins for HTTP data handler (other than what was implemented CGI, ISAPI, FastCGI...).
**	Filters on returned data. (*)

*	HTTP header control.
**	Allow or deny access based on HTTP header content.
**	Find a way to have that mechanism in the xml security file.
**	Modify the Request class to handle HTTP header data as in a map.
**	Abstract mechanism to allow/deny access not only from security files.

*	Control protocol improvements.
**	Allow access to log files. (*)

* Scripting support.
**	Define a script language to use (maybe libguile?).
**	Possibility to use scripts inside myserver.
**	Use them in security files.

*	MSCGI.
**	Add new methods to the manager class. (*)
**	Port to other languages, maybe not natively compiled. (*)
**	Implements other facilities to easily write CGI programs.
**	Implements a caching mechanism.

*	ISAPI.
**	Caching mechanism for modules.

*	Other.
**	Add access restriction by hostname / ip range / network range / browser client / etc.
**	Implement pipes support in the file class.(*)
**	Better handle of requests with chunked data.
**	HTTP "chunked" transfer coding support where not used.
**	Rewrite securestr.cpp.
**	Change socket IO model to use IOCPs instead for NT+ systems. (*)
**	Include the new options for logging. (*)
**	Implement ident for the common log format.
**	URL Rewriting.

*	GUI.
**	Update/improve GUI of configuration tool.
**	Tooltips. (*)
**	Automatic deployment.
**	Better graphics. (*)
**	Create SSL files trough the GUI. (*)
**	Port the GUI to GTK or QT.

*	Virtual hosts data.
**	Find and implement a faster way than the linear search in vhosts handling code.
**	Possibility to have virtual hosts data in external sources (other than virtualhosts.xml).
**	Support for NTFS junction point under windows.

*	Support for Frontpage extensions.
*	Design and implementation of a easy documents deployment mechanism interfaced with the rest of the OS.

*	Setuid and Setgid for CGI processes.
*	PHP Configuration Tool. 
*	SSI files support.
*	FTP server.
*	Support for JSP and servlets.
*	HTTP proxy server.
*	Embedded perl.
*	Other ideas?

(*) Not so important to have now.


Please consider to join the developing mailing list and ask there before start to work on something.
