;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 123.188 ;;; Reason: ;;; Improve formatting in (tcpa:rwho) and (tcpa:ruptime) ;;; Written 21-Jan-88 11:00:30 by pld at site Gigamos Cambridge ;;; while running on Jack Flanders from band 2 ;;; with Experimental System 123.186, Experimental Local-File 73.3, Experimental FILE-Server 22.1, Experimental Unix-Interface 11.0, Experimental Tape 18.0, Experimental KERMIT 34.3, Experimental ZMail 71.0, Experimental Lambda-Diag 15.0, microcode 1754, SDU Boot Tape 3.12, SDU ROM 8. ; From modified file DJ: L.NETWORK.IP-TCP.SERVER; UDP-RWHO-SERVER.LISP#31 at 21-Jan-88 11:00:30 #10R TCP-APPLICATION#: (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "TCP-APPLICATION"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; SERVER; UDP-RWHO-SERVER  " (defun rwho () (when *udp-rwho-server-packets* (let ((fudged-time (fudge-ut-to-unix (get-universal-time))) (format-string "~&~A~20T~@9A~30T~@15A~46T~@13A~60T~A")) (format t format-string "Host Name" "Terminal" "On Since" "Idle" "User") (dolist (x *udp-rwho-server-packets*) (let* ((packet (cdr x)) (hostname (rwho-hostname packet)) (length (length packet))) (cond ((>= (- fudged-time (rwho-recv-time packet)) 180) ;;Packet came 3 minutes ago -- assume host died (format t "~&~16a no response for ~A" hostname (with-output-to-string (*standard-output*) (time:print-interval-or-never (- fudged-time (rwho-recv-time packet)))))) (t (do ((offset rwho-utmp-offset (+ offset rwho-utmp-entry-length))) ((>= offset length)) (format t format-string hostname (rwho-utmp-ttyname packet offset) (with-output-to-string (*standard-output*) (time:print-brief-universal-time (fudge-ut-from-unix (rwho-utmp-time-logged-on packet offset)))) (rwho-print-interval (rwho-utmp-idle-time packet offset)) (rwho-utmp-userid packet offset)))))))))) )) ; From modified file DJ: L.NETWORK.IP-TCP.SERVER; UDP-RWHO-SERVER.LISP#31 at 21-Jan-88 11:01:54 #10R TCP-APPLICATION#: (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "TCP-APPLICATION"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; SERVER; UDP-RWHO-SERVER  " (defun ruptime () (when *udp-rwho-server-packets* (let ((fudged-time (fudge-ut-to-unix (get-universal-time)))) (dolist (x *udp-rwho-server-packets*) (let* ((packet (cdr x)) (hostname (rwho-hostname packet))) (cond ((>= (- fudged-time (rwho-recv-time packet)) 180) ;;Packet came 3 minutes ago -- assume host died (format t "~&~20a no response for ~A" hostname (with-output-to-string (*standard-output*) (time:print-interval-or-never (- fudged-time (rwho-recv-time packet)))))) (t (let ((lav0 (rwho-load-average packet 0)) (lav1 (rwho-load-average packet 1)) (lav2 (rwho-load-average packet 2)) (users (truncate (- (length packet) rwho-utmp-offset) rwho-utmp-entry-length))) (format t "~&~20a Up ~12a ~2d Users, Load = ~d.~2,'0d ~d.~2,'0d ~d.~2,'0d" hostname (rwho-print-interval (- fudged-time (rwho-boot-time packet))) users (truncate lav0 100) (mod lav0 100) (truncate lav1 100) (mod lav1 100) (truncate lav2 100) (mod lav2 100)))))))))) ))