Update of /project/movitz/cvsroot/movitz/losp/lib/net In directory common-lisp.net:/tmp/cvs-serv15051
Modified Files: ip4.lisp Log Message: Ensure zero-padding for UDP checksum.
Date: Wed Nov 24 14:12:27 2004 Author: ffjeld
Index: movitz/losp/lib/net/ip4.lisp diff -u movitz/losp/lib/net/ip4.lisp:1.9 movitz/losp/lib/net/ip4.lisp:1.10 --- movitz/losp/lib/net/ip4.lisp:1.9 Wed Nov 24 11:06:25 2004 +++ movitz/losp/lib/net/ip4.lisp Wed Nov 24 14:12:26 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Wed Apr 30 13:52:57 2003 ;;;; -;;;; $Id: ip4.lisp,v 1.9 2004/11/24 10:06:25 ffjeld Exp $ +;;;; $Id: ip4.lisp,v 1.10 2004/11/24 13:12:26 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -342,6 +342,8 @@ (setf (ip4-ref packet start 6 :unsigned-byte16) checksum)) ((eq t checksum) (setf (ip4-ref packet start 6 :unsigned-byte16) 0) + (when (oddp udp-length) ; Ensure zero-padding for checksum. + (setf (ip4-ref packet start udp-length :unsigned-byte8) 0)) (setf (ip4-ref packet start 6 :unsigned-byte16) (logxor #xffff (add-u16-ones-complement (checksum-octets source) @@ -472,7 +474,7 @@ (unless *ip4-nic* (let ((ethernet (some #'muerte.x86-pc.ne2k:ne2k-probe - muerte.x86-pc.ne2k:+ne2k-probe-addresses+))) + muerte.x86-pc.ne2k:*ne2k-probe-addresses*))) (assert ethernet ethernet "No ethernet device.") (setf *ip4-nic* ethernet))) (unless *ip4-ip*