POPular TODO list ----------------- to do for one of the next releases: ----------------------------------- * certificate chains * log reopen pserv? * startup pserv and pproxy very similar * better documentation for ringd usage * init scripts don't use ringd properly, there should be some 'update' scripts or so that do a seemless upgrade * maybe keep connection between ringd and pproxy open to detect dead pproxy from ringd? * document problem with child processes keeping bound sockets open even if refcount fell back to zero when parent quit * look at RFC3206 and maybe implement it * test mailboxes (test flag or maybe server-side namespaces?) for automatic testing * maybe 'pdm reload' should really reload the module? * why are processes dying when the PDM modules are overwritten? * case insensitive match should be configurable for PDM modules * try --export-dynamic * unix domain socket fd passing needs some cleanup work * put more assertions in the code (check for NULL strings etc) * have more demo config files for beginners on one host, intermediate and full blown with all features * think about logging. maybe logging server? binary logging? * a pdm module should be able to reject a user, because he is locked or something. this should not interfere with the ability of master password owners to connect to his mailbox!? * validity of ip number in 'localip' should be checked when it is set * check zero_bytes stuff * close all fds at start of daemons, use getdtablesize where available * mailbox sort only sorts timestamp. maybe it should sort stuff after that, too * script for generating big test mails? * on solaris a shared lib for db2 is needed, it doesn't work with a static lib. why is that? * make install doesn't 'strip'. is this supposed to be that way? * pstatus should allow dynamic size of max_sessions * more pdm modules: exec? net? * logfile reopen should be possible through pcontrol (currently only SIGHUP) * dump command in pcontrol to dump current config to a file, that can later be read by pcontrol * check that fallback is using POP3 protocol * take help texts out of pcontrol, they don't belong there. Maybe man pages? Maybe txt file read at runtime? * allow port names (from /etc/services) in addition to port numbers * think about logging in modules. at the moment they are only using debug logging * there are some statistics counters using unsigned long, which is only garantueed to be 32 bit. That might not be enough. Use long long? Maybe there are some other places, where int is not big enough. Check it! * fix mess with all sorts of different buffer and array sizes (MAXBUF, MAXLEN_*, dynamic, ...) * maybe --rundir option for pcontrol and pstatus? * new config var: failserver error/fake, failcheck error/fake * the io stuff needs some rethinking and -writing Bigger projects that might need a while or might never be done: --------------------------------------------------------------- * SNMP support * access to deleted mailboxes? (If they are not really deleted, but moved away.) * support for mailbox migration? * more statistics, time measurements, etc. * denial-of-service protection. Extra daemon counting connections etc.? * chroot support? (For pserv all disks must be mounted in chroot.) * new directory layout for mailboxes: - Use dot-stuffed format on disk - Use common tmp directory for delivery to all mailboxes on one partition? - Use different names for new and cur files instead of directories? * TLS support - test compile w/o USE_TLS * use TCP_CORK? * use sendfile()? (this would need a dot-stuffed on the disk) * stand alone pop3 server that combines pproxy and pserv * bulletin board feature for pserv * history and TAB expansion support in pcontrol * the first configuration after pserv or pproxy has started could be done by a pcontrol process started by the server * docbook2man always uses (1) for manpages instead of the real section. * log file check scripts und statistics scripts would be nice * figure out what else libtool can do for me * delivery: there should probably be a library for delivery which can be used by several programs. Which programs would that be? * man pages for pdm modules? * do some work on pclean script * is the whole thing 8bit clean? check for places where a 0-byte or a strange char in a filename or something like that might break the program * calculate bytes/s in pproxy/pserv and put them in state file * work on perl setup-check script * IPv6 support