-- -- TODO -- -- This is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2, or (at your option) -- any later version. -- -- This software is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this package; see the file COPYING. If not, write to -- the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -- Boston, MA 02111-1307, USA. -- This file lists all the things we would like to add in the future. Bugs are not listed here; for a list of all known bugs (fixed and unfixed) have a look at the file BUGS. (completed tasks are indented one tab) - Prefix the #define's in 'svzconfig.h' by 'SVZ_' to avoid clashes with other applications. - Minimize memory consumption of coservers. - Find out how to unload a shared library on MacOS. - Keep track of network interface changes. - Make some of the configure-time servers available dynamically at run-time. - Let the user create network device bindings. - Allow INADDR_ANY bindings again with all consequences. - Resolve libcoserver problem (some linkers swallow syms because they are not needed in libserveez). - Document compilation hints (--disable-shared, static guile, ...) - Runtime check for sendfile() (4 vs 7 args) in configure script. - How can a self connected Gnutella socket find out its port configuration for sending push requests and replies? - Make http-cache faster (in fact, faster than the fs). Use other LRU detection. - Remove SOCK_MAX_ID limit. - Control proto 'stat id' should print socket-type specific info only. - Restartable (automatically) coservers (ident dies on aWCS mass test). - Allow implementing servers in Guile. - Convince the Guile people to accept patches for Windows compatibility. - Write a replacement for the inetd. - Make protocol detection limits / timeouts configurable. - Create a logo for Serveez. - Write an identd. - Define a CLF-compatible default http logfile format and make it being used. - Rename the 'local-ip' part of port configurations to some sane name. - Implement a DNS server for home networks. - Implement a DNS client. - Make Serveez embeddable (create libserveez.{so,dll}). - Implement dynamic server loading capabilities. - Consider Guile as configuration file parser. - Implement another example for an UDP server (drop q3key). - Start a reverse nslookup for each HTTP client. - Allow "/~user/*" HTTP requests. - Using encryption for passwords (libcrypt). - Port forwarder for UDP and TCP. - Some solution for upcoming IPv6? - Support for ICMP sockets. - Content-Range implementation for Gnutella. - Content-Range implementation for HTTP. - Gnutella spider should share files. - Make HTTP CGI file extension associations configurable in Win32. - Add `--disable-poll' option. - For directory list: scandir, alphasort, qsort. - Make Serveez automatically compile Sizzle again. - Hack until WsControl tells the interface list on M$-Windows. - What to do if coserver delivers argument no longer valid? - Default file reader to avoid HTTP using its own callback. - Socket/protocol specific flags within socket structure. - Find out how the list of local interfaces works on different Unices. - Do something sensible when a coserver fails its job. - IP address representation must be unsigned long everywhere. - Rechain socket list to avoid starving of chain end. - Convert all protocols to new scheme. - Support local Sizzle installations (sizzle-config). - Local ip addresses for portcfg. - List of local ip addresses on supported systems. - HTTP: Make DefaultType and TypesConfig configurable. - Support for UDP sockets. - HTTP access logfile. - Implement a real nslookup coserver or integrate it in the reverse lookup coserver. - How to exec CGI scripts on Win32 that are not exe/com/bat? - HTTP cache reinit via control protocol. - Configuration file handling. - Wrapper for snprintf (not on Compaq Tru64 Dec). - Implement Internet Relay Chat (IRC) protocol. - Implement Internet Relay Chat (IRC) bouncer. - Set user and group id when executing CGI scripts. - HTTP directory listing when file is missing. - HTTP file cache. - Fix the problem with using Guile as a coserver. - Don't kick coservers on master server death. - Add configure switch `--enable-warning'. (1999-11-14/mgrabmue) - Add configure option for detecting whether usleep() is defined. - Add configure option for specifying max clients at configure time. (1999-11-14/mgrabmue) - Check client ids which come from the master server for validity. (1999-10-26/mgrabmue) - Implement a HTTP plugin for streaming sounds and pictures. - Make the protocol for coservers (e.g., ident) clean and document it. - Debug the aWCS protocol -- massclient with more than 4 threads kills the master server. (1999-10-20/raimi) - Only accept master server if first message is "6 \0". - Implement aWCS client detection. - Implement ident lookup (do in a fork()ed server or do it unblocking). - Implement reverse lookup for client IPs (use raimi's dns_reverse_lookup() after fork()ing). - Implement protocol detection. - Implement control protocol. - Add autoconf support for C and CPP flags. (1999-10-19/mgrabmue) - Add autoconf support for reverse host name lookup. (1999-10-19/mgrabmue) - Check select() for EINV and reap socket structure if happening. (1999-10-21/mgrabmue) - Catch and ignore SIGPIPE. (1999-10-21/mgrabmue) - Make a --disable-debug switch to shut up all log printings beyond errors and wrap all calls to log_printf(). (1999-10-21/mgrabmue) - Hold all socket structures in a hash table to speed up client lookup. (1999-10-21/mgrabmue) - socket.o: In function `sock_printf': /chat/serveez-0.0.2/src/socket.c:565: undefined reference to `vsnprintf' under cygwin - make the configure checking for vsnprintf working. (1999-10-21/mgrabmue) - Check whether libnsl is needed (like on Solaris). (1999-10-21/mgrabmue)