1still work to be done! 2but the worst maintainability problems are fixed. 3 4work still to be done (not exhaustive): 5use dial(2) routines instead of manual diddling 6use factotum and auth_* routines 7 8fixed bugs 9 systemic bugs like overflow at both ends in 10 n = read(n, buf, sizeof buf); 11 buf[n] = 0; 12 fixed unchecked malloc calls 13replaced many magic numbers with named constants 14 see magic.out for remainder 15duplicated code broken out into functions 16 see dup.* for remaining offenders 17 use readio & writeio throughout 18big functions broken up 19 see long.funcs for remaining offenders 20converted to plan 9 style 21 *File -> Q* per all other file servers 22 very long lines wrapped for finite-width devices 23use syslog in daemons 24added /net/ssh/*/tcp containing number of the underlying tcp connection 25 originally for sshswitch, see _coexistence-is-futile 26edited manual page for clarity and brevity, split in two 27worked out problems with normal usage cases, fixed or documented them 28