X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-bsd-sockets%2Fname-service.lisp;h=c5ba475152e82495f8aa44763d906a1aa4c55260;hb=1d46d379bb7a6424524b978f213ef69be5f1ad69;hp=23f65a15d84921d9426096ca8f56364b95465111;hpb=e449254c6a6a768b42a878274a90db9bb7d2ba2b;p=sbcl.git diff --git a/contrib/sb-bsd-sockets/name-service.lisp b/contrib/sb-bsd-sockets/name-service.lisp index 23f65a1..c5ba475 100644 --- a/contrib/sb-bsd-sockets/name-service.lisp +++ b/contrib/sb-bsd-sockets/name-service.lisp @@ -42,14 +42,14 @@ 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 - (sockint::gethostbyaddr (sockint::array-data-address packed-addr) + (sb-sys:with-pinned-objects (packed-addr) + (sockint::gethostbyaddr (sb-grovel::array-data-address packed-addr) 4 sockint::af-inet))))) (defun make-host-ent (h) - (if (sockint::foreign-nullp h) (name-service-error "gethostbyname")) - (let* ((local-h (sockint::foreign-vector h 1 sockint::size-of-hostent)) + (if (sb-grovel::foreign-nullp h) (name-service-error "gethostbyname")) + (let* ((local-h (sb-grovel::foreign-vector h 1 sockint::size-of-hostent)) (length (sockint::hostent-length local-h)) (aliases (loop for i = 0 then (1+ i) @@ -64,7 +64,7 @@ grisly details." for ad = (sb-sys:sap-ref-32 address0 i) while (> ad 0) collect - (sockint::foreign-vector (sb-sys:sap+ address0 i) 1 length)))) + (sb-grovel::foreign-vector (sb-sys:sap+ address0 i) 1 length)))) (make-instance 'host-ent :name (sb-c-call::%naturalize-c-string (sb-sys:int-sap (sockint::hostent-name local-h))) @@ -130,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"