Bug dans la mise jour de la correspondance MAC-IP.

Je ne vois pas ce qui a caus la manifestation soudaine de cette erreur.

darcs-hash:20060327211818-68412-9de681b7bd9920cc88e59665b8c42a1e0d0ac21a.gz
This commit is contained in:
glondu 2006-03-27 23:18:18 +02:00
parent 609ce7d564
commit d902ba7fc6

View file

@ -308,6 +308,9 @@ class firewall_crans :
self.anim = anim('\tActualisation TEST_MAC-IP')
for regle in iptables("-t nat -L TEST_MAC-IP -n").split('\n')[2:] :
regle = regle.split()
if regle[0] == 'DROP':
# On est arrivé à la fin de la liste
break
ip = regle[3]
mac = regle[6].lower()
if ip in mac_ip_maj.keys() :
@ -316,20 +319,20 @@ class firewall_crans :
try:
if not machine :
# Il faut détruire cette entrée
iptables("-t nat -D TEST_MAC-IP -s %s -m mac --mac-source %s -j ACCEPT" % (ip, mac))
iptables("-t nat -D TEST_MAC-IP -s %s -m mac --mac-source %s -j RETURN" % (ip, mac))
else :
if (isinstance(machine, MachineWifi) and mac != self.mac_wifi) \
or (not isinstance(machine, MachineWifi) and mac != machine.mac()):
# La correspondance MAC-IP est fausse => on ajoute la bonne règle
self.__test_mac_ip(machine)
# Supression de l'ancienne ligne
iptables("-t nat -D TEST_MAC-IP -s %s -m mac --mac-source %s -j ACCEPT" % (ip, mac))
iptables("-t nat -D TEST_MAC-IP -s %s -m mac --mac-source %s -j RETURN" % (ip, mac))
# Toutes les autres occurences devront être détruites
mac_ip_maj[ip]=None
except IptablesError, c:
warn += c
warn += str(c) + '\n'
# Ajout des machines qui n'étaient pas dans le firewall
for machine in mac_ip_maj.values() :
@ -344,7 +347,7 @@ class firewall_crans :
self.exception_catcher(procedure)
def build_chaine_adherent(self,chaine,methode) :
# On construit d'abord les autorisations particuli\uffffres
# On construit d'abord les autorisations particulières
if not self.build_chaine(chaine, methode) :
# Puis si pas de problèmes les autorisations par défaut
self.anim.reinit()