;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 123.38 ;;; Reason: ;;; If a tcp-buffered-stream has input buffers queued up, data IS available, even ;;; if the socket has closed. ;;; Written 7-Oct-87 16:29:03 by pld at site LMI Cambridge ;;; while running on Jack Flanders from band 2 ;;; with Experimental System 123.37, Experimental Local-File 73.0, Experimental FILE-Server 22.0, Experimental Unix-Interface 11.0, Experimental Tape 18.0, Experimental KERMIT 34.0, 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.KERNEL; TCP-STREAM.LISP#38 at 7-Oct-87 16:29:03 #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 :next-input-buffer) (&optional no-hang-p) (declare (values buffer start end)) (loop (cond ((not (fifo-empty-p input-buffer-fifo)) (let ((buffer (pop-fifo input-buffer-fifo))) (return (values buffer 0 (fill-pointer buffer))))) ((send self :handle-all-replies)) ((not open) (return nil)) (closing (return nil)) (no-hang-p (return nil)) (t (wait-for-reply socket))))) ))