;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*-
;;; Patch file for System version 123.253
;;; Reason:
;;;  Answer notifications from remote Chaosnet host before
;;;  doing the screen notification to the local user.
;;;  This prevents wrong "host not responding" error message
;;;  at the remote end when the local host notification is blocked.
;;; Written 4-May-88 19:10:37 by pld at site Gigamos Cambridge
;;; while running on Azathoth from band 3
;;; with Experimental System 123.252, Experimental Local-File 73.5, Experimental FILE-Server 22.4, Experimental Unix-Interface 11.0, Experimental KERMIT 34.3, Experimental ZMail 71.0, Experimental Lambda-Diag 15.0, Experimental Tape 22.4, Experimental Object Lisp 3.4, microcode 1756, SDU Boot Tape 3.14, SDU ROM 8, the old ones.



; From file DJ: L.NETWORK.CHAOS; CHSAUX.LISP#398 at 4-May-88 19:10:37
#8R CHAOS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "CHAOS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; CHAOS; CHSAUX  "

(DEFUN NOTIFY-SERVER ()
  (LET* ((CONN (LISTEN "NOTIFY"))
	 (PKT (READ-PKTS CONN))
	 (PKT-STRING (SUBSTRING (PKT-STRING PKT) 7))
	 (HOST (FOREIGN-ADDRESS CONN))
	 (INHIBIT-SCHEDULING-FLAG T))
    (IF (UNWANTED-CONNECTION-REJECTED-P CONN) (RETURN-FROM NOTIFY-SERVER NIL))
    (ANSWER-STRING CONN "Done")
    (COND ((OR (NULL LAST-NOTIFICATION)
	       (NOT (STRING-EQUAL LAST-NOTIFICATION PKT-STRING)))
	   (SETQ LAST-NOTIFICATION PKT-STRING)
	   (SETQ INHIBIT-SCHEDULING-FLAG NIL)
	   (SETQ HOST (OR (SI:GET-HOST-FROM-ADDRESS HOST :CHAOS)
			  (FORMAT NIL "chaos host ~O" HOST)))
	   (TV:NOTIFY NIL "From ~A: ~A" HOST PKT-STRING)))))

))
