                                                                 -*-outline-*-

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

* 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! 

* Failover lock file support
If PID_FILE does not exist or cannot be opened for reading/writing
we need to find out other ways to play. Do like we did in
config_locate(), only this time we need to be stubborn in more ways.

Perhaps this will spun a libfile library to handle all file access?
(I.e, both lock files and config files.)

Best way to handle the inevitable forever-search for a file to be
used for the lock is perhaps to not create a lock file if none can
be created. Thus we do not allow the daemon to be started!

Brilliant! :-)

Mostly done, needs testing. /Joachim 2004-01-20

* Be more stubborn when login fails ... 
Don't exit(1) at every possible juncture.
Redo/cleanup the netfunc/http code some more.

Mostly done. /Joachim 2004-01-20

* --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.

* Cleanup http.c
The name space in http.c is the old code. Should look better if
changed to http_server_init(), http_server_login() etc.

* 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.org 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...

* I18N support.
At least support Swedish with gettext, most of the time it is only
Swedes who use qadsl anyway.

* 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). 

See fetchmail package for cut-n-paste.

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

* Include Debian patches
Just like we have a qadsl.spec file (for .rpm's) we should also
include the debian stuff - all I ever use is debian (except at work) -
so why not?

Mostly done, needs testing by others. /Joachim 2004-01-20


