anchor.diff:  					t
   					(restart-case 
   							(error 'ssh-bad-hostkey 
  -										 :reason host-key-status)
  +										 :reason host-key-status
  +										 :key (session-hostkey-fingerprint (session ssh)))
   						(accept () t)
   						(drop () nil)
   						(accept-once  (&optional (comment "")) 
  
positive.code: 			(channel-free channel))))
  
  (defmethod execute ((ssh ssh-connection) (command string))
  	(let ((new-channel 
  				 (repeat-and-wait-until-complete ((socket ssh))
  					 (channel-open (session ssh)))))
  		(if (pointerp new-channel)
  				(if (not (null-pointer-p new-channel))
  						(let ((retval
  									 (repeat-and-wait-until-complete ((socket ssh))
  										 (channel-exec new-channel command))))
  							(if (eq retval :ERROR-NONE)
  									(make-instance 'ssh-channel-stream
  																 :socket  (socket ssh)
  																 :channel new-channel)
  									(throw-last-error (session ssh))))
  						(throw-last-error (session ssh)))
  				(throw-last-error (session ssh)))))
  	
  (defmacro with-execute ((stdio-stream ssh-connection command) &body body)
  	`(let ((,stdio-stream (execute ,ssh-connection ,command)))
  		 (unwind-protect
  					(let ((body-retval
  
negative.code: 								:size (mem-aref len :long 0)
  								:type (mem-aref type :int 0)))))
  
  (defcenum +HASH-TYPE+
  	(:MD5  1)
  	(:SHA1 2))
  
  (defctype +keyhash+ :pointer)
  (defcfun ("libssh2_hostkey_hash" session-hostkey-hash) +keyhash+
  	(session +session+) (hash-type +HASH-TYPE+))
  
  (defun session-hostkey-fingerprint (session &optional (type :SHA1))
  	(let ((hash (session-hostkey-hash session type)))
  		(format nil "~{~2,'0X~^:~}"
  						(loop for i below (if (eq type :SHA1) 20 16)
  							 collect (mem-aref hash :char i)))))
  
  (defbitfield +known-hosts-flags+ 
  	(.type-plain. 1)
  	(.type-sha1.  2)
  