From a40a043cdb707fdd44022a794a01bb44002b4eba Mon Sep 17 00:00:00 2001 From: "hechee@blackhole.universe.org" <> Date: Mon, 28 Aug 2006 18:18:40 +0200 Subject: [PATCH] Replaced equalp with vector-equal when comparing raw IP addresses. --- protocols/dns-client/etc-files.lisp | 2 +- sockets/address.lisp | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/protocols/dns-client/etc-files.lisp b/protocols/dns-client/etc-files.lisp index 7abe46b..402993e 100644 --- a/protocols/dns-client/etc-files.lisp +++ b/protocols/dns-client/etc-files.lisp @@ -85,7 +85,7 @@ #'(lambda (col1 col2 other-cols) (let ((vector (string-address->vector col1))) (when (and (vector-ipv6-good-p vector ipv6) - (equalp vector ip)) + (vector-equal vector ip)) (let ((host (make-host col2 (make-address vector) other-cols))) (if (eql ipv6 t) diff --git a/sockets/address.lisp b/sockets/address.lisp index 4c42675..a2a19f4 100644 --- a/sockets/address.lisp +++ b/sockets/address.lisp @@ -215,11 +215,16 @@ ;;; Equality methods ;;; +(defun vector-equal (v1 v2) + (and (typep v1 'vector) + (equal (type-of v1) (type-of v2)) + (every #'eql v1 v2))) + (defmethod netaddr= ((addr1 ipv4addr) (addr2 ipv4addr)) - (equalp (name addr1) (name addr2))) + (vector-equal (name addr1) (name addr2))) (defmethod netaddr= ((addr1 ipv6addr) (addr2 ipv6addr)) - (equalp (name addr1) (name addr2))) + (vector-equal (name addr1) (name addr2))) (defmethod netaddr= ((addr1 localaddr) (addr2 localaddr)) (equal (name addr1) (name addr2))) @@ -258,7 +263,8 @@ (make-instance 'ipv4addr :name n)) ((setf n (ignore-errors (coerce name '(simple-array ub16 (8))))) - (make-instance 'ipv6addr :name n))))) + (make-instance 'ipv6addr :name n)) + (t (error 'invalid-address :address name :type :unknown))))) ;;; -- 2.11.4.GIT