;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 123.26 ;;; Reason: ;;; ip:setup-my-internet-address now calls ip:parse-internet-address on the network ;;; number and subnet masks from the site file. Thus, you can specify them in ;;; human readable dotted-decimal rather than just as site-editor readable bignums. ;;; Written 5-Oct-87 16:09:24 by pld at site LMI Cambridge ;;; while running on Jack Flanders from band 2 ;;; with Experimental System 123.25, 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; IP.LISP#269 at 5-Oct-87 16:09:24 #10R INTERNET#: (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "INTERNET"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; IP  " (defun setup-my-internet-address () "Reads :network-names site option and sets up *network-list*. Return two values: a list of our Internet addresses and a list of corresponding Subnet Masks" (declare (values address-list subnet-mask-list)) (let* ((network-addresses (send si:local-host :network-addresses)) (internet-addresses (getf network-addresses :internet)) (network-names (global:get-site-option :network-names))) (setq *network-list* nil) (dolist (network network-names) (dolist (domain (second network)) (when (eq (first domain) :internet) (let* ((network-number (parse-internet-address (second domain))) (subnet-mask (if (third domain) (parse-internet-address (third domain)) (ip-subnet-mask network-number)))) (push (cons network-number subnet-mask) *network-list*))))) (flet ((find-subnet-mask (address) ;;given address and *network-list*, return subnet-mask (multiple-value-bind (network-number mask) (ip-network-number-and-mask address) (let ((found (assoc network-number *network-list*))) (if found (cdr found) mask))))) (values internet-addresses (mapcar #'find-subnet-mask internet-addresses))))) ))