code: def set_gss_host(self, gss_host, trust_dns=True, gssapi_requested=True):
          
          # No GSSAPI in play == nothing to do
          if not gssapi_requested:
              return
          # Obtain the correct host first - did user request a GSS-specific name
          # to use that is distinct from the actual SSH target hostname?
          if gss_host is None:
              gss_host = self.hostname
          # Finally, canonicalize via DNS if DNS is trusted.
          if trust_dns and gss_host is not None:
              gss_host = socket.getfqdn(gss_host)
          # And set attribute for reference later.
          self.gss_host = gss_host
docs: Normalize/canonicalize ``self.gss_host`` depending on various factors.
  
          :param str gss_host:
              The explicitly requested GSS-oriented hostname to connect to (i.e.
              what the host's name is in the Kerberos database.) Defaults to
              ``self.hostname`` (which will be the 'real' target hostname and/or
              host portion of given socket object.)
          :param bool trust_dns:
              Indicates whether or not DNS is trusted; if true, DNS will be used
              to canonicalize the GSS hostname (which again will either be
              ``gss_host`` or the transport's default hostname.)
              (Defaults to True due to backwards compatibility.)
          :param bool gssapi_requested:
              Whether GSSAPI key exchange or authentication was even requested.
              If not, this is a no-op and nothing happens
              (and ``self.gss_host`` is not set.)
              (Defaults to True due to backwards compatibility.)
          :returns: ``None``.