* Before release Write documentation (NEWS and manual) for how IPv6/IPv4 gets mapped by inetd. * New tools Before adding any new tools -- spend time reviewing all existing implementations for command-line parameters and behaviour. ** arp Common ancient tool ** nc (netcat) Widely used tool but few maintained alternatives. * General broadcasted terminals: provide a client/daemon that broadcasts a users terminal on a port. Ideally, there should be a single port, with a command to list all available broadcasts. supdup: A telnet client/daemon like program for the SUPDUP protocol; there exists one already by it is ugly, and kinda a pain to get running. And I don't think there is an actual daemon program for GNU systems at all (ITS has one though :-). Add framework for tests. How can tests needing root privileges be maintained, automated, or rewritten? Function for parsing [USER@]HOSTNAME[:PORT], that returns each value in a structure. Handle IP (v4 and v6) numbers as well. And make programs use it. Files without a copyright notice: TODO, confpaths.h.in, ifconfig/COMPATIBILITY, whois/as_del_list, whois/ip_del_list, whois/make_as_del.pl, whois/make_ip_del.pl, whois/make_tld_serv.pl, and whois/tld_serv_list. Add a better autoconf check for bison, it will succeed even though the generated files do not exist. Go through code and check what is clean, needs cleaning, etc. Document libraries, and their exported functions. Document code; in the end this should be as nice as coreutils! Allow daemons and clients to take a port number, and daemons started standalone so one can test things more easily. Requires decent infrastructure for things. Ben Asselstine might have ideas with his argp hacks... Good candidate for this are rsh/rshd rlogin/rlogind, rcp (simple protocol, and simple programs). Add debugging output for client/daemon, suggested example of output: FROM-HOST -->: Received message <-- TO-HOST: Sent message <-- TO-HOST: Sent message FROM-HOST -->: Received message Add long options to programs libls/ls.c, rcp, rlogind, rlogin, rshd, telnetd, tftpd, especially the clients. The conventions used by telnet & ftp should be followed. Merge the functionality of Noah [Friedman]'s ftp client into ftp (readline support, &c), and add readline to the distribution. Move the horrible mess of code from telnetd/sys_term.c into functions in libinetutils using the BSD libutil functionality (such that they can be elided if a system libutil exists); specifically: login -- Frob utmp &c for a new login process logout -- Frob utmp &c for a newly logged out process openpty -- Find a free pty, allocate and set it up, and return it forkpty -- Calls openpty as well as forking a new process to use it and the following functions not in BSD: cleanup_session -- More general cleanup for a newly logged out process (calls logout and logwtmp, frobs tty perms) setup_session -- More general setup for a new login process (calls login, frobs tty perms, ...?) [logout and cleanup_session are written, but telnetd doesn't use them yet.] Rlogind currently depends on having the BSD functions available, so it is cleaner, if less portable than telnetd; once this cleanup is done, then rlogind will more portable, and telnetd less messy. This is already partially done, but care is needed as sys_term.c does lots of stuff that I'm not sure is needed, but might be. Make sure that both sgtty and termios/termio are supported equally well in all programs (currently only termios is really tested). Add support for sysv-style ptys, whatever that is. Supply versions of the rcmd functionality needed by the r* programs. Supply a version of the syslog function for systems that don't have it. Perhaps make ftp use no-uid support on the Hurd. More careful autoconfiscation -- many header files are included unconditionally in a lot of places, even if an autoconf test is already done for them, &c. Testing and debugging the encryption and authentication modes. Include all relevant options in the Texinfo source. Remove support for kerberos_v4. Make sure kerberos_v5 and shishi do not interfere when building on systems where both are present. Add more utilities: Tcpdump routed? ruptime? rusers? ... [Already in other distributions: finger/fingerd, ntp] Add internationalization, read: gettext support, and provide translations, especially for the clients. Try to put as much as possible into libraries (startup code, etc). gopher and gopherd? Make src/hostname.c handle missing 'sethostname' functions on platforms that doesn't have them (it could just print an error message). enhance man pages so they fully supersede NetKit and BSD man pages generally use gnulib for portability more than we use today: - getaddrinfo/getnameinfo with IDN support to simplify IDN complexity - more system header files replacements - ruserok/wtmp stuff Mingw/cygwin support? Remove Kerberos V4 support? I'm not sure there are any usable Kerberos V4 implementations around anymore, and it is is single-DES-only so they are completely insecure anyway. * libicmp Handle timestamp, router discovery and address packets. * ping/ping6 Make it setuid-less on kernels that can handle it, e.g., Linux Ability to send router discovery, address and maybe timestamp packets. Ability to ping multiple host in one go. Merge into one binary to avoid code duplication with different semantics, ping6 should map to 'ping -6'. * ifconfig ** Implement flags support in changeif.c and options.c ** Make sure it is a drop in replacement at least for the most common options on Linux and BSD. ** Some systems can provide more interfaces than SIOCGIFCONF/if_nameindex, interfaces which are usually not UP but registered nevertheless. (linux: /prov/net/dev). Some support for that? ** Honour IFF_CANTCHANGE when working in flag setting in brdaddr, dstaddr, etc. ** We could put the option parsing (invocation of getopt_long) into a function like parse_opt_rest, which could be used by system_parse_opt_rest to continue parsing the options as usual after processing a non-option. ** Is it necessary to merge long/short options intelligently? For example, if a system specific option shadows a normal option? Allow this? * ftp, ftpd Implement libshishi support? * logger Solaris implements `/dev/log' as a character special device, communicating by the STREAMS protocol, not as a Unix socket. Consider supporting this variation. Our local socket code is correct, but it cannot communicate with the native syslog service via `/dev/log', only via UDP. * traceroute Support setuid-less operations, compare other alternative implementations * whois What about rwhois? Should support the refer attribute of RIPE-189 objects. I need a procedure for looking up an IPv6 address in a list of prefixes. Will anybody contribute it? Add Exodus rwhois server (e.g. 216.35.0.0/16). * rlogind, telnetd The Kerberized authentication is not passed on to login(1) on Solaris correctly, since its command line arguments are not understood properly from the manual page alone. Do an analysis of the source code of login(1) from OpenSolaris to remedy this shortcoming. Local Variables: mode: outline End: