anchor.diff:  (defctype slp-bool :boolean)
   
   (defcstruct slp-server-url
  -  (server-type :string)
  +	(server-type :string)
     (host :string)
     (port :int)
     (net-family :string)
  
positive.code: (defmacro define-attr-callback
      (name (handle attr-list error-code cookie) &body body)
    `(defcallback ,name slp-bool
         ((,handle slp-handle)
  		(,attr-list :string)
  		(,error-code slp-error-type)
  		(,cookie :pointer))
       (declare (ignorable ,handle ,attr-list ,error-code ,cookie))
       ,@body))
  
  
negative.code: (defun slp-register (url
  					 &key (callback-name *default-register-callback*)
  					 (lifetime *default-lifetime*)
  					 attributes 
  					 cookie)
    "Register a service with SLP. Needs slpd to be installed and running on the system"
    (with-foreign-string (u url)
      (with-foreign-string (a (cond
  							  ((null attributes) "")
  							  ((stringp attributes) attributes)
  							  ((listp attributes) (slp-format-attributes attributes))))
        (let ((error-code 
  			 (%slp-register (get-handle)
  							u
  