;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*- ;;; Patch file for System version 123.107 ;;; Reason: ;;; ip:initialize-route-table shouldn't do anything if it is called with a null ;;; default-internet-address. ;;; Written 9-Nov-87 15:17:27 by pld at site LMI Cambridge ;;; while running on Jack Flanders from band 2 ;;; with Experimental System 123.106, 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#273 at 9-Nov-87 15:17:28 #10R INTERNET#: (COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "INTERNET"))) (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; IP  " (defun initialize-route-table (default-internet-address) (when default-internet-address (when (consp default-internet-address) ;;If given a list of addresses, assume the first is the default (setq default-internet-address (first default-internet-address))) (let ((r (global:get-site-option :default-internet-routing)) (default-interface nil)) (setq *route-table* nil) ;;Add entries for directly connected networks (dolist (ni *network-interfaces*) (let ((my-address (second (assoc :internet (net:ni-address-alist ni) :test #'eq)))) (when my-address (when (= my-address default-internet-address) (setq default-interface ni)) (let* ((ip-on-ni (assoc :internet (net:ni-network-alist ni) :test #'eq)) (my-network (second ip-on-ni)) (mask (third ip-on-ni))) (when my-network (add-gateway (logand mask my-network) my-address ni)))))) ;;Add entries for gateways listed in site files (cond ((null r)) ((atom r) (add-gateway 0 ;Network = 0 means default gateway (parse-internet-address r) ;the gateway default-interface)) ((listp r) (dolist (elem r) (add-gateway (parse-internet-address (first elem)) (parse-internet-address (second elem)) default-interface))) (t nil))) (cond ((null si:*ethernet-hardware-controller*)) ;No network interface? Too bad... ((eq si:*ethernet-hardware-controller* si:*my-op*)) ;We talk directly to ethernet? Good... (t ;;If we don't talk directly to the ethernet, add the real ethernet hardware controller ;;as default gateway (add-gateway 0 (net:find-network-address-for-other-processor si:*ethernet-hardware-controller* :internet) si:share-interface))))) ))