                                                                 -*-outline-*-

* TODO List - Items listed in falling priority order - first most important

** Tool shakedown

Run stuff like flawfinder on the source, there's a lot of stuff that
needs fixing.

** Rename cofig.c?
Config.c and its header file config.h clashes with autoconf meaning
of config.h and does perhaps not need to be called config.c at all?
Maybe: configuration.{c|h} or settings.c or options.c?

** Update documentation.
The texinfo documentation works well with the info reader but the
PDF, PS and HTML outputs are really ugly.  We need to add more @ifinfo
and such to separate the output.

** liblockfile?
Maybe move to liblockfile?
... or steal good stuff?

** libdotconf?
Maybe move to libdotconf?
... or steal good stuff?

** Maybe debug should imply regular verbosity?
When issuing --debug on the command line that should
perhaps imply that ALL messages be printed out? Regardless
of weather --verbose has been given or not?

** Proper ICMP ping when DAEMON_TYPE set to PING.
Maybe add a new option to DAEMON_TYPE, the old PING option
should not be changed.  New option could be ICMP_PING which
should do just that, a proper ICMP ping.

** lib/conf/parser.y: Add YYERROR when conf_set() fails!
Must not continue to read conf file on error.

** Memory leaks ... 
libconf does a lot of strdup() into the parms array. It then puts
pointers to statics into some values (setup default values). Instead
these statics should also be strdup'ed and freed at end of
program/daemon! 

** --enable-old-config-parser
We have the old conf-file parser still in src/config.c it
could "easily" be made available as --enable-old-config-parser
for people who cannot make new qadsl versions play nice with
their old style conf-files.

** Add some intelligent way of "probing" for the login server.
I.e., add a list of known login servers perhaps?
Tiscali used to redirect all non-logged in requests through
a port to the login server. That could've been used in this
probe scheme ...

** Read all we need from the first login page, e.g., /sd/login.
It contains username= and password= phrases in the <input>
statements. All we need to build correct HTTP messages is
available at the ... of the ISP.

The most perfect way to limit the amount of configuration
data the user has to enter would be to only select the ISP
and enter username & password. Or enter the IP# or login
server name instead of the ISP name.

This is basically a very simplified HTML parser that only
looks for and parses <input ...> statements. Should be 
easy enough to implement.

Alpha code in vmlinux:~/> CVS. /Joachim 2004-01-20

** Always search for XXX for bisarre spots that need attention.
This is btw the preferred way to indicate stuff like this to others...

** Add support for getopt_long(), strndup(), strcasecmp() et. al.
If they don't exist on the platform. Put these things in lib/ and
make them be checked for by configure. (Autoproject adds such stuff I
think). 

Done: libost.a created for this purpose in lib/. Currently only
strcasecmp() will be added when not available on the system.

** Configure checks for sysconf and friends. Look at Zsh.
http://www.zsh.org/mla/workers/2000/msg03388.html


