'Used to analyse server <features/> tag for TLS support.
If TLS is supported starts the encryption negotiation. Used internally'

def FeaturesHandler(self, conn, feats):

    if (not feats.getTag('starttls', namespace=NS_TLS)):
        self.DEBUG('TLS    unsupported    by    remote    server.', 'warn')
        return
    self.DEBUG('TLS    supported    by    remote    server.    Requesting    TLS    start.', 'ok')
    self._owner.RegisterHandlerOnce('proceed', self.StartTLSHandler, xmlns=NS_TLS)
    self._owner.RegisterHandlerOnce('failure', self.StartTLSHandler, xmlns=NS_TLS)
    self._owner.Connection.send(('<starttls    xmlns="%s"/>' % NS_TLS))
    raise NodeProcessed
