diff options
Diffstat (limited to 'geoip/ip.lisp')
-rw-r--r-- | geoip/ip.lisp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/geoip/ip.lisp b/geoip/ip.lisp index 3e3790e..31149f4 100644 --- a/geoip/ip.lisp +++ b/geoip/ip.lisp @@ -191,9 +191,8 @@ (with-slots (ptr data-offset node-count) mmdb (alexandria:when-let* ((record (record-value mmdb ip-bits)) (offset (+ data-offset (- record node-count 16)))) - (mread-data - (make-db-reader :db-ptr (inc-pointer ptr offset) - :head-ptr ptr :data-offset data-offset))))) + (make-db-reader :db-ptr (inc-pointer ptr offset) + :head-ptr ptr :data-offset data-offset)))) (defun integer-to-bits (n bit-count) "Convert integer to list of bits (MSB first)" @@ -205,7 +204,8 @@ (with-slots (ip-version) mmdb (when (and (= ip-version 4) (= ip-v 6)) (error "Can't query IPv6 address in IPv4 database")) - (lookup-ip-bits mmdb (integer-to-bits ip-val (if (= ip-version 4) 32 128)))))) + (alexandria:when-let ((reader (lookup-ip-bits mmdb (integer-to-bits ip-val (if (= ip-version 4) 32 128))))) + (mread-data reader))))) (defun mmap->mmdb (file ptr fd size) (let* ((metadata-start (find-metadata-start ptr size)) |