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