;;; -*- Mode:Lisp; Readtable:CL; Package:USER; Base:10; Patch-File:T -*-
;;; Patch file for System version 123.23
;;; Reason:
;;;  When we receive an Echo Reply, return the Echo Data as a string
;;; Written 1-Oct-87 17:14:06 by pld at site LMI Cambridge
;;; while running on Jack Flanders from band 2
;;; with Experimental System 123.22, 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; ICMP.LISP#89 at 1-Oct-87 17:14:06
#10R ICMP#: 
(COMPILER-LET ((*PACKAGE* (GLOBAL:PKG-FIND-PACKAGE "ICMP")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: NETWORK; IP-TCP; KERNEL; ICMP  "

(defun receive-icmp-echo-reply (stream buffer)
  (incf (icmp-echo-reply-received stream))
  (let ((user (assoc (icmp-identifier buffer) (icmp-user-socket-alist stream)))
	(data-length (- (length buffer) 8))
	(string nil))
    (when (and user (assoc (icmp-sequence buffer) (icmp-user-request-list (cdr user))))
      (delete-from-alist (icmp-sequence buffer) (icmp-user-request-list (cdr user)))
      (copy-array-portion buffer
			  8
			  (length buffer)
			  (setq string (make-string data-length))
			  0
			  data-length)
      (push (list (icmp-sequence buffer)
		  (zl:time)
		  string)
	    (icmp-user-reply-list (cdr user)))
      (incf (icmp-user-echo-received (cdr user))))))

))
