Exemplo n.º 1
0
    def dump_log(self):
        query = '''INSERT INTO bley_log (logtime, ip, sender, recipient,
                action, check_dnswl, check_dnsbl, check_helo, check_dyn,
                check_db, check_spf, check_s_eq_r, check_postmaster,
                check_cache)
                VALUES(%(time)s, %(ip)s, %(from)s, %(to)s, %(action)s,
                %(DNSWL)s, %(DNSBL)s, %(HELO)s, %(DYN)s, %(DB)s,
                %(SPF)s, %(S_EQ_R)s, %(WHITELISTED)s, %(CACHE)s)'''

        if self.settings.dbtype == 'sqlite3':
            query = bleyhelpers.adapt_query_for_sqlite3(query)

        try:
            db = self.settings.database.connect(**self.settings.dbsettings)
            dbc = db.cursor()
            i = len(self.actionlog)
            while i:
                logline = self.actionlog.pop(0)
                dbc.execute(query, logline)
                i -= 1
            db.commit()
            dbc.close()
            db.close()
        except self.settings.database.DatabaseError, e:
            logger.warn('SQL error: %s' % e)
Exemplo n.º 2
0
Arquivo: bley.py Projeto: evgeni/bley
    def dump_log(self):
        query = '''INSERT INTO bley_log (logtime, ip, sender, recipient,
                action, check_dnswl, check_dnsbl, check_helo, check_dyn,
                check_db, check_spf, check_s_eq_r, check_postmaster,
                check_cache)
                VALUES(%(time)s, %(ip)s, %(from)s, %(to)s, %(action)s,
                %(DNSWL)s, %(DNSBL)s, %(HELO)s, %(DYN)s, %(DB)s,
                %(SPF)s, %(S_EQ_R)s, %(WHITELISTED)s, %(CACHE)s)'''

        if self.settings.dbtype == 'sqlite3':
            query = bleyhelpers.adapt_query_for_sqlite3(query)

        try:
            db = self.settings.database.connect(**self.settings.dbsettings)
            dbc = db.cursor()
            i = len(self.actionlog)
            while i:
                logline = self.actionlog.pop(0)
                dbc.execute(query, logline)
                i -= 1
            db.commit()
            dbc.close()
            db.close()
        except self.settings.database.DatabaseError as e:
            logger.warn('SQL error: %s' % e)
        reactor.callLater(30 * 60, self.dump_log)
Exemplo n.º 3
0
 def safe_execute(self, query, params=None):
     if self.factory.settings.dbtype == 'sqlite3':
         query = bleyhelpers.adapt_query_for_sqlite3(query)
     try:
         self.dbc.execute(query, params)
         self.db.commit()
     except self.factory.settings.database.OperationalError:
         self.safe_reconnect()
         if self.db:
             self.dbc.execute(query, params)
             self.db.commit()
         else:
             logger.info('Could not reconnect to the database, exiting.')
             reactor.stop()
Exemplo n.º 4
0
Arquivo: bley.py Projeto: evgeni/bley
 def safe_execute(self, query, params=None):
     if self.factory.settings.dbtype == 'sqlite3':
         query = bleyhelpers.adapt_query_for_sqlite3(query)
     try:
         self.dbc.execute(query, params)
         self.db.commit()
     except self.factory.settings.database.OperationalError:
         self.safe_reconnect()
         if self.db:
             self.dbc.execute(query, params)
             self.db.commit()
         else:
             logger.info('Could not reconnect to the database, exiting.')
             reactor.stop()