- library loader - make a module loader - string library and portability layer - snprintf: - Solaris 8, linking trouble with _eprintf and ilbstdc++ (the real problem is we use the g++ linker call for pure c libraries, not really good) => de-C++-ify the makefile system - find solution for char *, TCHAR unicode and friends - threading - handle detached and joinable threads correctly on Windows - add conditional variables (thread + mutex + conditional will suffice for now) - core porting - PATH_MAX defined in a hard way or fetched from limits.h, not good, add probing for fpathconf and friends and test on all platforms again - gettext and libintl: don't make platform flags for this, check library version and set things according to 0.17, 0.16.3 etc., but anyway, the library is a little bit broken in older versions - localization of gengetopt generated code? ok, it's just an example (testd), but we should have an idea about this, maybe extend gengetopt? - see discussions about 'gettext' in 'getgetopt-user' mailing list - see HelenOS comment on getopt in libc: Interesting internationalization | Echoreply.txt - have a look at alternatives: - popt is localized - argtable is not, but is very simple - also gengetopt has a stub getopt/getopt_long which can be i18n-ized - merging of mc files (we want to export only the MC file so it can be merged) - daemon - check against things done in other libraries - POCO ServiceApplication - libdaemon - do a security survey - block signals around atomar pipe reads and writes - have a good look at the openradius server, there seem to be important points there to handle in a daemon - OpenBSD 4.2 croaks about C++ style gengetopt prototypes - logger - rewrite and clean up, make logging channels, make logging re-entrant (error in one channel should be logged on all other available channels) - local localized error handling (GetLastError and strerror_r strings) - Windows console logger: - why is it always English? what settings influence the language choosen? - Windows event logger - audit event log types, especially the effects on syslog and the upper abstraction layer - replace the create_wolfmsg.pl with something more robust and not Perl - make it possible to merge mc files (for appliation development) - parameter list dilemma of typed one (classic C) %s, %d versus positional one in Windows %1 %2 (this is a stub implementation for now) => requires a special snprintf which doesn't build one result string, but results the mapped sub-strings, so we can pass them to ReportEvent - there is an Windows Event Log book around which is quite big, find out if it's still available - the Windows messages files are avaiable (where?), should the standard messages be used? And for what? - should we split the category and the message DLL? There also GUID DLLs for resourcen, what can they be used for? - Seen links with the actual event number in the event logger with the possibility to send it directly to a bug system (HTML form). This would be great to have! - makefiles - GNU make - currently we are following the "recursive makes considered harmfull" :-) - distclean calls clean again recurively. This causes already deleted dependencies to be regenerated - do shared libraries properly - add uninstall - modularize more - get platform.mk and shell in sync, make sure the user can set the variables there manually if we wants to - split things for different compilers and make them individually handleable - check out other makefile systems: - ION-3 - openradius - POCO - problems: - OpenBSD gmake: ../../makefiles/depend.mk:62: no file name for `-include' - make -j test with missing testd, some dependencies are missing - test target calls all target, this should not be necessary - Windows: - how to generate dependencies and include them in the NMAKE files? - how to add the generation of a setup.exe or MSI? - Porting - the HAVE_XXX flags could produce a name clash with some autoconf'ed software/library we will be using in production code. Rename to WOLF_SYS_HAVE_XXX or similar - feedback to the c99 snprintf guy, errors like: - -1 instead of buffer size on boffer overflow - extern errno in mutli-threaded code - add a lot more tests - %zd and similar pointers: make format macros like PRIdPTR which get mapped to %ld. But what if snprintf could do a %zd and fprintf not? - Windows service - option parsing on windows? - have a generic message/po-file extractor, the perl script here is an evil copy! - handle pause/continue - test long-duration startup and shutdown phases with checkpoint_hints