PACKAGING
---------

Put the dwun* scripts/programs in /usr/lib/dwun. (libexec?)
Maybe not dwunwait though.

Get deb included in debian main.
  ->are we allowed to create /var/log/dwun-command.log?
  ->will have to register binaries without manpages as bugs
  ->/usr/share/doc instead of /usr/doc?
  ->when we install a new version, we restart the server. Is this okay?
  	* would someone install a new version now unless they wanted to use it
	now?

Get RPM into other distros.
Send FreeBSD ports report in.

Should we run dwunmakeauth when the deb installs?
[currently do]

RPM doesn't identify /usr/doc stuff as "%doc"umentation.

BUGS
----

May not be able to getopt twice (main.c) with SunOS? (Unconfirmed). Symptoms
would be after a RESTART, command-line arguments are messed up.

Possible race condition where we can do a "#Connect failed" twice in a row
with "redials 0" when we receive a SIGINT and immediately reconnect.

'set -m' in dwunlog in FreeBSD sh causes 
"sh: can't access tty; job control turned off" error. Apart from that, script
works in that shell.

onconnect/ondisconnect document/remove 1024 character onconnect/ondisconnect 
limit.
->shell probably has similar limit.

IDEAS
-----

* option for only n connections per username.
* option to not write to authfile.
* make ISDN work better (with redialing etc.)
* with fatal commandon error, we may set all to disconnected before tail sends 
stuff to %%con. (So users miss the reason for the fatal error).
* should fd 3 stuff be for commandon/commandoff as well as
pre_commandon/post_commandon/onconnect/ondisconnect?
* allow different ports along with multiple binds. 
e.g. "bind 127.0.0.1:8000 192.168.1.1:5540"
* dwunlog to have multiple patterns (e.g. match lines with both "pppd[", 
"chat[").
* investigate ptrdiff_t for difference between two pointers (portability)
(socket.c)

Documentation:
	* dwunlog requires job control /bin/sh.

Reliability:
	* write regression tests.
	* reconnect if pppd has been running for n seconds without us receiving
	a signal.
	* recvline in dial.c has no timeout.
	(effect: client won't timeout waiting for initial Hello.
	 client won't timeout if server sends line not \n terminated).

Misc:
	* implement -r in makeauth.
	* clean up pipe_msg_buf by having variable arguments.
	* with "fatal user" new users should have to issue CONNECT twice to 
	force a redial (not practical given that the clients always close the
	connection before CONNECT'ing again).
	* pass a number instead of a string for username. We can remove the
	username length limit this way.

Security:
	* encrypt passwords when sent across the network.
	->how APOP does it. (RFC1939 for APOP, RFC1321 for MD5).
	* (get/set)rlimit max core file size to 0 [only in child.c?]
	  (you should be running dwun under a username that can't create files
	  anyway if you're concerned about security).
	* makeauth could test against cracklib.
