Esempio n. 1
0
 def recv_subscribed(self, conn, pres):
     roster = self.get(conn)
     contact = xml.jid(pres.get('from')).bare
     self.confirm(conn, roster, roster.subscribe(contact, 'to'))
     pres.set('from', contact)
     pres.set('to', conn.authJID.bare)
     return conn.write(pres)
Esempio n. 2
0
 def unregister_conn(self, conn):
     key = conn.get_loginid()
     if (key in self._conns):
         del self._conns[key]
         if (conn.authJID.bare in self._rosters):
             try:
                 self._resources.routes(xml.jid(conn.authJID.bare))
             except NoRoute:
                 # last connection: remove from rosters
                 del self._rosters[conn.authJID.bare]
     else:
         Log.warn("Rosters: conn not found in unregister_conn()")
Esempio n. 3
0
    def allow_login(self, jid):
        '''sessions = self.get_bbs_online(jid)
        count = 0
        for session in sessions:
            if (session._userinfo.mode == modes.XMPP):
                count += 1'''
        try:
            count = len(self._resources.routes(xml.jid(jid))) - 1
        except NoRoute:
            count = 0

        if count >= Config.Config.GetInt("XMPP_TOTAL_LOGIN_LIMIT", 5):
            return False
        # may add other checks here
        return True
    def send(self, conn, to, elem):
        """Send a subscription request or response."""

        method = getattr(self, 'send_%s' % elem.get('type'), None)
        return method and method(conn, xml.jid(to).bare, elem)
Esempio n. 5
0
    def send(self, conn, to, elem):
        """Send a subscription request or response."""

        method = getattr(self, 'send_%s' % elem.get('type'), None)
        return method and method(conn, xml.jid(to).bare, elem)
Esempio n. 6
0
 def routes(self, jid):
     return self._resources.routes(xml.jid(jid))