":txt TEXT"
(rec :data data))
+(export '*dkim-pathname-defaults*)
+(defvar *dkim-pathname-defaults*
+ (make-pathname :directory '(:relative "keys")
+ :type "dkim"))
+
(defzoneparse :dkim (name data rec)
":dkim (KEYFILE {:TAG VALUE}*)"
(destructuring-bind (file &rest plist) (listify data)
(emit (with-output-to-string (out)
(write-string "p=" out)
(when file
- (with-open-file (in file :direction :input)
+ (with-open-file
+ (in (merge-pathnames file *dkim-pathname-defaults*))
(loop
(when (string= (read-line in)
"-----BEGIN PUBLIC KEY-----")
(setf (get sym prop) val)
(export sym))))
+(export '*sshfp-pathname-defaults*)
+(defvar *sshfp-pathname-defaults*
+ (make-pathname :directory '(:relative "keys")
+ :type "sshfp"))
+
(defzoneparse :sshfp (name data rec)
":sshfp { FILENAME | ((FPR :alg ALG :type HASH)*) }"
(if (stringp data)
- (with-open-file (in data)
+ (with-open-file (in (merge-pathnames data *sshfp-pathname-defaults*))
(loop (let ((line (read-line in nil)))
(unless line (return))
(let ((words (str-split-words line)))
(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)*)"