chiark / gitweb /
portability: Supply system-specific wossname for CLisp and ECL.
[zone] / net.lisp
index d957f53d684a00fd3611f689c96695b89f5224bc..64c796dde7defe7bd15e5c96555b7ddaeb1ffad5 100644 (file)
--- a/net.lisp
+++ b/net.lisp
@@ -259,17 +259,20 @@ (defun ipnet-changeable-bytes (mask)
 (defun resolve-hostname (name)
   "Resolve a hostname to an IP address using the DNS, or return nil."
   #+cmu (let ((he (ext:lookup-host-entry name)))
-         (and he
-              (ext:host-entry-addr he)))
-  #-cmu nil
-)
+         (and he (ext:host-entry-addr he)))
+  #+clisp (let ((he (ext:resolve-host-ipaddr name)))
+           (and he (string-ipaddr (car (ext:hostent-addr-list he)))))
+  #+ecl (nth-value 2 (ext:lookup-host-entry name))
+  #-(or cmu clisp ecl) nil)
 
 (defun canonify-hostname (name)
   "Resolve a hostname to canonical form using the DNS, or return nil."
   #+cmu (let ((he (ext:lookup-host-entry name)))
-         (and he
-              (ext:host-entry-name he)))
-  #-cmu nil)
+         (and he (ext:host-entry-name he)))
+  #+clisp (let ((he (ext:resolve-host-ipaddr name)))
+           (and he (ext:hostent-name he)))
+  #+ecl (nth-value 0 (ext:lookup-host-entry name))
+  #-(or cmu clisp ecl) name)
 
 ;;;--------------------------------------------------------------------------
 ;;; Host names and specifiers.