chiark / gitweb /
New zone entry type :net
authormdw <mdw>
Mon, 13 Feb 2006 12:05:04 +0000 (12:05 +0000)
committermdw <mdw>
Mon, 13 Feb 2006 12:05:04 +0000 (12:05 +0000)
Automatically puts in records for the interesting factoids about the
network.

zone.lisp

index 90867ea..83ad3b9 100644 (file)
--- a/zone.lisp
+++ b/zone.lisp
@@ -40,6 +40,7 @@ (defpackage #:zone
             #:*default-mx-priority* #:*default-zone-admin*
             #:zone-find #:zone-parse #:zone-write #:zone-create #:defzone
             #:defrevzone #:zone-save
+          #:defzoneparse #:zone-parse-host
           #:timespec-seconds #:make-zone-serial))
 (in-package #:zone)
 
@@ -810,6 +811,19 @@ (defzoneparse :alias (name data rec :zname zname)
     (rec :name (zone-parse-host a zname)
         :type :cname
         :data name)))
+(defzoneparse :net (name data rec)
+  ":net (NETWORK*)"
+  (dolist (net (listify data))
+    (let ((n (net-get-as-ipnet net)))
+      (rec :name (zone-parse-host "net" name)
+          :type :a
+          :data (ipnet-net n))
+      (rec :name (zone-parse-host "mask" name)
+          :type :a
+          :data (ipnet-mask n))
+      (rec :name (zone-parse-host "broadcast" name)
+          :type :a
+          :data (ipnet-broadcast n)))))
   
 (defzoneparse (:rev :reverse) (name data rec)
   ":reverse ((NET :bytes BYTES) ZONE*)"