anchor.diff:  (defun socket-shutdown (fd &optional (how :receive))
     "Shutdown traffic on the TCP socket.
   HOW ::= :SEND to stop sending, :RECEIVE to stop receiving, :BOTH to stop both."
  -  (let ((sts
  -         (%shutdown-socket fd
  -                           (ecase how
  -                             (:send 1)
  -                             (:both 2)
  -                             (:receive 0)))))
  -    (if (= sts +socket-error+)
  -        (get-last-error)
  -        nil)))
  -
  +  (with-funcall-else-socket-error      
  +      (%shutdown-socket fd
  +			(ecase how
  +			  (:send 1)
  +			  (:both 2)
  +			  (:receive 0)))))
  +    
   ;; ------------------------------------------------
   
   (defctype size-t
  
positive.code:   (let ((code (or ecode *errno*)))
      (error 'posix-error :code code)))
  
  ;; --------------------------------------
  
  (defctype canid_t :uint32) 
  
negative.code: 	    (setq sock-addr-pointer p
  		  sock-addr-len len))))	 
  
      (with-funcall-else-socket-error
  	(%bind fd sock-addr-pointer sock-addr-len))))
        
  
   ;; int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
  (defcfun (%connect "connect") :int32
  