Expect the variable *default-zone-source* to be already dotified.
(let ((he (ext:lookup-host-entry name)))
(and he
(ext:host-entry-addr he))))
(let ((he (ext:lookup-host-entry name)))
(and he
(ext:host-entry-addr he))))
+(defun canonify-hostname (name)
+ "Resolve a hostname to canonical form using the DNS, or return nil."
+ (let ((he (ext:lookup-host-entry name)))
+ (and he
+ (ext:host-entry-name he))))
(defun parse-ipaddr (addr)
"Convert the string ADDR into an IP address: tries all sorts of things:
(defun parse-ipaddr (addr)
"Convert the string ADDR into an IP address: tries all sorts of things:
(defvar *default-zone-source*
(let ((hn (unix:unix-gethostname)))
(defvar *default-zone-source*
(let ((hn (unix:unix-gethostname)))
- (and hn (resolve-hostname hn)))
+ (and hn (concatenate 'string (canonify-hostname hn) ".")))
"The default zone source: the current host's name.")
(defvar *default-zone-refresh* (* 24 60 60)
"Default zone refresh interval: one day.")
"The default zone source: the current host's name.")
(defvar *default-zone-refresh* (* 24 60 60)
"Default zone refresh interval: one day.")
(destructuring-bind
(zname
&key
(destructuring-bind
(zname
&key
- (source (concatenate 'string *default-zone-source* "."))
+ (source *default-zone-source*)
(admin (or *default-zone-admin*
(format nil "hostmaster@~A" zname)))
(refresh *default-zone-refresh*)
(admin (or *default-zone-admin*
(format nil "hostmaster@~A" zname)))
(refresh *default-zone-refresh*)