zone.lisp: Fix `:sshfp' handling of literals.
[zone] / zone.lisp
index 8d35c09..a6c4944 100644 (file)
--- a/zone.lisp
+++ b/zone.lisp
   records)
 
 (export '*zone-output-path*)
-(defvar *zone-output-path* *default-pathname-defaults*
-  "Pathname defaults to merge into output files.")
+(defvar *zone-output-path* nil
+  "Pathname defaults to merge into output files.
+
+   If this is nil then use the prevailing `*default-pathname-defaults*'.
+   This is not the same as capturing the `*default-pathname-defaults*' from
+   load time.")
 
 (export '*preferred-subnets*)
 (defvar *preferred-subnets* nil
   "Choose a file name for a given ZONE and TYPE."
   (merge-pathnames (make-pathname :name (string-downcase zone)
                                  :type (string-downcase type))
-                  *zone-output-path*))
+                  (or *zone-output-path* *default-pathname-defaults*)))
 
 (export 'zone-preferred-subnet-p)
 (defun zone-preferred-subnet-p (name)
                 (fixnum what)
                 (symbol (or (get what prop)
                             (error "~S is not a known ~A" what prop))))))
-       (dolist (item (listify data)
-                (destructuring-bind (fpr &key (alg 'rsa) (type 'sha-1))
-                    (listify item)
-                  (rec :data (list (lookup alg 'sshfp-algorithm)
-                                   (lookup type 'sshfp-type)
-                                   fpr))))))))
+       (dolist (item (listify data))
+         (destructuring-bind (fpr &key (alg 'rsa) (type 'sha-1))
+             (listify item)
+           (rec :data (list (lookup alg 'sshfp-algorithm)
+                            (lookup type 'sshfp-type)
+                            fpr)))))))
 
 (defzoneparse :mx (name data rec :zname zname)
   ":mx ((HOST :prio INT :ip IPADDR)*)"