;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 123.173 ;;; Reason: ;;; Telnet options don't take effect until the Server has responded. In ;;; particular, Local echoing is in effect until the Server has said ;;; "WILL ECHO". ;;; Written 4-Jan-88 15:16:07 by pld at site Gigamos Cambridge ;;; while running on Jack Flanders from band 2 ;;; with Experimental System 123.172, 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; SUPDUP.LISP#311 at 4-Jan-88 15:17:11 #8R SUPDUP#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SUPDUP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; SUPDUP  " (defmethod (basic-telnet :connect) (&optional path (net-window 3) &aux conn) (multiple-value-bind (host protocol contact contact-p) (parse-path path "TELNET" :internet) (when (setq conn (send self :new-connection host protocol contact contact-p net-window)) (unless (errorp conn) (telnet-send-option nvt-do nvt-echo) (telnet-send-option nvt-do nvt-suppress-go-ahead) (telnet-send-option nvt-will nvt-suppress-go-ahead) (setq overprint nil)) conn))) )) ; From modified file DJ: L.NETWORK; SUPDUP.LISP#311 at 4-Jan-88 15:18:58 #8R SUPDUP#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SUPDUP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; SUPDUP  " (DEFMETHOD (BASIC-TELNET :HANDLE-IAC) (&AUX COMMAND OPTION) (SETQ COMMAND (NVT-NETI)) (AND ( COMMAND NVT-WILL) ( COMMAND NVT-DONT) (SETQ OPTION (NVT-NETI))) (when verbose-flag (send self :force-output) (format self "~&Received IAC~@[ ~A~]~@[ ~A~]~%" (cadr (assq command telnet:*telsyms*)) (and option (let ((name (cadr (assq option telnet:*telopts*)))) (and name (substring (symbol-name name) 7)))))) (SELECT COMMAND (NVT-WILL (SELECT OPTION (NVT-SUPPRESS-GO-AHEAD) ;ignore things we requested (NVT-ECHO (telnet-echo t)) (NVT-TRANSMIT-BINARY (SETQ BINARY-OUTPUT-FLAG T) (TELNET-SEND-OPTION NVT-DO OPTION)) (NVT-SUPDUP-OUTPUT (TELNET-START-SUPDUP-OUTPUT)) (nvt-logout (telnet-send-option nvt-do option)) (OTHERWISE (TELNET-SEND-OPTION NVT-DONT OPTION)))) (NVT-DO (select option (nvt-suppress-go-ahead) ;ignore things we requested ((NVT-TIMING-MARK NVT-TRANSMIT-BINARY) (TELNET-SEND-OPTION NVT-WILL OPTION)) (T (TELNET-SEND-OPTION NVT-WONT OPTION)))) (NVT-DONT (TELNET-SEND-OPTION NVT-WONT OPTION)) (NVT-WONT (select option (NVT-ECHO (telnet-echo nil)) (NVT-TRANSMIT-BINARY (SETQ BINARY-OUTPUT-FLAG NIL) (TELNET-SEND-OPTION NVT-DONT OPTION)))) (NVT-SUBNEGOTIATION-BEGIN (TELNET-HANDLE-SUBNEGOTIATION)))) )) ; From modified file DJ: L.NETWORK; SUPDUP.LISP#311 at 4-Jan-88 15:20:34 #8R SUPDUP#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SUPDUP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; SUPDUP  " (defmethod (basic-telnet :toggle-remote-echo) () (telnet-send-option (if echo-flag nvt-dont nvt-do) nvt-echo)) )) ; From modified file DJ: L.NETWORK; SUPDUP.LISP#311 at 4-Jan-88 15:23:11 #8R SUPDUP#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SUPDUP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; SUPDUP  " (defun telnet-echo (on-p) (declare (:self-flavor basic-telnet)) (unless (eq echo-flag on-p) ;If not the right way already (setq echo-flag on-p) (when verbose-flag (send self :force-output) (format self "~&Setting ~:[local~;remote~] echo~%" on-p)))) )) ; From modified file DJ: L.NETWORK; SUPDUP.LISP#311 at 4-Jan-88 15:21:51 #8R SUPDUP#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SUPDUP"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; SUPDUP  " (COMPILE-FLAVOR-METHODS TELNET) ))