anchor.diff:            (t
              (dotimes (i sts)
                (setf (aref buffer (+ start i)) (mem-ref p :uint8 i)))
  -           (let ((family #+freebsd(mem-aref a :uint8 1)
  -                         #-freebsd(mem-aref a :uint16)))
  +           (let ((family #+(or freebsd darwin)(mem-aref a :uint8 1)
  +                         #-(or freebsd darwin)(mem-aref a :uint16)))
                (cond
                  ((= family +af-inet+)
                   (let ((addr (mem-aref a '(:struct sockaddr-in))))
  
positive.code:         ((invalid-socket-p sts)
           (get-last-error))
          (t
           (let ((family #+freebsd(mem-aref buffer :uint8 1)
                         #-freebsd(mem-aref buffer :uint16)))
             (cond 
               ((= family +af-inet+)
                (let ((addr (mem-aref buffer '(:struct sockaddr-in))))
  
negative.code: 
                ;; get the address
                (let ((ap (foreign-slot-value ifa '(:struct ifaddrs) 'addr)))
                  (let ((family #+(or freebsd darwin)(mem-ref ap :uint8 1)
                                #-(or freebsd darwin)(mem-ref ap :uint16)))
                    (cond
                      ((= family +af-inet+)
                       (let ((addr (mem-ref ap '(:struct sockaddr-in))))
  