require 'net/ssh/errors'
require 'net/ssh/known_hosts'
require 'net/ssh/verifiers/secure'

module Net; module SSH; module Verifiers

  # Does a strict host verification, looking the server up in the known
  # host files to see if a key has already been seen for this server. If this
  # server does not appear in any host file, this will silently add the
  # server. If the server does appear at least once, but the key given does
  # not match any known for the server, an exception will be raised (HostKeyMismatch).
  # Otherwise, this returns true.
  class Strict < Secure
    def verify(arguments)
      begin
        super
      rescue HostKeyUnknown => err
        err.remember_host!
        return true
      end
    end
  end

end; end; end
