;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*-
;;; Patch file for System version 124.56
;;; Reason:
;;;  It is an error to write to a TCP-BUFFERED-STREAM that is closed.
;;; Written 14-Jun-88 11:57:41 by pld (Peter L. DeWolf) at site Gigamos Cambridge
;;; while running on Azathoth from band 1
;;; with Experimental System 124.55, Experimental Local-File 74.1, Experimental File-Server 23.1, Experimental Unix-Interface 12.0, Experimental ZMail 72.0, Experimental Tape 23.6, Experimental Lambda-Diag 16.1, microcode 1758, SDU Boot Tape 3.14, SDU ROM 8.



; From modified file DJ: L.NETWORK.IP-TCP.KERNEL; TCP-STREAM.LISP#65 at 14-Jun-88 12:05:39
#10R TCP#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "TCP")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; TCP-STREAM  "

(defmethod (tcp-buffered-stream :new-output-buffer) ()
  (declare (values buffer start end))
  (loop
    (cond ((send self :handle-all-replies))
	  ((not open)
	   (global:ferror 'sys:connection-closed "Connection closed" socket))
	  (output-buffer-list
	   (return (values (pop output-buffer-list) 0 output-buffer-size)))
	  (timeout
	   (send self :send-timeout))
	  (t
	   (send self :wait-for-reply
		 #'(lambda (x y)
		     (or (cdr x) (cdr y)))
		 (locf output-buffer-list)
		 (locf timeout))))))

))
