;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 123.132 ;;; Reason: ;;; (tcpa:open-easy-tcp-stream) was giving the tcp-unbuffered-stream invalid init ;;; keywords: :input-buffer-limit and :output-buffer-limit. ;;; Written 1-Dec-87 13:44:11 by pld at site Gigamos Cambridge ;;; while running on Jack Flanders from band 2 ;;; with Experimental System 123.129, Experimental Local-File 73.3, Experimental FILE-Server 22.1, 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; EASY.LISP#26 at 1-Dec-87 13:44:11 #10R TCP-APPLICATION#: (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "TCP-APPLICATION"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; EASY  " (defun open-easy-tcp-stream (remote-address remote-port local-port &rest args &key (keyword "Easy TCP stream") (connect t) (buffered t) (auto-force-output nil) (direction :both) (input-buffers 4) (output-buffers 4) coroutine-input for-udp &allow-other-keys ) (declare (ignore coroutine-input)) ;Compatibility -- special option no longer required (when for-udp ;;This is a kludge -- should use UDP-HOST -- but is compatible with old system (return-from open-easy-tcp-stream (apply #'open-easy-udp-stream remote-address remote-port local-port (trim-keywords (copy-list args) '(:for-udp))))) (let ((flavor (cond ((not buffered) 'tcp-unbuffered-stream) ((not auto-force-output) 'tcp-buffered-stream) (t 'tcp-auto-buffered-stream))) (normalp nil) (stream nil) (trimmed-args (trim-keywords (copy-list args) '(:keyword :connect :buffered :auto-force-output :direction :input-buffers :output-buffers :coroutine-input :for-udp)))) (unwind-protect (progn (when (eq remote-port :wild) ;not specified (setq remote-address nil) ;...so null out remote-address (setq remote-port nil) ; and remote-port (setq connect nil)) ; and make into a passive connection (when (eq local-port :wild) (setq local-port nil)) (setq stream (if buffered (make-instance flavor :input-buffer-limit (ecase direction ((:input :both) input-buffers) (:output 0)) :output-buffer-limit (ecase direction ((:output :both) output-buffers) (:input 0)) ) (make-instance flavor))) (setq normalp (lexpr-send stream :open keyword :active connect :remote-address remote-address :remote-port remote-port :local-port local-port trimmed-args))) (unless normalp (and stream (close stream)))) stream)) ))