;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 121.19 ;;; Reason: ;;; Minor fix to SI:PARSE-HOST. ;;; Written 30-Jan-87 19:45:39 by RG (Richard Greenblatt) at site LMI Cambridge ;;; while running on Guinea Pig from band 2 ;;; with Experimental System 121.18, Experimental Lambda-Diag 15.0, Experimental ZMail 70.2, Experimental KERMIT 32.0, Experimental Unix-Interface 10.0, Experimental Local-File 72.0, Experimental FILE-Server 21.0, Experimental Tape 13.0, microcode 1730, SDU Boot Tape 3.12, SDU ROM 102. ; From file DJ: L.NETWORK; HOST.LISP#155 at 30-Jan-87 19:45:40 #8R SYSTEM-INTERNALS#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; HOST  " (DEFUN PARSE-HOST (HOST &OPTIONAL NO-ERROR-P (UNKNOWN-OK T) &AUX ELEMENT) "Return a host object for name HOST, taken from the HOST-ALIST. This is the right function to use for making network connections, but is not right for parsing pathnames. Use FS:GET-PATHNAME-HOST for that. HOST can also be a host object already; then it's simply returned. NO-ERROR-P says just return NIL if there is no such host known. UNKNOWN-OK says call the UNKNOWN-HOST-FUNCTION (if that's not NIL) to give it a chance to create a host and add it to the host table." (cond ((TYPEP HOST 'HOST) HOST) (t (LET ((IDX (STRING-SEARCH-CHAR #/. HOST))) (AND IDX (MEMBER-EQUALP (SUBSTRING HOST (1+ IDX)) LOCAL-INTERNET-DOMAINS) (SETQ HOST (SUBSTRING HOST 0 IDX)))) (COND ((AND (SETQ ELEMENT (LOOP FOR ELEMENT IN HOST-ALIST WHEN (or (MEM #'STRING-EQUAL HOST (HOST-NAME-LIST ELEMENT)) (string-equal host (host-name element))) RETURN ELEMENT)) (NOT (NULL (HOST-ADDRESSES ELEMENT)))) (GET-ALIST-ELEM-HOST ELEMENT)) ((STRING-EQUAL HOST "CHAOS|" :END1 6 :END2 6) (LET ((ADDRESS (PARSE-NUMBER HOST 6 NIL 8))) (OR (GET-HOST-FROM-ADDRESS ADDRESS :CHAOS) (MAKE-UNNAMED-HOST :DEFAULT `(:CHAOS (,ADDRESS)))))) ((AND UNKNOWN-OK UNKNOWN-HOST-FUNCTION) (FUNCALL UNKNOWN-HOST-FUNCTION HOST) (PARSE-HOST HOST NO-ERROR-P NIL)) (NO-ERROR-P NIL) (T (FERROR 'SYS:UNKNOWN-HOST-NAME "~S is not a known host." HOST)))))) ))