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:
parent
609ce7d564
commit
d902ba7fc6
1 changed files with 9 additions and 6 deletions
|
@ -308,28 +308,31 @@ class firewall_crans :
|
||||||
self.anim = anim('\tActualisation TEST_MAC-IP')
|
self.anim = anim('\tActualisation TEST_MAC-IP')
|
||||||
for regle in iptables("-t nat -L TEST_MAC-IP -n").split('\n')[2:] :
|
for regle in iptables("-t nat -L TEST_MAC-IP -n").split('\n')[2:] :
|
||||||
regle = regle.split()
|
regle = regle.split()
|
||||||
|
if regle[0] == 'DROP':
|
||||||
|
# On est arrivé à la fin de la liste
|
||||||
|
break
|
||||||
ip = regle[3]
|
ip = regle[3]
|
||||||
mac = regle[6].lower()
|
mac = regle[6].lower()
|
||||||
if ip in mac_ip_maj.keys() :
|
if ip in mac_ip_maj.keys() :
|
||||||
# La règle correspond à une ip à mettre à jour
|
# La règle correspond à une ip à mettre à jour
|
||||||
machine = mac_ip_maj[ip]
|
machine = mac_ip_maj[ip]
|
||||||
try :
|
try:
|
||||||
if not machine :
|
if not machine :
|
||||||
# Il faut détruire cette entrée
|
# 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 :
|
else :
|
||||||
if (isinstance(machine, MachineWifi) and mac != self.mac_wifi) \
|
if (isinstance(machine, MachineWifi) and mac != self.mac_wifi) \
|
||||||
or (not isinstance(machine, MachineWifi) and mac != machine.mac()):
|
or (not isinstance(machine, MachineWifi) and mac != machine.mac()):
|
||||||
# La correspondance MAC-IP est fausse => on ajoute la bonne règle
|
# La correspondance MAC-IP est fausse => on ajoute la bonne règle
|
||||||
self.__test_mac_ip(machine)
|
self.__test_mac_ip(machine)
|
||||||
# Supression de l'ancienne ligne
|
# 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
|
# Toutes les autres occurences devront être détruites
|
||||||
mac_ip_maj[ip]=None
|
mac_ip_maj[ip]=None
|
||||||
|
|
||||||
except IptablesError, c :
|
except IptablesError, c:
|
||||||
warn += c
|
warn += str(c) + '\n'
|
||||||
|
|
||||||
# Ajout des machines qui n'étaient pas dans le firewall
|
# Ajout des machines qui n'étaient pas dans le firewall
|
||||||
for machine in mac_ip_maj.values() :
|
for machine in mac_ip_maj.values() :
|
||||||
|
@ -344,7 +347,7 @@ class firewall_crans :
|
||||||
self.exception_catcher(procedure)
|
self.exception_catcher(procedure)
|
||||||
|
|
||||||
def build_chaine_adherent(self,chaine,methode) :
|
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) :
|
if not self.build_chaine(chaine, methode) :
|
||||||
# Puis si pas de problèmes les autorisations par défaut
|
# Puis si pas de problèmes les autorisations par défaut
|
||||||
self.anim.reinit()
|
self.anim.reinit()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue