'@returns: this breaks with L{interfaces.IAccount}
@returntype: DeferredList of L{interfaces.IClient}s'

def logOn(self, chatui):

    if ((not self._isConnecting) and (not self._isOnline)):
        self._isConnecting = 1
        d = self._startLogOn(chatui)
        d.addErrback(self._loginFailed)
        def registerMany(results):
            for (success, result) in results:
                if success:
                    chatui.registerAccountClient(result)
                    self._cb_logOn(result)
                else:
                    log.err(result)
        d.addCallback(registerMany)
        return d
    else:
        raise error.ConnectionError('Connection    in    progress')
