still work to be done!but the worst maintainability problems are fixed.work still to be done (not exhaustive):use dial(2) routines instead of manual diddlinguse factotum and auth_* routinesfixed bugs systemic bugs like overflow at both ends in n = read(n, buf, sizeof buf); buf[n] = 0; fixed unchecked malloc callsreplaced many magic numbers with named constants see magic.out for remainderduplicated code broken out into functions see dup.* for remaining offenders use readio & writeio throughoutbig functions broken up see long.funcs for remaining offendersconverted to plan 9 style *File -> Q* per all other file servers very long lines wrapped for finite-width devicesuse syslog in daemonsadded /net/ssh/*/tcp containing number of the underlying tcp connection originally for sshswitch, see _coexistence-is-futileedited manual page for clarity and brevity, split in twoworked out problems with normal usage cases, fixed or documented them
still work to be done!
but the worst maintainability problems are fixed.
work still to be done (not exhaustive):
use dial(2) routines instead of manual diddling
use factotum and auth_* routines
fixed bugs
systemic bugs like overflow at both ends in
n = read(n, buf, sizeof buf);
buf[n] = 0;
fixed unchecked malloc calls
replaced many magic numbers with named constants
see magic.out for remainder
duplicated code broken out into functions
see dup.* for remaining offenders
use readio & writeio throughout
big functions broken up
see long.funcs for remaining offenders
converted to plan 9 style
*File -> Q* per all other file servers
very long lines wrapped for finite-width devices
use syslog in daemons
added /net/ssh/*/tcp containing number of the underlying tcp connection
originally for sshswitch, see _coexistence-is-futile
edited manual page for clarity and brevity, split in two
worked out problems with normal usage cases, fixed or documented them