X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-bsd-sockets%2Fname-service.lisp;h=bf2952996cd84e912f16a849e3af480d94fc847d;hb=758efae974a22a2b75fd5db6818a3c6165e4f699;hp=5f038595820f4622c36374d94363a771530bf3a3;hpb=10d2c05ea44ca0837091434fe2223c0c31687615;p=sbcl.git diff --git a/contrib/sb-bsd-sockets/name-service.lisp b/contrib/sb-bsd-sockets/name-service.lisp index 5f03859..bf29529 100644 --- a/contrib/sb-bsd-sockets/name-service.lisp +++ b/contrib/sb-bsd-sockets/name-service.lisp @@ -17,6 +17,8 @@ eventually, so that we can do DNS lookups in parallel with other things ; presently always AF_INET (addresses :initarg :addresses :accessor host-ent-addresses))) +(defgeneric host-ent-address (host-ent)) + (defmethod host-ent-address ((host-ent host-ent)) (car (host-ent-addresses host-ent))) @@ -40,7 +42,7 @@ grisly details." (loop for i from 0 to 3 do (setf (sockint::in-addr-addr packed-addr i) (elt address i))) (make-host-ent - (sb-sys:without-gcing + (sb-sys:with-pinned-objects (packed-addr) (sockint::gethostbyaddr (sockint::array-data-address packed-addr) 4 sockint::af-inet))))) @@ -128,7 +130,7 @@ GET-NAME-SERVICE-ERRNO") (sb-alien:alien-funcall (sb-alien:extern-alien "get_h_errno" (function integer))))) -#-solaris +#-(and cmu solaris) (progn #+sbcl (sb-alien:define-alien-routine "hstrerror"