def set_gss_host(self, gss_host, trust_dns=True, gssapi_requested=True):
<EOL>if not gssapi_requested:<EOL><INDENT>return<EOL><DEDENT>if gss_host is None:<EOL><INDENT>gss_host = self.hostname<EOL><DEDENT>if trust_dns and gss_host is not None:<EOL><INDENT>gss_host = socket.getfqdn(gss_host)<EOL><DEDENT>self.gss_host = gss_host<EOL>
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``.