chiark
/
gitweb
/
~mdw
/
zone
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bugfix: Canonify the zone source name.
[zone]
/
zone.lisp
diff --git
a/zone.lisp
b/zone.lisp
index 153ce717121deac2cea5503429ec54e3e3cd752f..90867ea221d3f02123779b1f9c9b59c8cec57ea5 100644
(file)
--- a/
zone.lisp
+++ b/
zone.lisp
@@
-211,6
+211,11
@@
(defun resolve-hostname (name)
(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:
@@
-365,7
+370,7
@@
(defstruct (zone (:predicate zonep))
(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.")
@@
-673,7
+678,7
@@
(defun zone-parse-head (head)
(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*)