summaryrefslogtreecommitdiff
path: root/TODOS
blob: af3a89e39a20000c7281374c1e6305e391c2abac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
- 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