From 3c25335710379a8cced5127df06a07c420cf5064 Mon Sep 17 00:00:00 2001 From: Antoine Durand-Gasselin Date: Thu, 19 Mar 2009 13:21:21 +0100 Subject: [PATCH] [deconnexion.py] passage en utf-8 darcs-hash:20090319122121-bd074-d8380ffbaca92867e3e79ffc843cea20d71739ec.gz --- surveillance/deconnexion.py | 84 ++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/surveillance/deconnexion.py b/surveillance/deconnexion.py index 1ef83351..bc932fac 100644 --- a/surveillance/deconnexion.py +++ b/surveillance/deconnexion.py @@ -180,7 +180,7 @@ for elupload, eltype, elid in uploadeurs: print 'Erreur : Proprio non trouvé (%s) %d'%(eltype, elid) continue proprio = proprio[0] - + # On inscrit l'instance dans la table des avertis_hard ###################################################### curseur.execute("INSERT INTO avertis_upload_hard (type,id,date) VALUES ('%s','%d','now')"%(eltype,elid)) @@ -191,33 +191,33 @@ for elupload, eltype, elid in uploadeurs: fin = debut + 24*3600 proprio.blacklist([debut, fin, 'autodisc_upload', "Déconn auto. %s Mo" % elupload]) proprio.save() - + # On envoie un mail à l'adhérent ################################ corps = upload.message_hard % {'from': upload.expediteur, 'to': proprio.email(), 'upload': elupload, 'proprio': proprio.Nom()} - corps = corps.encode('iso 8859-15') + corps = corps.encode('utf-8') mail.sendmail(upload.expediteur, proprio.email(), corps) - + # On envoie un mail à disconnect ################################ if upload.disconnect_mail_hard: corps = upload.message_disconnect_hard % {'from': upload.expediteur, 'to': upload.expediteur, 'upload': elupload, 'proprio': proprio.Nom()} - corps = corps.encode('iso 8859-15') + corps = corps.encode('utf-8') mail.sendmail(upload.expediteur, upload.expediteur, corps) - + # Vérification du nombre de déconnexions ######################################### nb_decos = len([ x for x in proprio.blacklist() if int(x.split('$')[0]) > time()-30*24*3600 and x.split('$')[2] == 'autodisc_upload' ]) if nb_decos >= 3: - + # Génération du fichier postscript fichier_ps = generate_ps('upload', proprio, ldap) - + # Envoi du mail à disconnect corps = upload.message_disconnect_multi % {'from': upload.expediteur, 'to': upload.expediteur, 'nbdeco': nb_decos, 'proprio': proprio.Nom(), 'ps': fichier_ps} - corps = corps.encode('iso 8859-15') + corps = corps.encode('utf-8') mail.sendmail(upload.expediteur, upload.expediteur, corps) - + elif elupload >= upload.soft: # L'adhérent a t il été averti ############################## @@ -236,23 +236,23 @@ for elupload, eltype, elid in uploadeurs: if len(proprio) != 1: print 'Proprio non trouvé (%s) %d'%(eltype, elid) continue - proprio = proprio[0] - + proprio = proprio[0] + # On inscrit l'ip dans la table des avertis soft ################################################ curseur.execute("INSERT INTO avertis_upload_soft (type,id,date) VALUES ('%s','%d','now')"%(eltype, elid)) - + # On envoie un mail à l'adhérent ################################ corps = upload.message_soft % {'from': upload.expediteur, 'to': proprio.email(), 'upload': elupload, 'proprio': proprio.Nom()} - corps = corps.encode('iso 8859-15') + corps = corps.encode('utf-8') mail.sendmail(upload.expediteur, proprio.email(), corps) - + # On envoie un mail à disconnect ################################ if upload.disconnect_mail_soft: corps = upload.message_disconnect_soft % {'from': upload.expediteur, 'to': upload.expediteur, 'upload': elupload, 'proprio': proprio.Nom()} - corps = corps.encode('iso 8859-15') + corps = corps.encode('utf-8') mail.sendmail(upload.expediteur, upload.expediteur, corps) # On supprime les vieux avertisements @@ -263,7 +263,7 @@ curseur.execute("DELETE FROM avertis_upload_soft WHERE date < timestamp 'now' - # Détection de l'existence de virus # ################################################################################ -# Dans la table virus on sélectionne les ip_src qui appartiennent au réseau +# Dans la table virus on sélectionne les ip_src qui appartiennent au réseau requete = "SELECT ip_src,count(ip_src) FROM virus WHERE %s and date > timestamp 'now' - interval '1 hour' group by ip_src" % ip_src_in_crans curseur.execute(requete) infectes = curseur.fetchall() @@ -278,21 +278,21 @@ for ip, nombre in infectes: # Si on est en dessous du seuil, on laisse passer if nombre < virus.virus: continue - + # Si on est déja avertis, on laisse passer if [ip] in infectes_old: continue - + # Lecture des infos de ldap machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0] hostname = machine.nom() proprio = machine.proprietaire() blacklist = proprio.blacklist() - + # Inscription dans la table des infectés requete = "INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip curseur.execute(requete) - + # On récupère les index des lignes de bl où il y a marqué virus index = [blacklist.index(x) for x in blacklist if 'virus' in x ] if index: @@ -319,11 +319,11 @@ curseur.execute(requete) infectes_old = curseur.fetchall() for ip, nombre in infectes: - + # Si on est en dessous du seuil, ou qu'on est déjà averti, on laisse passer if nombre < virus.flood or [ip] in infectes_old: continue - + # Lecture des infos de ldap try : machine = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'][0] @@ -338,7 +338,7 @@ for ip, nombre in infectes: # Inscription dans la table des infectés requete = "INSERT INTO avertis_virus (ip_crans,date) VALUES ('%s','now')" % ip curseur.execute(requete) - + # On récupère les index des lignes de bl où il y a marqué virus index = [ blacklist.index(x) for x in blacklist if 'virus' in x ] if index: @@ -360,17 +360,17 @@ curseur.execute(requete) infectes = [ x[0] for x in curseur.fetchall() ] for IP in infectes: - + # Nombre de requêtes de virus - requete1 = "SELECT COUNT(ip_src) FROM virus where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP + requete1 = "SELECT COUNT(ip_src) FROM virus where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP curseur.execute(requete1) nb_virus = curseur.fetchall() - + # Nombre de requêtes de flood - requete2 = "SELECT COUNT(ip_src) FROM flood where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP + requete2 = "SELECT COUNT(ip_src) FROM flood where ip_src='%s' and date > timestamp 'now' - interval '1 hour'" % IP curseur.execute(requete2) nb_flood = curseur.fetchall() - + # On ne traite que les IP qui sont descendues en dessous des seuils if nb_virus[0][0] < virus.virus and nb_flood[0][0] < virus.flood: try: @@ -386,7 +386,7 @@ for IP in infectes: bl = proprio.blacklist() hostname = machine.nom() # On stoppe la sanction pour une ligne existante de la blackliste - # En prenant en compte le fait que d'autres lignes de blackliste + # En prenant en compte le fait que d'autres lignes de blackliste # ont pu s'ajouter. lignes_enlevees = 0 for ligne in bl: @@ -399,7 +399,7 @@ for IP in infectes: lignes_enlevees += 1 if lignes_enlevees == 0: print "Suppression de %s des machines infectees, mais aucune blackliste"%hostname - requete = "DELETE FROM avertis_virus where ip_crans='%s'"%IP + requete = "DELETE FROM avertis_virus where ip_crans='%s'"%IP curseur.execute(requete) ################################################################################ @@ -417,19 +417,19 @@ curseur.execute(requete) avertisp2p = curseur.fetchall() for ip, id_p2p, nombre in fraudeurs: - + # On récupére le protocole de p2p : requete = "SELECT nom FROM protocole_p2p WHERE id_p2p=%d" % id_p2p curseur.execute(requete) protocole = curseur.fetchall()[0][0] - + # On ne prend pas en compte s'il est sous le seuil admis, ou #s'il est averti if nombre <= p2p.limite[protocole] or [ip, protocole] in avertisp2p: continue if id_p2p == 1: continue - + # Récupération des ref de la machine machines = ldap.search('ipHostNumber=%s' % ip, 'w' )['machine'] if len(machines) == 0: @@ -437,9 +437,9 @@ for ip, id_p2p, nombre in fraudeurs: continue machine = machines[0] hostname = machine.nom() - proprio = machine.proprietaire() + proprio = machine.proprietaire() blacklist = proprio.blacklist() - + # Envoi du mail à disconnect if p2p.disconnect_mail: requete = "select date from p2p where date > timestamp 'now' - interval '2 hours' and ip_src='%s' order by date limit 1"%ip @@ -451,27 +451,27 @@ for ip, id_p2p, nombre in fraudeurs: 'hostname': hostname, 'nb_paquets': nombre, 'datedebut': date } - corps = corps.encode('iso 8859-15') + corps = corps.encode('utf-8') mail.sendmail(upload.expediteur, upload.expediteur, corps) - + # Inscription dans la base des avertis requete = "INSERT INTO avertis_p2p (ip_crans,date,protocole) VALUES ('%s','now','%s')" % (ip, protocole) curseur.execute(requete) - + # On envoie un mail a l'adhérent ################################ corps = p2p.deconnexion % { 'From': p2p.expediteur, 'To': proprio.email(), 'protocole': protocole, 'hostname': hostname } - corps = corps.encode('iso 8859-15') + corps = corps.encode('utf-8') mail.sendmail(p2p.expediteur, proprio.email(), corps) # Vérification du nombre de déconnexions ######################################### nb_decos = len([ x for x in proprio.blacklist() if int(x.split('$')[0]) > time()-365*24*3600 and x.split('$')[2] == 'autodisc_p2p' ]) if nb_decos >= 3: - + fichier_ps = generate_ps('p2p', proprio, ldap) # Envoi du mail à disconnect corps = p2p.message_disconnect_multi % { 'from': p2p.expediteur, @@ -479,7 +479,7 @@ for ip, id_p2p, nombre in fraudeurs: 'nbdeco': nb_decos, 'proprio':proprio.Nom(), 'ps': fichier_ps } - corps = corps.encode('iso 8859-15') + corps = corps.encode('utf-8') mail.sendmail(p2p.expediteur, p2p.expediteur, corps) # L'adhérent n'est pas encore blacklisté